๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กComputer Science/๋„คํŠธ์›Œํฌ (6)

Tech Log ๐Ÿ› ๏ธ

์ธ์ฆ, ์ธ๊ฐ€ ๋ฐฉ์‹์˜ ์ข…๋ฅ˜ - ์ฟ ํ‚ค , ์„ธ์…˜ , JWT(Json Web Token)

1. ์ฟ ํ‚ค ์ธ์ฆ ๋ฐฉ์‹์ฟ ํ‚ค๋ž€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ๋ธŒ๋ผ์šฐ์ €์— key value ํ˜•ํƒœ๋กœ ์ €์žฅํ•ด๋†“๋Š” ์ž‘์€ ๊ธฐ๋กํŒŒ์ผ์ด๋‹ค. ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ์„œ ๊ฐ„๋‹จํ•œ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฟ ํ‚ค ๋กœ๊ทธ์ธ ์ธ์ฆ ๋ฐฉ์‹ ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ ์š”์ฒญ์„ ํ• ๋•Œ๋งˆ๋‹ค ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฟ ํ‚ค์— id, pw ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ์ „์†กํ•œ๋‹ค. ์œ„์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„์—์„œ๋Š” ์ด๋ฏธ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋กœ๊ทธ์ธ์ด ์ง„ํ–‰๋œ ํ›„ ์œ ์ € ์ •๋ณด๊ฐ€ ์ฟ ํ‚ค์— ๋“ค์–ด์žˆ์–ด์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ฟ ํ‚ค ์ธ์ฆ ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. 1. ์ฟ ํ‚ค๊ฐ’ ์œ ํšจ์„ฑ ๊ฒ€์ฆ์ด ํž˜๋“ค๋‹ค. (์กฐ์ž‘ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.) 2. ์ค‘๊ฐ„์— ํƒˆ์ทจํ•ด์„œ id,pw ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 3. ์„œ๋ฒ„์—์„œ ๋งค๋ฒˆ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค. 4. ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์ฟ ํ‚ค ํ˜•์‹์ด ํ†ต์ผ๋˜์–ด ์žˆ์ง€ ์•Š์•„์„œ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ ๊ณต์œ ๊ฐ€ ์–ด๋ ต๋‹ค. ๋”ฐ๋ผ์„œ ์ฟ ํ‚ค๋งŒ ์ด์šฉํ•œ ์ธ์ฆ..

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ(Load Balancer)๋ž€ (๊ฐœ๋…, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…๋ฅ˜)

1. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ž€? ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ๋“ค์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๊ณ  ์•ˆ์ •์ ์ธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค. ๋ฌผ๋ก  ํ•œ ๋Œ€์˜ ์„œ๋ฒ„๋กœ ์„ฑ๋Šฅ์„ ๊ณ„์† ํ‚ค์›Œ์„œ ์–ด๋Š ์ •๋„๋Š” ์ปค๋ฒ„(Scale-up)ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์ด ๋ฐฉ์‹์€ ์–ผ๋งˆ ์•ˆ๊ฐ€์„œ ํ•œ๊ณ„๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ๋‘ฌ์„œ ์š”์ฒญ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ(Scale-out)์ด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์ด๊ณ  ์ด ์—ญํ• ์„ ํ•˜๋Š”๊ฒŒ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์ด๋‹ค. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์‚ฌ์šฉ์ž์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์œ„์น˜ํ•˜๋ฉฐ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„๊ฐ€ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋‚ด๋„๋ก ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•œ๋‹ค. 2. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์‚ฌ์šฉ์˜ ์ด์  ๊ฐ€์šฉ์„ฑ ์„œ๋ฒ„ ์žฅ์•  ๋˜๋Š” ๋ถ€ํ•˜๋กœ ์ธํ•œ ๋”œ๋ ˆ์ด๋ฅผ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ†ตํ•ด ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•จ์œผ๋กœ์จ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ€์šฉ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ€๋™ ์ค‘์ง€ ์—†์ด..

