์Šคํƒ(Stack)
Computer Science/์ž๋ฃŒ๊ตฌ์กฐ 2021. 10. 6. 22:20

Stack์ด๋ž€? LIFO(Last in First Out, ํ›„์ž… ์„ ์ถœ), ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ํ•œ๊ณณ์œผ๋กœ ์ œํ•œ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ Stack ์˜ˆ์‹œ ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜์˜ ์ฝœ์Šคํƒ, ์Šคํƒ์ด ๋„˜์น˜๊ฒŒ ๋˜๋ฉด StackOverFlow๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋ฌธ์ž์—ด ์—ญ์ˆœ ์ถœ๋ ฅ, ์—ฐ์‚ฐ์ž ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. ์ฝ”๋“œ๋กœ ์ดํ•ดํ•˜๋Š” Stack class Stack { List list = new ArrayList(); private final int STACK_MAX_SIZE; private int top = 0; public Stack(int STACK_MAX_SIZE) { this.STACK_MAX_SIZE = STACK_MAX_SIZE; } void push(int data) { if(isFull()) return ; list.add(to..

์ฟ ํ‚ค ๊ทธ๋ฆฌ๊ณ  ์„ธ์…˜
Backend 2021. 9. 30. 22:38

์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ์„ฑ์„ ์ฆ์ง„์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์š”์ฒญํ•œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ HTTP ํ”„๋กœํ† ์ฝœ์€ statelessํ•œ ์„ฑ์งˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฒญ์ž์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์š”์ฒญ์ž์˜ ์ •๋ณด๋ฅผ ์œ ์ง€์‹œํ‚ฌ ์ˆ˜ ์žˆ์„๊นŒ? ์ฟ ํ‚ค๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์ €์˜ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ• ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ๋Œ€ํ™” ํด๋ผ์ด์–ธํŠธ : ๋กœ๊ทธ์ธ ํ• ๋ž˜ ์„œ๋ฒ„ : OK, Cookie ์ €์žฅ์†Œ์— Member ํ‚ค๊ฐ’ ์ €์žฅํ•ด. ๋‹ค์Œ๋ถ€ํ„ฐ ์š”์ฒญํ•  ๋•Œ ํฌํ•จํ•ด์„œ ์ „์†กํ•ด์ค˜. ํด๋ผ์ด์–ธํŠธ : GET, Cookie ํฌํ•จ, ์ •๋ณด ๋ณด์—ฌ์ค˜ ์„œ๋ฒ„ : OK, ์œ ์ € ์ •๋ณด ํ™•์ธ, ์ •๋ณด ๋ณด์—ฌ์ค„๊ฒŒ. ํด๋ผ์ด์–ธํŠธ : ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ, ๋งŒ๋ฃŒ ๋‚ ์งœ๊ฐ€ ์—†๋„ค? ์„ธ์…˜์ฟ ํ‚ค๋‹ˆ๊นŒ ์‚ญ์ œ or ๋งŒ๋ฃŒ ๋‚ ์งœ๊ฐ€ ์žˆ๋„ค ์‚ญ์ œ ์•ˆํ•ด! ๋งŒ๋ฃŒ ๋‚ ์งœ์ผ ๋•Œ ..

์Šคํ”„๋ง ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž
Backend/SPRING 2021. 9. 28. 00:21

์ธํ„ฐ์…‰ํ„ฐ๋ž€? ํ•„ํ„ฐ์™€ ๋™์ผํ•˜๊ฒŒ ๊ณตํ†ต ๊ด€์‹ฌ ์‚ฌํ•ญ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ธํ„ฐ์…‰ํ„ฐ๋Š” ์„œ๋ธ”๋ฆฟ์ด ์ œ๊ณตํ•˜๋Š” ํ•„ํ„ฐ์™€ ๋‹ค๋ฅด๊ฒŒ ์Šคํ”„๋ง MVC์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ์ˆ ์ด๋ฉฐ ํ•„ํ„ฐ๋ณด๋‹ค ์ข€ ๋” ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ์ธํ„ฐ์…‰ํ„ฐ๋Š” ์Šคํ”„๋ง MVC๊ฐ€ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””์ŠคํŒจ์ณ ์„œ๋ธ”๋ฆฟ ์ดํ›„์— ํ˜ธ์ถœ๋˜๊ฒŒ ๋œ๋‹ค. ์Šคํ”„๋ง MVC์˜ ์‹œ์ž‘์ ์ด ๋””์ŠคํŒจ์ฒ˜ ์„œ๋ธ”๋ฆฟ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ์•„ํ‚คํ…์ฒ˜ ํ•„ํ„ฐ VS ์ธํ„ฐ์…‰ํ„ฐ ํฐ ํ‹€์—๋Š” ์ฐจ์ด๊ฐ€ ์—†๋‹ค. ์šฐ์„  ํ•„ํ„ฐ์™€ ์ธํ„ฐ์…‰ํ„ฐ์˜ ์ „์ฒด์ ์ธ ๊ธฐ๋Šฅ์—๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์—†๋‹ค. ํ•„ํ„ฐ ์ธํ„ฐ์…‰ํ„ฐ ๋‘˜๋‹ค ์š”์ฒญ์— ๋Œ€ํ•œ ์ „ํ›„ ์ฒ˜๋ฆฌ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋˜ํ•œ URL Pattern์„ ์ด์šฉํ•˜์—ฌ ์–ด๋– ํ•œ ์š”์ฒญ์— ๋Œ€ํ•ด ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ request, response ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„์„œ ๋ถ€๊ฐ€์ ์ธ ๋กœ์ง ๋˜ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ตฌํ˜„์ด ..

JWT ํ† ํฐ์ด๋ž€?
Project/๋‚˜๋งŒ์˜ ์˜ท์žฅ 2021. 9. 26. 23:47

์„ธ์…˜ ์„ธ์…˜์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„์ชฝ์— ์œ ์ € ์ •๋ณด๋ฅผ ์ €์žฅ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๋ž˜๋„ ์ถ”๊ฐ€์ ์ธ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋งŒ์•ฝ ๋‚ด์žฅ ํ†ฐ์บฃ ๋ฉ”๋ชจ๋ฆฌ์— ์„ธ์…˜์„ ์ €์žฅํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐฐํฌํ•  ๋•Œ๋งˆ๋‹ค ์„ธ์…˜์ด ์ดˆ๊ธฐํ™” ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•๋“ค์„ ํ™œ์šฉํ•˜๋Š” ํŽธ์ด๋‹ค. ํ†ฐ์บฃ ์ž์ฒด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์šฉํ•œ๋‹ค. - ๊ฐ€์žฅ ๊ธฐ๋ณธ ์„ค์ • - ๋‘ ๋Œ€์ด์ƒ์˜ WAS๊ฐ€ ๊ตฌ๋™๋˜๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” ๋ถ€๊ฐ€์ ์ธ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•œ๋‹ค. - ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด๋‹ค. - ๋ถ€๊ฐ€์ ์ธ ์„ค์ •์€ ํ•„์š” ์—†์ง€๋งŒ ์ธ์ฆ ์š”์ฒญ๋งˆ๋‹ค DB์™€ IO๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. Redis, Memcached ๋ฉ”๋ชจ๋ฆฌ DB ํ™œ์šฉ - B2C ์„œ๋น„์Šค์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. JWT ํ† ํฐ์€ ์„ธ์…˜๊ณผ ๋‹ค๋ฅด๊ฒŒ ์œ„์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ์„œ๋ฒ„๊ฐ€ ๋”ฐ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค(Stateless). JWT ํ† ํฐ ์ž..

OAuth2.0์„ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ(์ธ์ฆ)์— ๋Œ€ํ•œ ์ดํ•ด
Project/๋‚˜๋งŒ์˜ ์˜ท์žฅ 2021. 9. 21. 22:48

OAuth๋ž€? ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ(Google, Facebook, Naver...)์˜ ํŠน์ • ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ œ 3์ž์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์œ„์ž„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์„ ๋งํ•œ๋‹ค. OAuth์˜ ํƒ„์ƒ OAuth๊ฐ€ ์กด์žฌํ•˜๊ธฐ ์ „์—๋Š” ์ธ์ฆ ๋ฐฉ์‹์˜ ํ‘œ์ค€์ด ์—†์—ˆ๊ธฐ์— ๊ธฐ๋ณธ์ธ์ฆ์ธ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ ์ด๋Š” ๊ต‰์žฅํžˆ ๋ณด์•ˆ์ƒ ์น˜๋ช…์ ์ธ ๊ตฌ์กฐ์ด๋‹ค. ๋งŒ์•ฝ ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ ๊ณผ์ • ์ค‘์— ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํƒˆ์ทจํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ํ•ด๋‹น ํ”Œ๋žซํผ์— ์กด์žฌํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ๋ชจ๋“  ์ •๋ณด๋“ค์ด ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž์˜ ๊ณ„์ • ์ •๋ณด๋งŒ ํƒˆ์ทจํ•˜๋ฉด ํ”Œ๋žซํผ์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๋˜ ๋ณดํ†ต ์‚ฌ์šฉ์ž๋“ค์€ ํ”Œ๋žซํผ๋“ค ๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ณ„์ • ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๋™์ผ ๊ณ„์ • ์ •๋ณด๋ฅผ ..