DNS๋ž€?

1. DNS๋ž€? ๋„๋ฉ”์ธ์€ ์ธํ„ฐ๋„ท์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ๋กœ ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์›๋ž˜ ์ˆซ์ž๋กœ ๋œ ๊ธด IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์‚ฌ๋žŒ๋“ค์ด ์ด ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค. ๊ทธ๋ž˜์„œ ์ธํ„ฐ๋„ท ์ƒ์—์„œ ์ฃผ์–ด์ง„ ์œ„์น˜๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ๋„๋ฉ”์ธ์ด ๊ฐœ๋ฐœ๋˜์—ˆ๊ณ , ์ž์—ฐ์Šค๋ ˆ ๋„๋ฉ”์ธ์„ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๋„๋ฉ”์ธ ๋„ค์ž„ ์‹œ์Šคํ…œ(Domain Name System, ์ดํ•˜ DNS)์ด ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค. DNS๋ฅผ ํ†ตํ•˜์—ฌ ์‚ฌ์šฉ์ž๋“ค์€ ๋„๋ฉ”์ธ ์ด๋ฆ„๋งŒ ๊ฐ€์ง€๊ณ ๋„ ์‰ฝ๊ฒŒ ์›น ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, ์„ค๋ น ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€๋‹ค๊ณ  ํ•œ๋“ค ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฌํ•œ DNS ์‹œ์Šคํ…œ์€ ์„ธ๊ณ„์ ์œผ๋กœ ์ผ๊ด€๋œ ๊ทœ์น™์„ ๊ฐ€์ง€๋ฉฐ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ์ด๋‹ค. 2. DNS ๊ตฌ์„ฑ ์š”์†Œ ๋„๋ฉ”์ธ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค DNS๋Š” ๊ฑฐ๋Œ€ํ•œ ๋ถ„์‚ฐ ๋„ค์ด๋ฐ ์‹œ์Šคํ…œ์ด๋ฉฐ, ๋„๋ฉ”์ธ ๋„ค์ž„ ..

HTTP , HTTPS์˜ ํŠน์ง•๊ณผ ์ฐจ์ด

HTTP ๋ž€ HTTP๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ ๊ธฐ์ดˆ์ ์ธ ํ†ต์‹  ๊ทœ์น™ ์„ธํŠธ ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์„œ๋น„์Šค์— ์ ‘์†ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” 80๋ฒˆ ํฌํŠธ๋ฅผ ํ†ตํ•ด ์›น ์„œ๋ฒ„์— HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ฐ›๋Š”๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ HTTP์˜ ์š”์ฒญ ์ข…๋ฅ˜์ธ GET์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ๊ทธ์— ๋งž๋Š” ์‘๋‹ต ๋ฐ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ณด๋‚ธ๋‹ค. ์ƒํƒœ ์ฝ”๋“œ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 200 - OK(์ •์ƒ) 400 - Bad request(์ž˜๋ชป๋œ ์š”์ฒญ) 404 - Resource not found(๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ) HTTP๋Š” TCP/IP ์œ„์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ฌด์ƒํƒœ(stateless) ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค. ํ•˜์ง€๋งŒ HTTP๋Š” ํ‰๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ์—..

TCP์™€ UDP

TCP - ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ TCP ํ”„๋กœํ† ์ฝœ์€ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๊ณ  ์—ฐ๊ฒฐ์ง€ํ–ฅ์ ์ด๋ผ๋Š” ํŠน์ง•์ด ์žˆ์œผ๋ฉฐ ๊ฐ€์ƒ ํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. IP์˜ ๋‹จ์ ์ด์—ˆ๋˜ ํŒจํ‚ท ์†์‹ค์ด๋‚˜ ์ˆœ์„œ ๋ฏธ๋ณด์žฅ ๊ฐ™์€ ๋ฌธ์ œ๋“ค์„ ํŒจํ‚ท์„ ์ œ์–ดํ•˜์—ฌ ํ•ด๊ฒฐํ•ด ์ค€๋‹ค. ๊ฐ€์ƒ ํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹ ๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์€ ๊ฐ ํŒจํ‚ท์— ๊ฐ€์ƒํšŒ์„  ์‹๋ณ„์ž๊ฐ€ ํฌํ•จ๋˜๊ณ  ํŒจํ‚ท๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ๋„์ฐฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋ชจ๋“  ํŒจํ‚ท์„ ์ „์†กํ•˜๋ฉด ๊ฐ€์ƒ ํšŒ์„ ์ด ํ•ด์ œ๋œ๋‹ค. TCP ํ”„๋กœํ† ์ฝœ์€ ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•  ๋•Œ 3 way ํ•ธ๋“œ์…ฐ์ดํฌ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•  ๋•Œ 4way ํ•ธ๋“œ ์…ฐ์ดํฌ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. 3way ํ•ธ๋“œ์…ฐ์ดํฌ - SYN : ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ *ISN๊ณผ SYN์„ ๋ณด๋‚ธ๋‹ค. *ISN : TCP ์—ฐ๊ฒฐ์˜ ์ฒซ ๋ฒˆ์งธ ํŒจํ‚ท์— ํ• ๋‹น๋œ ์ž„์˜์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ์ด๋‹ค. ์ง€์—ฐ ์ „์†ก๋œ ํŒจํ‚ท์˜ ํฌํŠธ ๋ฒˆ..

๋„คํŠธ์›Œํฌ ๊ฐœ๋… ์ •๋ฆฌ (ํ”„๋กœํ† ์ฝœ , ๊ณ„์ธต ๊ตฌ์กฐ , IP)

๋„คํŠธ์›Œํฌ๋ž€ ํ†ต์‹  ๋ถ„์•ผ์—์„œ ๋‹จ๋ง๊ธฐ ๋“ฑ์„ ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋‹จ๋ง๊ธฐ๊ธฐ, ์„ ๋กœ ๋ฐ ๊ต ํ™˜๊ธฐ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ์ „์†ก๋งค์ฒด์ด๋‹ค. ํ”„๋กœํ† ์ฝœ ํ†ต์ผ์„ ์œ„ํ•œ ์ƒํ˜ธ ๊ฐ„์˜ ๊ทœ์•ฝ(์•ฝ์†)์ด๋‹ค. ํ”„๋กœํ† ์ฝœ์˜ ๊ตฌ์„ฑ ์š”์†Œ 1. ๊ตฌ๋ฌธ(syntax) - ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ• ์ง€ , ์ฝ”๋”ฉ ๋ฐฉ๋ฒ• , ์‹ ํ˜ธ ๋ ˆ๋ฒจ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด - ๋ฐ์ดํ„ฐ ํฌ๋งท(ํ˜•์‹), ๋ถ€ํ˜ธํ™”, ์‹ ํ˜ธ ๋ ˆ๋ฒจ ๋“ฑ 2. ์˜๋ฏธ(semantic) - ๋ฐ์ดํ„ฐ๋‚˜ ์˜ˆ์™ธ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด - ํŠน์ • ํŒจํ„ด์„ ์–ด๋–ป๊ฒŒ ํ•ด์„ํ•˜๊ณ , ์–ด๋–ค ๋™์ž‘์„ ํ•  ๊ฒƒ์ธ๊ฐ€ ๊ฒฐ์ • 3. ํƒ€์ด๋ฐ(timing) - ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์งˆ ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์†๋„์— ๋Œ€ํ•œ ์กฐ์ ˆ๊ณผ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋™์‹œ์— ํ†ต์‹ ์„ ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์ˆœ์„œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ฒ• - ์†๋„ ์ผ์น˜ ๋ฐ ์ˆœ์„œ ์ œ์–ด ํ”„๋กœํ† ์ฝœ์˜ ์—ญํ•  1. ์—๋Ÿฌ ์ œ์–ด (Err..