1. ์„œ๋ฅ˜

- ๋Œ€๋žต 50๋ช… ์ •๋„๊ฐ€ ์ง€์›ํ–ˆ๋‹ค๊ณ  ์ถ”์ธกํ–ˆ๋Š” ๋ฐ ๋ฉด์ ‘์žฅ์—๋Š” 3๋ช… ์ •๋„๊ฐ€ ์™€์žˆ์—ˆ๋‹ค. ๋ฌผ์„œ๋ฅ˜๋Š” ์•„๋‹Œ๋“ฏ

 

2. ์ธ์„ฑ๊ฒ€์‚ฌ

- ์žก๋‹ค๊ฐ™์€ ์ธ์„ฑ๊ฒ€์‚ฌ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฌธํ•ญ๋“ค์ด ๊ต‰์žฅํžˆ ํŠน์ดํ–ˆ๋‹ค. ์ตœ๋Œ€ํ•œ ์†”์งํ•˜๋ฉด์„œ๋„ ํ•จ์ •์— ์•ˆ๋น ์งˆ๋ ค๊ณ  ํ–ˆ๋‹ค. ๋–จ์–ด์ง„ ์‚ฌ๋žŒ ๋ช‡๋ช‡ ์žˆ์—ˆ์Œ

 

3. 1์ฐจ ๋ฉด์ ‘

- ์ฒ˜์Œ ๋ฉด์ ‘์ด๋ผ ๊ต‰์žฅํžˆ ๊ธด์žฅ์„ ํ–ˆ๋Š”๋ฐ, ์‹ค๋ฌด์ง„๋ถ„๋“ค์ด ์ตœ๋Œ€ํ•œ ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜์…จ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฝ๊ฝ ์–ผ์–ด๋ถ™์–ด์„œ ๋ฉด์ ‘ ๋ดค๋˜ ๊ธฐ์–ต์ด ๋‚œ๋‹ค. 

 

์งˆ๋ฌธ ์ž์ฒด๋Š” ์ง๋ฌด์— ๋Œ€ํ•ด ์–ผ๋งˆ๋‚˜ ์•Œ๊ณ  ์žˆ๋Š”์ง€ (๊ธฐ์ˆ x), ์ง€์›์„œ ๊ธฐ๋ฐ˜ ์งˆ๋ฌธ

 

4. 2์ฐจ ๋ฉด์ ‘

- ๋ถ„์œ„๊ธฐ๋Š” 1์ฐจ ๋ฉด์ ‘๊ณผ ๋น„์Šทํ–ˆ๋‹ค. ์งˆ๋ฌธ๋“ค๋„ ๋ฌด๋‚œ๋ฌด๋‚œ ํ–ˆ๋˜ ํŽธ

 

0. ์ง€์› ์ง๋ฌด

- kt ds ํด๋ผ์šฐ๋“œ/์ธํ”„๋ผ ์—”์ง€๋‹ˆ์–ด๋ง

 

1. ์„œ๋ฅ˜

- 2023๋…„ ์„œ๋ฅ˜๋Š” ๊ต‰์žฅํžˆ ๋นก์…Œ๋‹ค๊ณ  ๋“ค์—ˆ๋Š”๋ฐ ์˜ฌํ•ด ์ƒ๋ฐ˜๊ธฐ ์„œ๋ฅ˜๋Š” ๊ต‰์žฅํžˆ ๋„๋„ํ–ˆ๋‹ค.

 

2. ์ธ์ ์„ฑ

- ์ง€์Œ‹์ด๋‚˜ skct ๊ฐ™์ด ์œ ํ˜•์„ ๋ฏธ๋ฆฌ ์ตํžˆ๊ณ  ๊ณต๋ถ€๋ฅผ ํ•ด์•ผ ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹Œ, ์ •๋ง ๊ทธ๋ƒฅ ํ’€์–ด๋„ ๋  ์ •๋„๋กœ ๋‚œ์ด๋„๊ฐ€ ํ‰์ดํ–ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์ด 80๋ฌธ์ œ๋กœ ๊ธฐ์–ตํ•˜๋Š” ๋ฐ ์ปท์€ ์ฒด๊ฐ์ƒ 60๊ฐœ ์ •๋„

 

์˜คํžˆ๋ ค ๋ฌธ์ œ ์ •๋‹ต๋ฅ ์€ ์ผ์ • ์ˆ˜์ค€๋งŒ ๋ณด๊ณ  ์ธ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๋งŽ์ด ๋ฐ˜์˜ํ•œ ๊ฑฐ ๊ฐ™๊ธฐ๋„ ํ–ˆ๋‹ค.

 

2.5 ํ”ผํ‹ฐ ๋ฉด์ ‘ ์ค€๋น„

- ์ผ์š”์ผ์— ๋”ฐ๋กœ ํ”ผํ‹ฐ ๋ฉด์ ‘์„ ์ค€๋น„ํ•˜๋Š” ์‹œ๊ฐ„์ด ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์ œ๋Š” ์ด 3๊ฐ€์ง€์ธ๋ฐ ๊ทธ ์ค‘ ํ•˜๋‚˜ ๊ณจ๋ผ์„œ 1ํŽ˜์ด์ง€ ๋ถ„๋Ÿ‰์˜ ํ”ผํ‹ฐ ์ž๋ฃŒ ๋งŒ๋“ค๋ฉด ๋จ

 

3. ์‹ค๋ฌด ๋ฉด์ ‘

- ์˜จ๋ผ์ธ์œผ๋กœ ์ง„ํ–‰ํ–ˆ์œผ๋ฉฐ, ํ•œ ํƒ€์ž„์— 8๋ช… ์ •๋„๊ฐ€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์คŒ ๋ฉด์ ‘๋ฐฉ์— ๋“ค์–ด๊ฐ”๋‹ค. ํ•œ ๋ฐฉ์— ๋ฉด์ ‘๊ด€๋ถ„๋“ค์ด 4๋ช… ์ •๋„ ๊ณ„์‹ ๋ฐ ๋‹ค๋“ค ์นœ์ ˆํ•˜์…จ๋‹ค. ์ผ๋‹จ ์ฒ˜์Œ์œผ๋กœ ํ”ผํ‹ฐ ๋ฐœํ‘œํ•˜๊ณ  QnA๋ฅผ ๋ฐ›์•˜๋‹ค. ๊ทผ๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์งˆ๋ฌธ์ด ํ‰์ดํ–ˆ๊ณ  ๊ทธ ๊ธฐ์ˆ  ์ž์ฒด์— ํฌ๊ฒŒ ๊ด€์‹ฌ์ด ์—†์–ด๋ณด์ด์…จ๋‹ค. 

 

ํ”ผํ‹ฐ ๋ฉด์ ‘์ด ๋๋‚˜๋ฉด ์ด๋ ฅ์„œ/ ์ž์†Œ์„œ ๊ธฐ๋ฐ˜์˜ ์งˆ๋ฌธ์„ ๋ฐ›๋Š”๋‹ค. ๋‚œ์ด๋„๋Š” ํ‰์ดํ•œ ํŽธ! ์ธ์ƒ ๊นŠ์—ˆ๋˜ ๊ฒƒ์€ ์ด๋ ฅ์„œ์— ์ฒจ๋ถ€๋œ ๋‚ด ์ด๋ ฅ์„œ์™€ ๋ธ”๋กœ๊ทธ๋ฅผ ๋ณด์‹œ๊ณ  ๊ทธ๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์งˆ๋ฌธ์„ ๋งŽ์ด ์ฃผ์…จ๋‹ค.

 

4. ์ž„์› ๋ฉด์ ‘

- ๋‹ค๋Œ€๋‹ค๋กœ ์ง„ํ–‰๋˜๋ฉฐ ๋‚œ 4๋Œ€3 ์œผ๋กœ ๋ดค๋‹ค. ๊ณตํ†ต์งˆ๋ฌธ๊ณผ ๊ฐœ์ธ์งˆ๋ฌธ์„ ๋ฐ˜๋ฐ˜ ๋น„์œจ๋กœ ๋ฐ›์•˜๋‹ค. ๊ณตํ†ต์งˆ๋ฌธ์€ ๊ทธ๋ƒฅ ํ˜•์‹์ ์ธ ์ž…์‚ฌ ํ›„ ํฌ๋ถ€, ๋ฌด์Šจ ์ผ ํ•˜๊ณ  ์‹ถ์€์ง€ ์ด๋Ÿฐ ์งˆ๋ฌธ๋“ค

 

์ž„์› ๋ฉด์ ‘์„ ๊ต‰์žฅํžˆ ์ž˜ ๋ดค๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋–จ์–ด์ ธ์„œ ๋งŽ์ด ๋‹ต๋‹ตํ–ˆ๋‹ค. ๋ฉด๊นŒ๋ชฐ์€ ์ง„๋ฆฌ์ธ๋“ฏ

 

*ํ˜น์‹œ ๊ถ๊ธˆํ•œ ์  ์žˆ์œผ์‹œ๋ฉด ์•„๋Š” ์„ ์—์„œ ์ตœ๋Œ€ํ•œ ๋‹ต๋ณ€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ์ฟ ํ‚ค ์ธ์ฆ ๋ฐฉ์‹

์ฟ ํ‚ค๋ž€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ๋ธŒ๋ผ์šฐ์ €์— key value ํ˜•ํƒœ๋กœ ์ €์žฅํ•ด๋†“๋Š” ์ž‘์€ ๊ธฐ๋กํŒŒ์ผ์ด๋‹ค.
์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ์„œ ๊ฐ„๋‹จํ•œ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
 

์ฟ ํ‚ค ๋กœ๊ทธ์ธ ์ธ์ฆ ๋ฐฉ์‹
 

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : https://brunch.co.kr/@jinyoungchoi95/1

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

2. ์„ธ์…˜ ์ธ์ฆ ๋ฐฉ์‹

์„ธ์…˜์€ ์‚ฌ์šฉ์ž์˜ ์—ฐ๊ฒฐ์„ ํ•˜๋‚˜์˜ ์ƒํƒœ(์„ธ์…˜)์œผ๋กœ ์œ ์ง€์‹œํ‚ค๋Š” ๊ธฐ์ˆ ์„ ๋งํ•œ๋‹ค.
 

์„ธ์…˜ ๋กœ๊ทธ์ธ ์ธ์ฆ ๋ฐฉ์‹

์ฟ ํ‚ค๋Š” ๋งค๋ฒˆ id,pw ๊ฐ™์€ ๋ฏผ๊ฐ ์ •๋ณด๋ฅผ ์ „์†กํ•ด์•ผํ–ˆ๋‹ค๋ฉด, ์„ธ์…˜์€ ์„œ๋ฒ„์˜ ์„ธ์…˜ ์ €์žฅ์†Œ์— ์„ธ์…˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•จ์œผ๋กœ์จ ๋ณด์™„์„ ๊ฐ•ํ™”ํ–ˆ๋‹ค.
ํด๋ผ์ด์–ธํŠธ๋Š” ์ธ์ฆ์ด ํ•„์š”ํ•œ ์š”์ฒญ์„ ํ•„์š”ํ•  ๋•Œ ์ฟ ํ‚ค์— ์„ธ์…˜ ์ธ์ฆ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„๋Š” ์ด๋ฅผ ์„ธ์…˜ ์ €์žฅ์†Œ์˜ ๋‚ด์šฉ๊ณผ ๋น„๊ตํ•ด์„œ ์ธ์ฆ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•œ๋‹ค.
(๋งˆ์น˜ ๋งคํ‘œ์†Œ์—์„œ ํ‹ฐ์ผ“์˜ ์ ˆ๋ฐ˜์„ ๋–ผ์„œ ์†๋‹˜์ด๋ž‘ ๋‚˜๋ˆ ๊ฐ€์ง€๋Š” ์›๋ฆฌ์™€ ๋น„์Šทํ•˜๋‹ค.)
์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ์ธ์ฆ ์š”์ฒญ ์‹œ์— ๋ฏผ๊ฐ ์ •๋ณด๋ฅผ ๋„คํŠธ์›Œํฌ ์ƒ์— ๋…ธ์ถœ ์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค.
 
ํ•˜์ง€๋งŒ ์„ธ์…˜ ๋ฐฉ์‹๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ์•ˆ๊ณ  ์žˆ๋‹ค.
1. ์„œ๋ฒ„๊ฐ€ ์žฌ๋ถ€ํŒ…๋˜๋ฉด ์„ธ์…˜ ์ €์žฅ์†Œ๊ฐ€ ์ดˆ๊ธฐํ™”๋œ๋‹ค.
2. ์Šค์ผ€์ผ ์•„์›ƒ ๋ฐฉ์‹์˜ ํ™•์žฅ์ด ์–ด๋ ต๋‹ค. -> ๋ชจ๋“  ์„œ๋ฒ„์— ์„ธ์…˜ ์ •๋ณด๋ฅผ ๋™๊ธฐํ™” ์‹œ์ผœ์•ผํ•œ๋‹ค.
3. ์‚ฌ์šฉ์ž์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉด ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ์„ธ์…˜ ์ •๋ณด๊ฐ€ ๋งŽ์•„์ ธ์„œ ์„œ๋ฒ„์˜ ๋ถ€๋‹ด์ด ๋œ๋‹ค. -> ๋ฌด์ƒํƒœ(stateless) ์œ„๋ฐ˜
4. ์„ธ์…˜ ์ธ์ฆ ์ •๋ณด ํƒˆ์ทจ์˜ ์œ„ํ—˜์ด ์žˆ๋‹ค.
 

3. JWT ์ธ์ฆ ๋ฐฉ์‹ 

JWT(Json Web Token) ๋ฐฉ์‹์€ ํ† ํฐ ๊ธฐ๋ฐ˜์˜ ์ธ์ฆ ๋ฐฉ์‹์ด๋‹ค. ์ด ๋ฐฉ์‹์„ ํ†ตํ•ด ๊ทธ ๋™์•ˆ์˜ ์ธ์ฆ ๋ฐฉ์‹์—์„œ ๋‚˜์™”๋˜ ๋ฌธ์ œ๋“ค์„ ์–ด๋Š์ •๋„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
 

JWT ๋กœ๊ทธ์ธ ์ธ์ฆ ๋ฐฉ์‹

JWT ํ† ํฐ ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.
 
header
ํ‚ค๊ฐ’, ํ† ํฐ ์œ ํ˜•, ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ™์€ ์ •๋ณด๋“ค์„ ๋‹ด๊ณ  ์žˆ๋‹ค.
 
payload
ํด๋ ˆ์ž„(claim)์ด๋ผ๊ณ  ํ•˜๋Š” ์œ ์ €์˜ ํ† ํฐ ์ธ์ฆ ์ •๋ณด๋ฅผ key/value ํ˜•ํƒœ๋กœ ๋‹ด๊ณ  ์žˆ๋‹ค.
JWT ์ŠคํŽ™์—์„œ๋Š” ํ‘œ์ค€ claim ๋ชฉ๋ก์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค. (๊ถŒ์žฅ ์‚ฌํ•ญ์ผ ๋ฟ ๊ผญ ์ง€ํ‚ฌ ํ•„์š”๋Š” ์—†์„ ๊ฒƒ ๊ฐ™๋‹ค)
 
iss (Issuer, ํ† ํฐ ๋ฐœ๊ธ‰์ž): . ๋ˆ„๊ฐ€ ํ† ํฐ์„ ๋ฐœ๊ธ‰(์ƒ์„ฑ)ํ–ˆ๋Š”์ง€
sub (Subject, ํ† ํฐ ์ฃผ์ œ): ์ฃผ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
aud (Audience, ํ† ํฐ ์ˆ˜์‹ ์ž): ๋ˆ„๊ตฌ์—๊ฒŒ ํ† ํฐ์ด ์ „๋‹ฌ๋˜๋Š” ๊ฐ€
exp (Expiration, ๋งŒ๋ฃŒ ์‹œ๊ฐ„): ์–ธ์ œ ํ† ํฐ์ด ๋งŒ๋ฃŒ๋˜๋Š”์ง€
nbf (Not Before): ์ •์˜๋œ ์‹œ๊ฐ„ ์ดํ›„์— ํ† ํฐ์ด ํ™œ์„ฑ
iat (Issued At, ํ† ํฐ ๋ฐœ๊ธ‰ ์‹œ๊ฐ„): ์–ธ์ œ ํ† ํฐ์ด ๋ฐœ๊ธ‰๋˜์—ˆ๋Š”์ง€
jti (JWT ID, ํ† ํฐ ์‹๋ณ„์ž): ํ† ํฐ์˜ ๊ณ ์œ  ์‹๋ณ„์ž
 
signature
JWT์—์„œ ๊ฐ€์žฅ ๋ฏผ๊ฐํ•œ ๋ถ€๋ถ„์ด๋‹ค. ํ•ด๋‹น ๊ฐ’์œผ๋กœ ํ† ํฐ์˜ ์œ ํšจ์„ฑ์„ ํŒ๋ณ„ํ•˜๋ฉฐ ์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์‹œํฌ๋ฆฟ ๊ฐ’์„ ์œ ์ถœ์‹œํ‚ค์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.
์‹œํฌ๋‹ˆ์ฒ˜๋Š” ํ—ค๋”+ํŽ˜์ด๋กœ๋“œ+์‹œํฌ๋ฆฟ ๊ฐ’์„ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ์„œ ๋งŒ๋“ค์–ด์ง„๋‹ค.
๋”ฐ๋ผ์„œ ์‹œํฌ๋ฆฟ ๊ฐ’์ด ์กฐ๊ธˆ์ด๋ผ๋„ ๋‹ค๋ฅด๋‹ค๋ฉด ํ† ํฐ ๋‚ด์šฉ์€ ์™„์ „ ๋ณ€ํ•˜๊ฒŒ ๋˜์–ด์„œ ์ธ์ฆ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.
 
์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ํ—ค๋”์™€ ํŽ˜์ด๋กœ๋“œ๋Š” ์•”ํ˜ธํ™”๊ฐ€ ์•„๋‹Œ base64 ๋ฐฉ์‹์œผ๋กœ ์ธ์ฝ”๋”ฉ ๋˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ์ œ3์ž๋„ ํ† ํฐ๋งŒ์œผ๋กœ๋„ ํ•ด๋‹น ๊ฐ’๋“ค์„ ์—ด๋žŒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹๋ณ„์ž๋ฅผ ์ œ์™ธํ•œ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋“ค์„ ์ตœ๋Œ€ํ•œ ๋„ฃ์ง€ ๋ง์•„์•ผํ•œ๋‹ค!
 
JWT๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ† ํฐ์„ ์ฃผ๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์•ฝ ํ† ํฐ์ด ํƒˆ์ทจ ๋‹นํ•œ๋‹ค๋ฉด ์„œ๋ฒ„์—์„œ ๋”ฑํžˆ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์—†๋‹ค.
์ด ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ์ด์šฉํ•ด์„œ ๊ธฐ์กด ํ† ํฐ์˜ ์œ ํšจ ์‹œ๊ฐ„์„ ์งง๊ฒŒ ๊ฐ€์ ธ๊ฐ€๊ณ  ์ƒˆ๋กœ์šด ํ† ํฐ์„ ์ง€์†ํ•ด์„œ ๋ฐœ๊ธ‰ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ์€ ํƒˆ์ทจ๋œ ํ† ํฐ์ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทผ๋ณธ์ ์ธ ํ•ด๊ฒฐ๋ฒ•์€ ์•„๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์€ํ–‰ ๊ฐ™์ด ๋ณด์•ˆ์— ๊ต‰์žฅํžˆ ๋ฏผ๊ฐํ•œ ๊ณณ์—์„œ๋Š” ์—ฌ๋Ÿฌ ์™ธ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•ด์„œ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•œ๋‹ค.
 

 

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : https://tecoble.techcourse.co.kr/post/2021-11-07-load-balancing/

1. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ž€?

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ๋“ค์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๊ณ  ์•ˆ์ •์ ์ธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค. 

๋ฌผ๋ก  ํ•œ ๋Œ€์˜ ์„œ๋ฒ„๋กœ ์„ฑ๋Šฅ์„ ๊ณ„์† ํ‚ค์›Œ์„œ ์–ด๋Š ์ •๋„๋Š” ์ปค๋ฒ„(Scale-up)ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์ด ๋ฐฉ์‹์€ ์–ผ๋งˆ ์•ˆ๊ฐ€์„œ ํ•œ๊ณ„๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ๋‘ฌ์„œ ์š”์ฒญ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ(Scale-out)์ด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์ด๊ณ  ์ด ์—ญํ• ์„ ํ•˜๋Š”๊ฒŒ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์ด๋‹ค.

 

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์‚ฌ์šฉ์ž์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์œ„์น˜ํ•˜๋ฉฐ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„๊ฐ€ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋‚ด๋„๋ก ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•œ๋‹ค.

 

2. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์‚ฌ์šฉ์˜ ์ด์ 

๊ฐ€์šฉ์„ฑ

์„œ๋ฒ„ ์žฅ์•  ๋˜๋Š” ๋ถ€ํ•˜๋กœ ์ธํ•œ ๋”œ๋ ˆ์ด๋ฅผ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ†ตํ•ด ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•จ์œผ๋กœ์จ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ€์šฉ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ€๋™ ์ค‘์ง€ ์—†์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ์œ ์ง€ ๊ด€๋ฆฌ ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ์‹คํ–‰
  • ๋ฐฑ์—… ์‚ฌ์ดํŠธ์— ์ž๋™ ์žฌํ•ด ๋ณต๊ตฌ ์ œ๊ณต
  • ์ƒํƒœ ํ™•์ธ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฐ€๋™ ์ค‘์ง€๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ ๋ฐฉ์ง€

ํ™•์žฅ์„ฑ

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ทœ๋ชจ๋‚˜ ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•˜๋”๋ผ๋„ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ๋“ค์„ ์ง€๋Šฅ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋ถ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ™•์žฅ์ด ์šฉ์ดํ•ด์ง„๋‹ค.

  • ํ•œ ์„œ๋ฒ„์—์„œ ํŠธ๋ž˜ํ”ฝ ๋ณ‘๋ชฉ ํ˜„์ƒ ๋ฐฉ์ง€
  • ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠธ๋ž˜ํ”ฝ์„ ์˜ˆ์ธก
  • ์•ˆ์‹ฌํ•˜๊ณ  ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹œ์Šคํ…œ์— ์ค‘๋ณต์„ฑ์„ ์ถ”๊ฐ€

๋ณด์•ˆ์„ฑ

๋””๋„์Šค๊ฐ™์€ ์•…์„ฑ ํŠธ๋ž˜ํ”ฝ ๊ณต๊ฒฉ์„ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ†ตํ•ด ํ”ผํ•ด๋ฅผ ์ตœ์†Œํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

์•…์„ฑ ํŠธ๋ž˜ํ”ฝ์„ ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋กœ ๋ถ„์‚ฐ์‹œํ‚ค๊ฑฐ๋‚˜ ๋ฐฉํ™”๋ฒฝ์„ ํ†ตํ•ด ์‚ฌ์ „ ์ฐจ๋‹จํ•œ๋‹ค.

  • ํŠธ๋ž˜ํ”ฝ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์•…์„ฑ ์ฝ˜ํ…์ธ  ์ฐจ๋‹จ
  • ๊ณต๊ฒฉ ํŠธ๋ž˜ํ”ฝ์„ ์—ฌ๋Ÿฌ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋กœ ์ž๋™์œผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜์—ฌ ์˜ํ–ฅ ์ตœ์†Œํ™”
  • ์ถ”๊ฐ€ ๋ณด์•ˆ์„ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ๋ฐฉํ™”๋ฒฝ ๊ทธ๋ฃน์„ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…

์„ฑ๋Šฅ ํ–ฅ์ƒ

์ง€๋Šฅ์ ์ธ ๋ถ€ํ•˜ ๋ถ„์‚ฐ์„ ํ†ตํ•ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‘๋‹ต ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

  • ์„œ๋ฒ„ ๊ฐ„์— ๋กœ๋“œ๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ฐฐํฌํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ
  • ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ง€๋ฆฌ์ ์œผ๋กœ ๋” ๊ฐ€๊นŒ์šด ์„œ๋ฒ„๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜์—ฌ ์ง€์—ฐ ์‹œ๊ฐ„ ๋‹จ์ถ•
  • ๋ฌผ๋ฆฌ์  ๋ฐ ๊ฐ€์ƒ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค์˜ ์‹ ๋ขฐ์„ฑ ๋ฐ ์„ฑ๋Šฅ ๋ณด์žฅ

์ฐธ๊ณ  : https://aws.amazon.com/what-is/load-balancing/?nc1=h_ls

 

3. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์˜ ์ข…๋ฅ˜

 

๋ถ€ํ•˜ ๋ถ„์‚ฐ์—๋Š” L4 , L7 ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ L4๋Š” OSI7 ๊ณ„์ธต์˜ ํ†ต์‹  ๊ณ„์ธต, L7์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์ด๋‹ค.

๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๋ง๋กœ ๋„คํŠธ์›Œํฌ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ , ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ผ๊ณ ๋„ ํ•œ๋‹ค.

 

L4 ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ

์ „์†ก ๊ณ„์ธต์˜ IP, PORT ๊ฐ™์€ ์ •๋ณด๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•œ๋‹ค.

ํŒจํ‚ท์ด๋‚˜ ์ฟ ํ‚ค๊ฐ™์€ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ถ„์„ํ•  ํ•„์š”์—†์ด ๋น„๊ต์  ๋‹จ์ˆœํ•˜๊ฒŒ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— L7 ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— ๋น„ํ•ด ๋น ๋ฅด๊ณ  ๊ฐ€๋ณ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

*Client IP์™€ ์„œ๋ฒ„์‚ฌ์ด์— ์„œ๋ฒ„๋กœ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ํ†ตํ•˜๊ณ  ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ์€ Client IP์™€ ์ง์ ‘ ํ†ต์‹ ํ•œ๋‹ค.

 

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : https://dev.classmethod.jp/articles/load-balancing-types-and-algorithm/

 

L7 ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(HTTP, FTP, SMTP)์—์„œ ๋กœ๋“œ๋ฅผ ๋ถ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— HTTP ํ—ค๋”, ์ฟ ํ‚ค ๋“ฑ๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๊ธฐ์ค€์œผ๋กœ ํŠน์ • ์„œ๋ฒ„์— ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ex) ๊ฒฐ์ œ ์„œ๋ฒ„, ํšŒ์› ๊ฐ€์ž… ์„œ๋ฒ„

L7 ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์˜ ๊ฒฝ์šฐ ํŠน์ •ํ•œ ํŒจํ„ด์„ ์ง€๋‹Œ ๋ฐ”์ด๋Ÿฌ์Šค๋ฅผ ๊ฐ์ง€ํ•ด ๋„คํŠธ์›Œํฌ๋ฅผ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, DoS/DDoS์™€ ๊ฐ™์€ ๋น„์ •์ƒ์ ์ธ ํŠธ๋ž˜ํ”ฝ์„ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ธฐ๋Šฅ์ด ๋งŽ์€ ๋Œ€์‹  ๊ทธ๋งŒํผ ์ž์› ์†Œ๋ชจ๊ฐ€ ํฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 

*Client IP์™€ ์„œ๋ฒ„์‚ฌ์ด์— ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ์ด ๋ชจ๋‘ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์™€ ํ†ต์‹ ํ•œ๋‹ค.

 

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : https://dev.classmethod.jp/articles/load-balancing-types-and-algorithm/

4. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋”ฑ 3๊ฐœ๊ฐœ๋งŒ!

 

๋ผ์šด๋“œ ๋กœ๋นˆ(Round Robin)

์š”์ฒญ ๋ฐ›์€ ์ˆœ์„œ๋Œ€๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์„œ๋ฒ„์— ํ• ๋‹นํ•œ๋‹ค. 

์„œ๋ฒ„๋“ค์˜ ์„ฑ๋Šฅ์ด ๋น„์Šทํ•˜๊ณ  ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ์งง์€ ๊ฒฝ์šฐ ์œ ๋ฆฌํ•˜๋‹ค.

 

๊ฐ€์ค‘ ๋ผ์šด๋“œ ๋กœ๋นˆ(Weighted Round Robin)

์„œ๋ฒ„๊ฐ„ ์„ฑ๋Šฅ์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์„œ๋ฒ„์— ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ์„œ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•œ๋‹ค.

 

์ตœ์†Œ ์—ฐ๊ฒฐ ๋ฐฉ์‹(Least Connection)

์—ฐ๊ฒฐ ์ƒํƒœ๊ฐ€ ๊ฐ€์žฅ ์ ์€ ์„œ๋ฒ„์— ์šฐ์„ ์ ์œผ๋กœ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•œ๋‹ค. 

์„ธ์…˜์ด ์ž์ฃผ ๊ธธ์–ด์ง€๊ฑฐ๋‚˜ ๋ถ„๋ฐฐ๋œ ํŠธ๋ž˜ํ”ฝ๋“ค์ด ์ผ์ •ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์œ ๋ฆฌํ•˜๋‹ค.

 

 

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ https://careerly.co.kr/comments/77905

 

DNS ๋ผ์šด๋“œ ๋กœ๋นˆ

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ํ™œ์šฉํ•˜์ง€ ์•Š๊ณ  ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. 

DNS ๋ผ์šด๋“œ ๋กœ๋นˆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋„ค์ž„์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋„๋ฉ”์ธ์— ํ•ด๋‹นํ•˜๋Š” ์—ฌ๋Ÿฌ IP ์ •๋ณด๋“ค์„ ์‘๋‹ตํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ์—ฌ๋Ÿฌ IP ์ •๋ณด์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฒฐ๋ก ์ ์œผ๋กœ ์—ฌ๋Ÿฌ IP๋กœ ํŠธ๋ž˜ํ”ฝ์ด ๋ถ„์‚ฐ๋œ๋‹ค.

์ด ๋ฐฉ์‹์€ ์›น ์„œ๋ฒ„๋“ค์ด ์ง€๋ฆฌ์ ์œผ๋กœ ๋ถ„์‚ฐ๋˜์–ด ์žˆ์–ด ๋ถ€ํ•˜ ๋ถ„์‚ฐ์ด ์–ด๋ ต๊ฑฐ๋‚˜ ๊ฐ€๋ฒผ์šด ๊ตฌํ˜„ ๋ฐฉ์‹์ด ํ•„์š”ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค.

 

ํ•˜์ง€๋งŒ ์บ์‹ฑ์œผ๋กœ ์ธํ•ด์„œ ํŠน์ • IP์— ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆด ์ˆ˜ ์žˆ๊ณ , ํ—ฌ์Šค ์ฒดํฌ๋ฅผ ํ•˜์ง€ ๋ชปํ•ด์„œ ์š”์ฒญํ•œ IP๋กœ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

1. DNS๋ž€?

๋„๋ฉ”์ธ์€ ์ธํ„ฐ๋„ท์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ๋กœ ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

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

 

DNS๋ฅผ ํ†ตํ•˜์—ฌ ์‚ฌ์šฉ์ž๋“ค์€ ๋„๋ฉ”์ธ ์ด๋ฆ„๋งŒ ๊ฐ€์ง€๊ณ ๋„ ์‰ฝ๊ฒŒ ์›น ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, ์„ค๋ น ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€๋‹ค๊ณ  ํ•œ๋“ค ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค.

 

์ด๋Ÿฌํ•œ DNS ์‹œ์Šคํ…œ์€ ์„ธ๊ณ„์ ์œผ๋กœ ์ผ๊ด€๋œ ๊ทœ์น™์„ ๊ฐ€์ง€๋ฉฐ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ์ด๋‹ค.

 

2. DNS ๊ตฌ์„ฑ ์š”์†Œ

๋„๋ฉ”์ธ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค

DNS๋Š” ๊ฑฐ๋Œ€ํ•œ ๋ถ„์‚ฐ ๋„ค์ด๋ฐ ์‹œ์Šคํ…œ์ด๋ฉฐ, ๋„๋ฉ”์ธ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค๋Š” ์ด๋Ÿฌํ•œ DNS๊ฐ€ ์ €์žฅ/๊ด€๋ฆฌํ•˜๋Š” ๊ณ„์ธต์  ๊ตฌ์กฐ์ด๋‹ค.

์ตœ์ƒ์œ„์— ๋ฃจํŠธ ์„œ๋ฒ„๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ทธ ์•„๋ž˜๋กœ ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์ด ์—ฐ์†ํ•ด์„œ ์ด์–ด์ง„ ๊ณ„์ธต ๊ตฌ์กฐ์ด๋‹ค.

 

1. ๋ฃจํŠธ DNS ์„œ๋ฒ„

TLD DNS ์„œ๋ฒ„์˜ IP์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ  ์•ˆ๋‚ดํ•œ๋‹ค.

DNS ๋งคํ•‘ ๊ณผ์ •์˜ ์ฒซ ๋‹จ๊ณ„์ด๋‹ค.

 

2. TLD ์„œ๋ฒ„

๋„๋ฉ”์ธ ๋“ฑ๋ก ๊ธฐ๊ด€์ด ๊ด€๋ฆฌํ•˜๋ฉฐ SLD DNS ์„œ๋ฒ„์˜ IP์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ  ์•ˆ๋‚ดํ•œ๋‹ค

ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์„ ํ˜ธ์ŠคํŒ…ํ•œ๋‹ค.

ex) example.com ์˜ "com"

 

3. SLD ์„œ๋ฒ„(๊ถŒํ•œ ์žˆ๋Š” ๋„ค์ž„ ์„œ๋ฒ„)

์‹ค์ œ ๊ฐœ์ธ ๋„๋ฉ”์ธ๊ณผ IP ์ฃผ์†Œ์˜ ๊ด€๊ณ„๊ฐ€ ๊ธฐ๋ก๋œ๋‹ค.

๋„ค์ž„ ์„œ๋ฒ„ ์ฟผ๋ฆฌ์˜ ์ข…์ฐฉ์ ์ด๋‹ค. ๊ถŒํ•œ์žˆ๋Š” ์ด๋ฆ„ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญํ•œ ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋‹ค๋ฉด, ์š”์ฒญํ•œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ดˆ๊ธฐ ์š”์ฒญ์„ ํ•œ DNS ๋ฆฌ์ปค์„œ์—๊ฒŒ ๋Œ๋ ค ๋ณด๋‚ธ๋‹ค.

 

4. Resolver , Recursive ,Recurser

์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ธ๋‹ค.

 

๋„ค์ž„ ์„œ๋ฒ„

๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์‹ค์ œ ์ปดํ“จํ„ฐ๊ฐ€ ํ†ต์‹ ํ•  ๋•Œ ์“ฐ๋Š” IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

๋„ค์ž„ ์„œ๋ฒ„๋Š” ๋„๋ฉ”์ธ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์˜ ํŠธ๋ฆฌ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

๋ฆฌ์กธ๋ฒ„ 

DNS ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋„ค์ž„ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•˜๊ณ  ๋„ค์ž„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ๋ฐ›์•„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ œ๊ณตํ•œ๋‹ค.

๋จผ์ € ํ•˜๋‚˜์˜ ๋„ค์ž„ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๊ณ  ํ•ด๋‹น ๋„ค์ž„ ์„œ๋ฒ„์— ์ •๋ณด๊ฐ€ ์—†์œผ๋ฉด ๋‹ค๋ฅธ ๋„ค์ž„ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

๋ฆฌ์กธ๋ฒ„์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ํด๋ผ์ด์–ธํŠธ์— ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ๋กœ DNS ์„œ๋ฒ„์—์„œ ๊ตฌํ˜„ํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹จ์ˆœํ•œ ๋ฆฌ์กธ๋ฒ„ ๊ธฐ๋Šฅ(๋ฆฌ์กธ๋ฒ„ ๋ฃจํ‹ด)๋งŒ ๊ตฌํ˜„ํ•˜๊ฒŒ๋” ํ•œ๋‹ค.

 

4. ์ฟผ๋ฆฌ

์žฌ๊ท€์  ์ฟผ๋ฆฌ(์งˆ์˜)

์ผ๋ฐ˜์ ์ธ ๋„ค์ž„ ์„œ๋ฒ„ ๋ฐฉ์‹์ด๋ฉฐ, ํด๋ผ์ด์–ธํŠธ(๋ฆฌ์ปค์„œ, ๋ฆฌ์กธ๋ฒ„)์—๊ฒŒ ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

์ถœ์ฒ˜ : https://blog.naver.com/nj0803/10175980049

๋ฐ˜๋ณต์  ์ฟผ๋ฆฌ(์งˆ์˜)

์ž์‹ ์ด ์ง์ ‘ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š” ์งˆ์˜ ์š”์ฒญ์ด ์˜ฌ ๊ฒฝ์šฐ ์งˆ์˜ ์‘๋‹ต์ด ๊ฐ€๋Šฅํ•œ NS ๋ชฉ๋ก์„ ์‘๋‹ตํ•œ๋‹ค.

Root ๋„ค์ž„ ์„œ๋ฒ„๋Š” ๋ฌด์กฐ๊ฑด ๋ฐ˜๋ณต์  ๋ฐฉ์‹์ด๊ณ  TLD๋Š” ์ผ๋ถ€๋งŒ ๋ฐ˜๋ณต์  ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

์ถœ์ฒ˜ : https://blog.naver.com/nj0803/10175980049

5. DNS ๋™์ž‘ ๋ฐฉ์‹

์ถœ์ฒ˜ : https://aws.amazon.com/ko/route53/what-is-dns/

 

1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

2. ๋ธŒ๋ผ์šฐ์ €๋Š” DNS ์„œ๋ฒ„์— ์š”์ฒญํ•˜๊ธฐ ์ „์— ์บ์‹œ๋ฅผ ํ™•์ธํ•˜์—ฌ ์ •๋ณด๋ฅผ ์ฐพ๋Š”๋‹ค.

3. ๋งŒ์•ฝ ์ •๋ณด๋ฅผ ์ฐพ๊ธฐ ๋ชปํ•˜์˜€๋‹ค๋ฉด root ์„œ๋ฒ„์— ๋ฐ˜๋ณต์  ์งˆ์˜๋ฅผ ๋ณด๋‚ธ๋‹ค.

๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์ตœ์ƒ์œ„ ๋„๋ฉ”์ธ(TLD) DNS ์„œ๋ฒ„(์˜ˆ: .com ๋˜๋Š” .net)์˜ ์ฃผ์†Œ๋กœ ํ™•์ธ์ž์— ์‘๋‹ตํ•œ๋‹ค.

ex) example.com์„ ๊ฒ€์ƒ‰ํ•  ๊ฒฝ์šฐ์˜ ์š”์ฒญ์€ .com TLD ์„œ๋ฒ„๋ฅผ ์‘๋‹ต ๋ฐ›์Œ

4. SLD ๋„ค์ž„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ตœ์ข…์ ์œผ๋กœ IP ์ฃผ์†Œ๋ฅผ ์‘๋‹ต๋ฐ›๋Š”๋‹ค.

5. ๋ธŒ๋ผ์šฐ์ €๋Š” ์‘๋‹ต ๋ฐ›์€ IP ์ •๋ณด๋กœ ์š”์ฒญ์„ ์ „์†กํ•˜๊ณ  ์›น ํŽ˜์ด์ง€๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค.

6. ํ•ด๋‹น ๋„๋ฉ”์ธ์— ํ•ด๋‹นํ•˜๋Š” ์ •๋ณด๋Š” ์ผ์ • ์‹œ๊ฐ„ ์บ์‹ฑ๋œ๋‹ค.

 

๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ

๋ชจ๋‹ˆํ„ฐ๋ง์€ ์‹œ์Šคํ…œ์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š” ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๊ทธ ์ง€ํ‘œ ์ถ”์ ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ๋ถ„์„ํ•œ๋‹ค.

๊ด€์ฐฐ๊ฐ€๋Šฅ์„ฑ์€ ์‹œ์Šคํ…œ์ด ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ์ด ๋ชจ๋‹ˆํ„ฐ๋ง ํฌ๊ด„์ ์ธ ์˜๋ฏธ์ด๋‹ค.

 

AWS ๊ด€์ฐฐ๊ฐ€๋Šฅ์„ฑ 3๊ฐ€์ง€ ํ•„๋ผ(phillar) - ๋กœ๊ทธ, ์ง€ํ‘œ, ์ถ”์ 

๋ชจ๋‹ˆํ„ฐ๋ง์—์„œ๋„ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ์ด๋‹ค.

 

ํด๋ผ์šฐ๋“œ ์›Œ์น˜์—์„œ๋Š” 3๊ฐ€์ง€ ํ•„๋ผ๋ฅผ ๋‹จ์ผ ํ”Œ๋žซํผ์—์„œ ํ™•์ธ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ „์ฒด ์Šคํƒ์„ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜๊ณ  ๊ฒฝ๋ณด ๋กœ๊ทธ ๋ฐ ์ด๋ฒคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ํ™”๋œ ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ณ  ํ‰๊ท ํ•ด๊ฒฐ์‹œ๊ฐ„(MTTR) ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

AWS ๊ด€์ฐฐ๊ฐ€๋Šฅ์„ฑ์„ AWS ๋„ค์ดํ‹ฐ๋ธŒ ์„œ๋น„์Šค ํ˜น์€ ์˜คํ”ˆ์†Œ์Šค ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค์—์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

ํด๋ผ์šฐ๋“œ ์›Œ์น˜ ๋™์ž‘ ๋ฐฉ์‹

ํด๋ผ์šฐ๋“œ ์›Œ์น˜์˜ ๋™์ž‘ ๋ฐฉ์‹์€ ๋‹จ๊ณ„ ๋ณ„๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

1. ์ˆ˜์ง‘ ๋ชจ๋‹ˆํ„ฐ๋ง ํ–‰๋™ ๋ถ„์„

์ˆ˜์ง‘์€ ๋กœ๊ทธ ์ง€ํ‘œ ์ด๋ฒคํŠธ ํ˜•ํƒœ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์šด์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

 

2. ๋ชจ๋‹ˆํ„ฐ๋ง ์ž๋™ํ•˜๋œ ๋ฐ์‹œ๋ณด๋“œ๋กœ ์‹œ๊ฐํ™”

AWS๋ฆฌ์†Œ์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ฉ์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

3. ํ–‰๋™์—์„œ๋Š” ์ง€์ •ํ•œ ์ง€ํ‘œ์˜ ์ž„๊ณ„๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฝ๋ณด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ธฐ๊ณ„ ํ•™์Šต ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋น„์ •์ƒ ์ ์ธ ์ง€ํ‘œ ๋™์ž‘์„ ๊ฐ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠธ๋ฆฌ๊ฑฐ๋กœ ์ž๋™๋™์ž‘ , ์˜คํ† ์Šค์ผ€์ผ๋ง -> MTTR ๋‹จ์ถ•

 

4. ๋ถ„์„์—์„œ๋Š” ์‹ฌ์ธต์ ์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ ์„ฑ๋Šฅ ๊ฐœ์„ ํ•œ๋‹ค.

 

์•„๋งˆ์กด ํด๋ผ์šฐ๋“œ ์›Œ์น˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€ํ‘œ ์ €์žฅ์†Œ์ด๋‹ค.

 

์ •๋ ฌ๋œ ์‹œ๊ณ„์—ด ์ง‘ํ•ฉ์œผ๋กœ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ๋ณ„๋กœ ๊ฒฉ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๊ฒฉ๋ฆฌ๋˜์–ด์žˆ์–ด์„œ ๋‹ค๋ฅธ ์–ดํ”Œ์˜ ์ง€ํ‘œ๊ฐ€ ์‹ค์ˆ˜๋กœ ๋™์ผํ•œ ํ†ต๊ณ„๋กœ ์ง‘๊ณ„๋˜์ง€๋Š” ์•Š๋Š”๋‹ค.

 

๋” ์งง์€ ๊ธฐ๊ฐ„์œผ๋กœ ๊ฒŒ์‹œ๋œ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋Š” ์žฅ๊ธฐ ๋ณด๊ด€์„ ์œ„ํ•ด ์ง‘๊ณ„

ex) 1๋ถ„ ์„ธ๋ถ„ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์ค€ ๋ถ„ํ•ด๋Šฅ์œผ๋กœ ์ €์žฅ , 1๋ถ„ ๋ฏธ์•ˆ์€ 1์ดˆ ์„ธ๋ถ„ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ถ„ํ•ด๋Šฅ์œผ๋กœ ์ €์žฅ

-> AWS ์„œ๋น„์Šค์— ์˜ํ•ด ์ƒ์„ฑ๋˜๋Š” ์ง€ํ‘œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ‘œ์ค€ ๋ถ„ํ•ด๋Šฅ (1๋ถ„ ๋ฏธ๋งŒ์€ ๊ณ ๋ถ„ํ•ด๋Šฅ ์‚ฌ์šฉ์ž ์ง€ํ‘œ)

 

๊ณ ๋ถ„ํ•ด๋Šฅ์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹จ๊ธฐํ™œ๋™์„ ๋ณด๋‹ค ์ฆ‰๊ฐ์ ์œผ๋กœ ๊ด€์ฐฐ ๊ฐ€๋Šฅ

๋ฐฑ๋ถ„์œ„ ์ˆ˜๋Š” ์ง€ํ‘œ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€

๋กœ๊ทธ ์ŠคํŠธ๋ฆผ

๋กœ๊ทธ ์ด๋ฒคํŠธ์˜ ๋™์ผํ•œ ์†Œ์Šค๋ฅผ ๋ฌถ์–ด์„œ ๋กœ๊ทธ ์ŠคํŠธ๋ฆผ์„ ์ด๋ฃฌ๋‹ค. ๋กœ๊ทธ ์ŠคํŠธ๋ฆผ ์ˆ˜์—๋Š” ์ œํ•œ์ด ์—†๋‹ค.

๋กœ๊ทธ ์ €์žฅ ๋น„์šฉ์ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๊ทธ ๊ทธ๋ฃน์˜ ์„ฑ๊ฒฉ์— ๋งž๊ฒŒ ์ ์ ˆํ•œ ๋กœ๊ทธ ๋ณด์กด ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

 

์—์ด์ „ํŠธ๋Š” ์—์ด์ „ํŠธ , ์ง€ํ‘œ , ๋กœ๊ทธ , ์ถ”์ ์ด ์žˆ๋Š” JSON ํŒŒ์ผ์„ ํ†ตํ•ด ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ์— ์„ค์น˜ ๊ฐ€๋Šฅ, ์šด์˜ ์ฒด์ œ ์ „๋ฐ˜์— ๊ฑธ์ณ ๋‚ด๋ถ€ ์‹œ์Šคํ…œ ์ˆ˜์ค€์˜ ์ง€ํ‘œ ์ˆ˜์ง‘ ๊ฐ€๋Šฅํ•˜๋ฉฐ,

AWS ๊ฐ€ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š” ์„œ๋ฒ„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํ™˜๊ฒฝ์˜ ์„œ๋ฒ„๋„ ํฌํ•จํ•œ๋‹ค.

 

statsD collected ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์ง€ํ‘œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ง€ํ‘œ ์„น์…˜์€ ํด๋ผ์šฐ๋“œ ์›Œ์น˜์—์„œ ๊ฒŒ์‹œํ•  ์‚ฌ์šฉ์ž ์ง€์ • ์ง€ํ‘œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์ธ์‚ฌ์ดํŠธ

ํด๋ผ์šฐ๋“œ ์›Œ์น˜ ๋กœ๊ทธ ์ธ์‚ฌ์ดํŠธ๋Š” ํ†ตํ•ฉ๋œ ์ธํ„ฐ๋ ‰ํ‹ฐ๋ธŒ ๋กœ๊ทธ ๋ถ„์„, ๋กœ๊ทธ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€ํ™”์‹์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ž ์žฌ์ ์ธ ์›์ธ์„ ์‹๋ณ„ํ•˜๊ณ  ๋ฐฐํฌ๋œ ์ˆ˜์ •์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ ์ธ์‚ฌ์ดํŠธ

๋กœ๊ทธ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ธฐ๊ณ ์ž ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์‹œ๊ณ„์—ด ์ƒ์„ฑ

์ƒ์œ„ n๊ฐœ์˜ ๊ธฐ์—ฌ์ž ์ด ๊ณ ์œ  ๊ธฐ์—ฌ์ž ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ 

 

์ž˜๋ชป๋œ ํ˜ธ์ŠคํŠธ ์ฐพ๊ธฐ , ์‚ฌ์šฉ๋Ÿ‰์ด ๊ฐ€์žฅ ๋งŽ์€ ๋„คํŠธ์›Œํฌ ์‹๋ณ„ , ๊ฐ€์žฅ ๋งŽ์€ ์˜ค๋ฅ˜๋ฅผ ๋‚ด๋Š” url ํƒ์ง€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ปจํ…Œ์ด๋„ˆ ์ธ์‚ฌ์ดํŠธ

์ปจํ…Œ์ด๋„ˆํ™” ๋œ ์–ดํ”Œ๋ฆฌ์—์ด์…˜ ๋ฐ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์˜ ์ง€ํ‘œ ๋ฐ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์š”์•ฝ ๊ฐ€๋Šฅ ECS , EKS, EC2 ํ™˜๊ฒฝ์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

Fargate ๋ฆฌ์†Œ์Šค์—์„œ๋„ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๊ฐ€๋Šฅ

 

CPU, ๋ฉ”๋ชจ๋ฆฌ , ๋””์Šคํฌ, ๋„คํŠธ์›Œํฌ ๊ฐ™์€ ๋งŽ์€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ง€ํ‘œ๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘

์ปจํ…Œ์ด๋„ˆ ์žฌ์‹œ์ž‘ ์˜ค๋ฅ˜ ๊ฐ™์€ ์ง„๋‹จ ์ •๋ณด๋ฅผ ์žฌ๊ณตํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ๋นจ๋ฆฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ

 

์ž„๋ฒ ๋””๋“œ ์ง€ํ‘œ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์„ฑ๋Šฅ ๋กœ๊ทธ ์ด๋ฒคํŠธ๋กœ ์ˆ˜์ง‘

์„ฑ๋Šฅ ๋กœ๊ทธ ์ด๋ฒคํŠธ๋Š” ์นด๋‹ˆ๋„๋ฆฌํ‹ฐ๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ตฌ์กฐํ™” ๋œ json์„ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•ญ๋ชฉ

 

firelens๋Š” fluent bit ๋ฐ fl vented์™€ ํ•จ๊ป˜ ๋™์ž‘ 

 

 

๋žŒ๋‹ค ์ธ์‚ฌ์ดํŠธ

์„œ๋ฒ„๋ฆฌ์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ ์†”๋ฃจ์…˜

Cpu, ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ ์„ฑ๋Šฅ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์ง‘

์‚ฌ์šฉ์ž ์ง€์ • ์ง€ํ‘œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ

์ฝœํŠธ ์Šคํƒ€ํŠธ ๋ฐ ๋žŒ๋‹ค ์ž‘์—…์ž ์ข…๋ฃŒ์™€ ๊ฐ™์€์ง„๋‹จ ์ •๋ณด๋ฅผ์ˆ˜์ง‘ ์ง‘๊ณ„ ์š”์•ฝ , ๋žŒ๋‹ค ๊ด€๋ จ๋ฌธ์ œ๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ณ  ์‹ ์†ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.

 

์‹œ์Šคํ…œ ์ˆ˜์ค€ ์ง€ํ‘œ๋ฅผ ์ˆ˜์ง‘, ๋žŒ๋‹ค ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ๋‹จ์ผ ์„ฑ๋Šฅ ๋กœ๊ทธ ์ด๋ฒคํŠธ๋ฅผ ๋‚ด๋ณด๋ƒ„

 

ํด๋ผ์šฐ๋“œ ์›Œ์น˜๋Š” ๋กœ๊ทธ ์ด๋ฒคํŠธ์—์„œ ์ง€ํ‘œ๋ฅผ ์ถ”์ถœํ•˜์—ฌ์„œ ๋žŒ๋‹ค ์ธ์‚ฌ์ด์ธ  ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ํ•จ์ˆ˜ ์ด๋ฆ„๋ณ„๋กœ ์ €์žฅ

๋žŒ๋‹ค ์ธ์‚ฌ์ดํŠธ์—์„œ๋Š” ๋‹ค์ค‘ ํ•จ์ˆ˜ ๊ฐœ์š”๋ฅผ ๋ณด๊ฑฐ๋‚˜ ๋‹จ์ผ ํ•จ์ˆ˜์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

HTTP ๋ž€

HTTP๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ ๊ธฐ์ดˆ์ ์ธ ํ†ต์‹  ๊ทœ์น™ ์„ธํŠธ ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. 

์‚ฌ์šฉ์ž๊ฐ€ ์›น ์„œ๋น„์Šค์— ์ ‘์†ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” 80๋ฒˆ ํฌํŠธ๋ฅผ ํ†ตํ•ด ์›น ์„œ๋ฒ„์— HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ฐ›๋Š”๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ HTTP์˜ ์š”์ฒญ ์ข…๋ฅ˜์ธ GET์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ๊ทธ์— ๋งž๋Š” ์‘๋‹ต ๋ฐ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ณด๋‚ธ๋‹ค. ์ƒํƒœ ์ฝ”๋“œ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

200 - OK(์ •์ƒ)
400 - Bad request(์ž˜๋ชป๋œ ์š”์ฒญ)
404 - Resource not found(๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ)

 

 

HTTP๋Š” TCP/IP ์œ„์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ฌด์ƒํƒœ(stateless) ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : https://mangkyu.tistory.com/98

 

ํ•˜์ง€๋งŒ HTTP๋Š” ํ‰๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ์— ์ œ 3์ž๊ฐ€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ณด์•ˆ ์ด์Šˆ๊ฐ€ ์žˆ๋‹ค.

 

 

HTTP REQUEST ๋ฐฉ์‹ ์ข…๋ฅ˜

๋ฐฉ์‹ ๋ชฉ์ 
GET ๋ฆฌ์†Œ์Šค ์กฐํšŒ
POST ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
PUT ๋ฆฌ์†Œ์Šค ๋Œ€์ฒด(๋ฎ์–ด ์“ฐ๊ธฐ) , ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ
PATCH ๋ฆฌ์†Œ์Šค ๋ถ€๋ถ„ ๋ณ€๊ฒฝ
DELETE ๋ฆฌ์†Œ์Šค ์‚ญ์ œ

 

HTTP ๋ฒ„์ „ ๋ณ„ ์ฐจ์ด

HTTP/1.0

๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฐ๊ฒฐ์˜ ์ˆ˜๋ช…์ด ์งง์œผ๋ฉฐ HTTP ์š”์ฒญ๋‹น TCP hand-shake๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ๊ฐ๊ฐ ์—ฐ๊ฒฐ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ด๋กœ ์ธํ•ด ์„œ๋ฒ„์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  *RTT๊ฐ€ ๋Š˜์–ด๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.

 

RTT(Round Trip Time) : ์–ด๋–ค ๋ฉ”์„ธ์ง€๊ฐ€ ๋‘ ์žฅ์น˜ ์‚ฌ์ด๋ฅผ ์™•๋ณตํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„

 

HTTP/1.1

1.0 ๋ฒ„์ „์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ํฌ๊ฒŒ 3๊ฐ€์ง€์˜ ๊ฐœ์„ ์ ์ด ์žˆ๋‹ค.

 

1. keep alive default

์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค TCP ์—ฐ๊ฒฐ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ keep alive ์˜ต์…˜์„ ๊ธฐ๋ณธ ์˜ต์…˜์„ ํ•จ์œผ๋กœ์จ ๊ณ„์†ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

2. ํ˜ธ์ŠคํŠธ ํ—ค๋”

1.1 ๋ฒ„์ „๋ถ€ํ„ฐ ์„œ๋ฒ„๋Š” ์—ฌ๋Ÿฌ ๋Œ€์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•ญ์ƒ ํ˜ธ์ŠคํŠธ๋ฅผ ํ—ค๋”์— ํฌํ•จ์—์„œ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผํ•œ๋‹ค.

 

3. Persistent Connection (๋Œ€์—ญํญ ์ตœ์ ํ™”)

์ง€์ •ํ•œ time out ์‹œ๊ฐ„ ๋‚ด์— ๊ธฐ์กด connection์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

๊ธฐ์กด์—๋Š” ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๋‹ค๊ฐ€ ๋Š๊ธฐ๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐ›์•„์•ผํ–ˆ์ง€๋งŒ, 1.1 ๋ฒ„์ „๋ถ€ํ„ฐ ์ด์–ด์„œ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

์ด์™ธ์—๋„ ์š”์ฒญ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ๋“ค์„ ๋„์ž…ํ–ˆ๋‹ค.

 

1. ์ด๋ฏธ์ง€ ์Šคํ”„๋ผ์ดํŠธ

ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋งŒ ๋‹ค์šด๋ฐ›๊ณ  ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋ฐ›์€ ๋“ฏํ•œ ํšจ๊ณผ๋ฅผ ๋‚ธ๋‹ค.

 

2. ์ฝ”๋“œ ์••์ถ•

 

3. Base64 ์ธ์ฝ”๋”ฉ

์ด๋ฏธ์ง€ ํŒŒ์ผ์„ 64์ง„๋ฒ•์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด๋กœ ์ธ์ฝ”๋”ฉํ•ด์„œ ์ด๋ฏธ์ง€ ์„œ๋ฒ„์— ๋Œ€ํ•œ HTTP ์š”์ฒญ์„ ์ค„์ธ๋‹ค.

ํ•˜์ง€๋งŒ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ๋” ์ปค์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 

 

HTTP/1.1์˜ ๋ฌธ์ œ์  : HOL

๊ทธ๋Ÿฌ๋‚˜ HTTP/1.1 ์€ HOL(Head Of Line Blocking)์ด๋ผ๋Š” ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.

HTTP/1.1๋ถ€ํ„ฐ๋Š” ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์‘๋‹ต์„ ๋ฐ›๋Š” ํŒŒ์ดํ”„๋ผ์ด๋‹์ด ๊ฐ€๋Šฅํ•ด์กŒ๋Š”๋ฐ ์ด๋กœ ์ธํ•ด ์น˜๋ช…์ ์ธ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ์ธํ•ด 1๋ฒˆ ์š”์ฒญ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ทธ ๋’ค์— ์š”์ฒญ์ด ์ค„์ค„์ด ์ง€์—ฐ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

RFC ๋ฌธ์„œ ์›์น™์— ๋”ฐ๋ผ ์š”์ฒญ์ด ์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : https://withbundo.blogspot.com/2021/02/httphol-head-of-line-blocking.html

 

 

 

HTTP/2.0

 

๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๋งท ๊ณ„์ธต

๋” ์ž‘์€ ํ”„๋ ˆ์ž„์œผ๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ†ต์‹  ๊ณ„์ธต ์‚ฌ์ด์— ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๋งท ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค. 

 

 

๋ฉ€ํ‹ฐ ํ”Œ๋ ‰์‹ฑ

๋‹จ์ผ TCP ์—ฐ๊ฒฐ์—์„œ ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ์กด์—๋Š” ๋‹ค์ค‘ TCP ์—ฐ๊ฒฐ์„ ํ†ตํ•ด์„œ๋งŒ ๋ณ‘๋ ฌ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ HTTP/2.0 ๋ถ€ํ„ฐ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ž‘์€ ํ”„๋ ˆ์ž„์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ์ŠคํŠธ๋ฆผ์œผ๋กœ ํ”„๋ ˆ์ž„์„ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด HTTP/1.1์˜ ๋ฌธ์ œ์ธ HOL์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋˜ํ•œ ๊ฐ๊ฐ์˜ ํ”„๋ ˆ์ž„์€ ์ŠคํŠธ๋ฆผ id๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‘๋‹ต ์ˆœ์„œ์™€ ์ƒ๊ด€์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ๋ฆฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์„œ๋ฒ„ ํ‘ธ์‹œ

ํด๋ผ์ด์–ธํŠธ์˜ ๋ณ„๋„ ์š”์ฒญ์ด ์—†๋”๋ผ๋„ ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ์‘๋‹ต์— ๊ฐ™์ด ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

 

ํ—ค๋” ์••์ถ•

๋ฌด๊ฑฐ์šด ํ—ค๋”๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๋ณต๋œ ํ—ค๋”๋Š” ํ•œ๋ฒˆ๋งŒ ๋ณด๋‚ด๊ณ  ์ค‘๋ณต๋˜์ง€ ์•Š์€ ๊ฐ’์€ *ํ—ˆํ”„๋งŒ ์ธ์ฝ”๋”ฉ์„ ํ†ตํ•ด ์••์ถ•์‹œํ‚จ๋‹ค.

 

ํ—ˆํ”„๋งŒ ์ธ์ฝ”๋”ฉ: ๋ฌธ์ž์—ด์„ ๋ฌธ์ž ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์„œ ๋นˆ๋„๊ฐ€ ๋†’์€ ์ •๋ณด๋Š” ์ ์€ ๋น„ํŠธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋นˆ๋„๊ฐ€ ๋‚ฎ์€ ์ •๋ณด๋Š” ๋น„ํŠธ์ˆ˜๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

 

์šฐ์„  ์ˆœ์œ„

์„œ๋ฒ„์—์„œ ์›ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•ด์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

HTTP/3.0

TCP ์—ฐ๊ฒฐ๋กœ ์ธํ•œ ์˜ค๋ฒ„ํ—ค๋“œ ๋ฐ RTT ์‹œ๊ฐ„ ์ฆ๊ฐ€์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•œ ๋ฒ„์ „์ด๋‹ค.

์ด ๋ฒ„์ „๋ถ€ํ„ฐ UDP ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜์˜ QUIC(Quick UDP Internet Connections)๋กœ ๋™์ž‘ํ•˜๋ฉฐ ์ด์ „ ๋ฒ„์ „๋“ค์˜ ์žฅ์ , ํŠน์ง•๋“ค์€ ๋Œ€๋ถ€๋ถ„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

๋˜ํ•œ QUIC๋Š” TLS๋กœ ์•”ํ˜ธํ™” ํ†ต์‹ ์„ ๊ตฌ์ถ•ํ•  ๋•Œ hand shake๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ๊นŒ์ง€ ์ง„ํ–‰ํ•จ์œผ๋กœ์จ 1-RTT๋งŒ์— ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ์กด UDP๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ๋ชปํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด์—ˆ์ง€๋งŒ, QUIC๋Š” ์—๋Ÿฌ๋ฅผ ๊ฒ€์ถœํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆœ๋ฐฉํ–ฅ ์˜ค๋ฅ˜ ์ œ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

HTTPS์™€์˜ ์ฐจ์ด์ 

HTTP์˜ ๋ณด์•ˆ์ ์ธ ํ•œ๊ณ„๋ฅผ SSL/TLS๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ํ•ด๊ฒฐํ•œ ๊ฒƒ์ด HTTPS์ด๋‹ค.

SSL์€ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์— ์•”ํ˜ธํ™” ๋œ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๋ฐ์ดํ„ฐ๋“ค์ด ๋„๋‚œ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

 

SSL ์ธ์ฆ์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ์•”ํ˜ธํ™”ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๊ฐ€ ํƒˆ์ทจ๋œ๋‹ค ํ•˜๋”๋ผ๋„ ์•”ํ˜ธํ™” ๋œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ œ 3์ž๋Š” ์•Œ ์ˆ˜ ์—†๋‹ค.

๋˜ํ•œ SSL ์™ธ์—๋„ TLS ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด์„œ๋„ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•œ๋‹ค.

 

HTTPS๋Š” ๋ณด์•ˆ ์ƒ์˜ ์ด์ ๋„ ์žˆ์ง€๋งŒ ๊ตฌ๊ธ€์ด ์•ˆ์ „ํ•˜๋‹ค๊ณ  ์‹ ๋ขฐํ•˜๋Š” ์‚ฌ์ดํŠธ๋ผ๋Š” ๋ฐ˜์ฆ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”(SEO)์ธก๋ฉด์—์„œ๋„ ๋งŽ์€ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

 

HTTPS์˜ ๋™์ž‘ ๋ฐฉ์‹

HTTPS์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์•”ํ˜ธํ™”๋ฅผ ํ•œ๋‹ค๋Š” ์ ์ธ๋ฐ ์•”ํ˜ธํ™” ๋ฐฉ์‹์€ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

์•”ํ˜ธํ™”๋ฅผ ํ†ตํ•ด ์˜๋„๋œ ์†ก์ˆ˜์‹ ์ž๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ฐ์ดํ„ฐ ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.

 

๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๋™์ผํ•œ ํ‚ค๋ฅผ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•ด์„œ ์•”ํ˜ธํ™”ํ•œ๋‹ค.

ํ‚ค๊ฐ€ ๋…ธ์ถœ๋  ์œ„ํ—˜์ด ์žˆ์ง€๋งŒ ์—ฐ์‚ฐ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

ex)

Plaintext + key = ciphertext: hello + 2jd8932kd8 = X5xJCSycg14=

Ciphertext + key = plaintext: X5xJCSycg14= + 2jd8932kd8 = hello

-> ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๊ณผ์ •์—์„œ key๋ฅผ ํƒˆ์ทจ๋‹นํ•˜๋ฉด ์ œ 3์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”

๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ฑฐ๋‚˜ ๋ณตํ˜ธํ™”ํ•˜๊ณ  ๊ณต๊ฐœํ‚ค๋Š” ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” ๊ฐœ์ธํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์•”ํ˜ธํ™”๋ฅผ ๊ฐœ์ธํ‚ค๋กœ ํ• ๊ฒƒ์ธ์ง€ ๊ณต๊ฐœํ‚ค๋กœ ํ•  ๊ฒƒ์ธ์ง€์— ๋”ฐ๋ผ ์–ป๋Š” ํšจ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.

 

๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™”: ๊ฐœ์ธํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋Š” ์ž์‹ ๋งŒ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์€ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ณผ์ •์—์„œ ํ‚ค๊ฐ€ ํƒˆ์ทจ๋  ์œ„ํ—˜์ด ์žˆ์—ˆ์ง€๋งŒ ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์€ ๊ณต๊ฐœํ‚ค๊ฐ€ ํƒˆ์ทจ๋˜๋„ ์ƒ๊ด€์ด ์—†๋‹ค.

์ˆ˜์‹ ์ธก์—์„œ๋Š” ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™” ํ•œ ๋‹ค์Œ์— ๋‹ค์‹œ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ œ3์ž๋Š” ๊ฐœ์ธํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํƒˆ์ทจํ•˜๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค.

 

๊ฐœ์ธํ‚ค ์•”ํ˜ธํ™”: ๋ชจ๋‘์—๊ฒŒ ๊ณต๊ฐœ๋œ ๊ณต๊ฐœํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•˜๋ฏ€๋กœ ์ธ์ฆ๋œ ์ •๋ณด์ž„์„ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋‹ค.

A๋Š” ์›๋ณธ ๋ฐ์ดํ„ฐ์™€ ๊ฐœ์ธํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด B์—์„œ๋Š” ๊ณต๊ฐœํ‚ค๋ฅผ ํ†ตํ•ด ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณตํ˜ธํ™”ํ•˜๊ณ  ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์›๋ณธ ๋ฐ์ดํ„ฐ์™€ ์ผ์น˜ํ•˜๋ฉด ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด์ž„์„ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ณต๊ฐœํ‚ค๋กœ ๋ณตํ˜ธํ™”๋ฅผ ํ•˜์˜€์„ ๋•Œ ์›๋ณธ ๋ฐ์ดํ„ฐ์™€ ๋‹ค๋ฅด๋‹ค๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋Š” A๊ฐ€ ์•„๋‹Œ ์ œ3์ž๊ฐ€ ์•”ํ˜ธํ™”ํ•œ ๋ฐ์ดํ„ฐ์ด๋ฏ€๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋‹ค.

 

TLS Hand Shaking

SSL์€ SSL 1.0 ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋ช…์นญ์ด ๋ฐ”๋€Œ์–ด TLS 1.3 ๋ฒ„์ „์— ์ด๋ฅด๋ €๋‹ค.

TLS๋Š” ์ „์†ก ๊ณ„์ธต์—์„œ ์ œ 3์ž๊ฐ€ ๋ฉ”์„ธ์ง€๋ฅผ ๋„์ฒญํ•˜๊ฑฐ๋‚˜ ๋ณ€์กฐํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ณด์•ˆ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

 

์ด ๊ณผ์ •์—์„œ ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”์™€ ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜์—ฌ์„œ ๋น ๋ฅธ ์—ฐ์‚ฐ ์†๋„์™€ ์•ˆ์ •์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

๋จผ์ € ์ฒ˜์Œ ์—ฐ๊ฒฐ์ด ์ง„ํ–‰๋ ๋•Œ๋Š” ์•ˆ์ „ํ•œ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ์†๋„๊ฐ€ ๋‹ค์†Œ ๋Š๋ฆฐ ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ดํ›„์—๋Š” ๋น ๋ฅธ ํ†ต์‹ ์„ ์œ„ํ•ด์„œ ๋Œ€์นญํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

Client : Client Hello

ํŒจํ‚ท์— TLS Version, Client๊ฐ€ ์ง€์›ํ•˜๋Š” ์•”ํ˜ธํ™” ๋ฐฉ์‹(์‚ฌ์ดํผ์ŠˆํŠธ), Client Random Data(ํด๋ผ์ด์–ธํŠธ์—์„œ ์ƒ์„ฑํ•œ ๋‚œ์ˆ˜๋กœ ๋Œ€์นญํ‚ค๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ), ์ž„์‹œ *DH๋ณ€์ˆ˜, SNI(์„œ๋ฒ„๋ช…) ๋ฅผ ๋‹ด์•„์„œ ๋ณด๋‚ธ๋‹ค.

 

DH ๋งค๊ฐœ๋ณ€์ˆ˜ : DH๋Š” Die-Hellman์„ ์˜๋ฏธํ•˜๋ฉฐ Die-Hellman ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์„œ๋กœ ๊ณต๊ฐœ๊ฐ’ ๊ณต์œ ,๋น„๋ฐ€๊ฐ’๊ณผ ํ˜ผํ•ฉ, ํ˜ผํ•ฉ๊ฐ’๊ณผ ๊ณต์œ , ๊ฐ์ž์˜ ๋น„๋ฐ€๊ฐ’๊ณผ ํ˜ผํ•ฉํ•ด์„œ ๊ณตํ†ต์˜ ์•”ํ˜ธํ‚ค๋ฅผ ๋งŒ๋“œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋ชจ๋“  TLS ํ†ต์‹ ์ด DH ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์Œ

 

Server Hello, EncryptedExtensions, Certificate, CertificateVerify

์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์˜ต์…˜์„ ํ™•์ธํ•˜๊ณ  ๊ณต๊ฐœํ‚ค๊ฐ€ ํฌํ•จ๋œ ์ธ์ฆ์„œ์™€, ์„œ๋ฒ„๋žœ๋ค๊ฐ’, DH ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ๋ณด๋‚ธ๋‹ค.

 

Client : Client Key Exchange

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ DH๋งค๊ฐœ๋ณ€์ˆ˜(ํ˜น์€ ๊ณต๊ฐœํ‚ค)๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ธ์…˜ํ‚ค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ ์„ธ์…˜ํ‚ค๋ฅผ ๋‹ค์‹œ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•ด์„œ ์„œ๋ฒ„์— ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„๋Š” ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Server & Client : Finished

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ์„ธ์…˜ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ ๋Œ€์นญ ์•”ํ˜ธํ™”๋œ ํ†ต์‹ ์ด ์‹œ์ž‘๋œ๋‹ค.

 

๋งŒ์•ฝ ์„ธ์…˜ํ‚ค๊ฐ€ ์ƒ์„ฑ๋œ ์ดํ›„ ๋‹ค์‹œ ๊ทธ ์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ•œ๋‹ค๋ฉด, ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†“์€ ์„ธ์…˜ํ‚ค๋กœ ํ†ต์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ฆ์— ๋“œ๋Š” ๋น„์šฉ์€ ์—†๋‹ค.

 

 

 

 

TCP - ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ 

 

TCP ํ”„๋กœํ† ์ฝœ์€ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๊ณ  ์—ฐ๊ฒฐ์ง€ํ–ฅ์ ์ด๋ผ๋Š” ํŠน์ง•์ด ์žˆ์œผ๋ฉฐ ๊ฐ€์ƒ ํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

IP์˜ ๋‹จ์ ์ด์—ˆ๋˜ ํŒจํ‚ท ์†์‹ค์ด๋‚˜ ์ˆœ์„œ ๋ฏธ๋ณด์žฅ ๊ฐ™์€ ๋ฌธ์ œ๋“ค์„ ํŒจํ‚ท์„ ์ œ์–ดํ•˜์—ฌ ํ•ด๊ฒฐํ•ด ์ค€๋‹ค.

 

๊ฐ€์ƒ ํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹

๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์€ ๊ฐ ํŒจํ‚ท์— ๊ฐ€์ƒํšŒ์„  ์‹๋ณ„์ž๊ฐ€ ํฌํ•จ๋˜๊ณ  ํŒจํ‚ท๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ๋„์ฐฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๋ชจ๋“  ํŒจํ‚ท์„ ์ „์†กํ•˜๋ฉด ๊ฐ€์ƒ ํšŒ์„ ์ด ํ•ด์ œ๋œ๋‹ค.

 

TCP ํ”„๋กœํ† ์ฝœ์€ ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•  ๋•Œ 3 way ํ•ธ๋“œ์…ฐ์ดํฌ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•  ๋•Œ 4way ํ•ธ๋“œ ์…ฐ์ดํฌ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

3way ํ•ธ๋“œ์…ฐ์ดํฌ

- SYN : ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ *ISN๊ณผ SYN์„ ๋ณด๋‚ธ๋‹ค. 

*ISN : TCP ์—ฐ๊ฒฐ์˜ ์ฒซ ๋ฒˆ์งธ ํŒจํ‚ท์— ํ• ๋‹น๋œ ์ž„์˜์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ์ด๋‹ค. ์ง€์—ฐ ์ „์†ก๋œ ํŒจํ‚ท์˜ ํฌํŠธ ๋ฒˆํ˜ธ๋กœ ์ธ์‹ํ•˜๋Š” ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ž„์˜์˜ ๋‚œ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋˜ํ•œ ์ž„์˜์˜ ๋‚œ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์˜ˆ์ธก์ด ํž˜๋“ค๊ฒŒ ๋งŒ๋“ค์–ด ๋ณด์•ˆ์„ ๊ฐ•ํ™”์‹œํ‚จ๋‹ค.

 

 

- SYN + ACK : ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ SYN์„ ๋ฐ›๊ณ  ์‘๋‹ต๊ฐ’์œผ๋กœ ์„œ๋ฒ„์˜ ISN๊ณผ ์Šน์ธ๋ฒˆํ˜ธ๋กœ ISN + 1์„ ๋ณด๋‚ธ๋‹ค.

 

- ACK : ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ ์Šน์ธ ๋ฒˆํ˜ธ๋ฅผ ๋‹ด์•„์„œ ACK๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

์ด ๊ณผ์ •์ด ๊ตฌ์ถ•๋˜๊ณ  ๋‚œ ๋’ค์— ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, TCP๋Š” ์‹ ๋ขฐ์„ฑ์ด ์žˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ชจ๋“  ํ†ต์‹ ์—์„œ ์ด ๊ณผ์ •์„ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ๊ฐ™์€ ์†๋„๊ฐ€ ์ค‘์š”์‹œ ๋˜๋Š” ํ†ต์‹ ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.

 

4way ํ•ธ๋“œ์…ฐ์ดํฌ

- FIN_WAIT_1 : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ์„ ๋‹ซ์œผ๋ ค๊ณ  ํ•  ๋•Œ FIN์œผ๋กœ ์„ค์ •๋œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉด์„œ FIN_WAIT_1์˜ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

 

- CLOSE_WAIT : ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ ACK๋ผ๋Š” ์Šน์ธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„๋Š” CLOSE , ํด๋ผ์ด์–ธํŠธ๋Š” FIN_WAIT2 ์ƒํƒœ์— ๋“ค์–ด๊ฐ„๋‹ค.

 

- LAST_ACK : ์„œ๋ฒ„๋Š” ACK๋ฅผ ๋ณด๋‚ด๊ณ  ์ผ์ • ์‹œ๊ฐ„ ์ดํ›„์— FIN์ด๋ผ๋Š” ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

- *TIME_WAIT : ์ผ์ • ์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ฆฐ ๋’ค์— ์„œ๋ฒ„๋กœ ACK๋ฅผ ๋ณด๋‚ด์„œ ์„œ๋ฒ„๋Š” CLOSED ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ์ดํ›„ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ์ด ๋‹ซํžˆ๋ฉด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ๋ชจ๋“  ์ž์›์˜ ์—ฐ๊ฒฐ์ด ํ•ด์ œ๋œ๋‹ค.

 

TIME_WAIT : ์†Œ์ผ“์ด ๋ฐ”๋กœ ์†Œ๋ฉธ๋˜์ง€ ์•Š๊ณ  ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์œ ์ง€๋˜๋Š” ์ƒํƒœ์ด๋ฉฐ, ์ง€์—ฐ ํŒจํ‚ท์ด๋‚˜ ์—ฐ๊ฒฐ ์˜ค๋ฅ˜ ๋“ฑ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•œ๋‹ค.

 

2way ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์—†๋Š” ์ด์œ  : ์ „์†ก ์ธก ์ž…์žฅ์—์„œ ์ž๊ธฐ์˜ ์‹ ํ˜ธ๊ฐ€ ์ œ๋Œ€๋กœ ์ „๋‹ฌ๋˜์—ˆ๋Š” ์ง€ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋Š” TCP์˜ ๊ทผ๋ณธ์ธ ์–‘๋ฑกํ–ฅ ์—ฐ๊ฒฐ์ด ๊นจ์ ธ๋ฒ„๋ฆฌ๊ฒŒ ๋˜๊ณ  ๊ณง ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๊ฒŒ๋œ๋‹ค.

 

TCP ์ „์†ก ์ œ์–ด

 

ํ๋ฆ„์ œ์–ด

์†ก์‹  ์ธก์€ ์ˆ˜์‹  ์ธก์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋Š ์ •๋„๋กœ ๋ณด๋‚ด์ค˜์•ผ ํ• ์ง€๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

ex) ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ์„œ ๋™์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋Ÿ‰์„ ์กฐ์ ˆ

 

์˜ค๋ฅ˜์ œ์–ด

ํ†ต์‹  ๋„์ค‘์— ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์‹ค๋˜์—ˆ์„ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

ex) go back n - ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์‹ค๋œ ์‹œ์ ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค. 

selective repeat - ์œ ์‹ค๋œ ๋ฐ์ดํ„ฐ๋งŒ ์„ ํƒ์ ์œผ๋กœ ๋ณด๋‚ธ๋‹ค. 

 

ํ˜ผ์žก์ œ์–ด

๋„คํŠธ์›Œํฌ ํ˜ผ์žก์„ ๊ฐ์ง€ํ•˜์—ฌ์„œ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์†ก์‹  ์ธก์˜ ๋ฐ์ดํ„ฐ ์ „์†ก๋Ÿ‰์„ ์กฐ์ ˆํ•œ๋‹ค.

ex)

AIMD

- ์†ก์‹  ์ธก์ด transmission rate(window size)๋ฅผ ํŒจํ‚ท ์†์‹ค์ด ์ผ์–ด๋‚  ๋•Œ๊นŒ์ง€ ์ฆ๊ฐ€

Slow Start

- Slow Start๋Š” ์†ก์‹  ์ธก์ด window size๋ฅผ 1๋ถ€ํ„ฐ ํŒจํ‚ท ์†์‹ค์ด ์ผ์–ด๋‚  ๋•Œ๊นŒ์ง€ ์ง€์ˆ˜์Šน(exponentially)์œผ๋กœ ์ฆ๊ฐ€

 

TCP ํ—ค๋”

 

TCP ํ”„๋กœํ† ์ฝœ์€ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋‚˜ ACK ๋ฒˆํ˜ธ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ •๋ณด๋“ค์„ ํ—ค๋”์— ๋‹ด๊ณ  ์žˆ๋‹ค.

 

TCP์˜ ํŠน์ง• ์ •๋ฆฌ

1. ์—ฐ๊ฒฐ ์ง€ํ–ฅ(๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜) ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

2. 3way , 4way ํ•ธ๋“œ ์…ฐ์ดํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•˜๊ณ  ํ•ด์ œํ•œ๋‹ค.

3. ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ „์†ก ์ œ์–ด ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค.

4. ํŒจํ‚ท์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ฐ›์•„์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋Œ€์ ์œผ๋กœ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.

 

UDP - ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ

 

๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. TCP์˜ ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ์ธ ์†๋„๋กœ ์ธํ•ด์„œ ๋น ๋ฅธ ์ฒ˜๋ฆฌ๊ฐ€ ์š”๊ตฌ๋˜๋Š” ํ˜„๋Œ€์— ํ•„์š”์„ฑ์ด ๋Œ€๋‘๋˜์—ˆ์œผ๋ฉฐ HTTP/3.0์—์„œ ํ‘œ์ค€์œผ๋กœ ์ฑ„ํƒ๋˜์—ˆ๋‹ค. 

ํ•˜์ง€๋งŒ ๋น ๋ฅธ ์†๋„ ๋Œ€์‹  ์ „์†ก ์ œ์–ด๋‚˜ ํ•ธ๋“œ ์…ฐ์ดํฌ(๋น„์—ฐ๊ฒฐ์„ฑ) ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์€ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

๋ฐ์ดํ„ฐ๊ทธ๋žจ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹

๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ์„œ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ๋ชฉ์ ์ง€๋กœ ๋ผ์šฐํŒ… ํ•˜๋Š” ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ด ๊ณผ์ •์—์„œ ํ•ธ๋“œ ์…ฐ์ดํฌ๋‚˜ ์ „์†ก ์ œ์–ด๊ฐ™์€ ๊ธฐ๋Šฅ๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๋Š” ๋” ๋นจ๋ผ์ง„ ๋Œ€์‹  ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์€ ๋–จ์–ด์ง„๋‹ค.

 

UDP ํ—ค๋”

 

UDP ํ”„๋กœํ† ์ฝœ์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋‹จ์ˆœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ—ค๋”์—์„œ๋„ ๋งŽ์€ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์ง„์•Š๋‹ค.

checksum ํ•„๋“œ๋ฅผ ํ†ตํ•ด ์ตœ์†Œํ•œ์˜ ์˜ค๋ฅ˜ ๊ฒ€์ถœ์€ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

UDP์˜ ํŠน์ง• ์ •๋ฆฌ

1. ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

2. ์—ฐ๊ฒฐ ๊ณผ์ •์—์„œ ๋ณ„๋„์˜ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๋Š”๋‹ค. -> ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค.

3. ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ์€ ๋Œ€์‹  ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

4. ์†๋„๊ฐ€ ์ค‘์š”์‹œ๋˜๋Š” ์‹ค์‹œ๊ฐ„ ์„œ๋น„์Šค์— ์ ํ•ฉํ•˜๋‹ค.

 

๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต ๊ตฌ์กฐ 

๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ์†๋„๋Š” ๋นจ๋ผ์ง€๋Š” ๋Œ€์‹  ๊ฐ€๊ฒฉ์€ ๋น„์‹ธ์ง„๋‹ค.

์†๋„๊ฐ€ ๋น ๋ฅธ ์บ์‹œ๋‚˜ ๋ ˆ์ง€์Šคํ„ฐ์— ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ €์žฅํ•ด๋†“์œผ๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ๊ทธ๋Ÿฌ์ง€ ๋ชปํ•˜๋Š” ์ด์œ ๊ฐ€ ๊ฒฝ์ œ์„ฑ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋”ฐ๋ผ์„œ ๋Š๋ฆฐ ์ €์žฅ์žฅ์น˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด๋†“๊ณ  ๋น ๋ฅธ ์žฅ์น˜๋Š” ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ, ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ์‚ฌ์ด์˜ ์†๋„ ์ฐจ์ด๊ฐ€ ๋„ˆ๋ฌด ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์— ๋ ˆ์ง€์Šคํ„ฐ ๊ณ„์ธต๊ณผ ์บ์‹œ ๊ณ„์ธต์„ ๋‘์–ด์„œ ๊ด€๋ฆฌํ•œ๋‹ค.

 

์บ์‹œ

 

์œ„์—์„œ ๋งํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์บ์‹œ๋Š” ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ์ž„์‹œ ์ €์žฅ์†Œ์ด์ž ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.

์บ์‹œ๋ฅผ ํ†ตํ•ด CPU์˜ ์—ฐ์‚ฐ ์†๋„์™€ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์†๋„์˜ ์ฐจ์ด๋ฅผ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ณ„์ธต์  ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ

๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ๊ทธ๋žฌ๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋˜ํ•œ ์บ์‹œ๋ฅผ ๊ณ„์ธต์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ L1, L2 ์บ์‹œ๋Š” CPU ์ฝ”์–ด ๋‚ด๋ถ€์— ์œ„์น˜ํ•˜๋ฉฐ L3๋Š” CPU๊ฐ€ ์•„๋‹Œ ๋ฉ”์ธ๋ณด๋“œ์— ์œ„์น˜ํ•œ๋‹ค.

 

์ฐธ์กฐ ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ

 

ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ์— ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์บ์‹œ ํžˆํŠธ๋ผ๊ณ  ํ•˜๊ณ  ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ์บ์‹œ ๋ฏธ์Šค๋ผ๊ณ  ํ•œ๋‹ค. ๋‹น์—ฐํžˆ ์บ์‹œ ํžˆํŠธ๊ฐ€ ๋งŽ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ฑด๋ฐ, ์ ์ค‘๋ฅ ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

 

*์บ์‹œ ํžˆํŠธ๋Š” CPU ๋‚ด๋ถ€ ๋ฒ„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์บ์‹œ ๋ฏธ์Šค๋Š” ์‹œ์Šคํ…œ ๋ฒ„์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (๋‹น์—ฐํžˆ CPU ๋‚ด๋ถ€ ๋ฒ„์Šค๊ฐ€ ๋” ๋น ๋ฅด๋‹ค!)

 

์ง€์—ญ์„ฑ์€ ๋‘๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ์‰ฝ๋‹ค.

List<Integer> list = new ArrayList<>();

for(int i=0;i<10;i++) {
	list.add(i);
}

 

 

์‹œ๊ฐ„ ์ง€์—ญ์„ฑ

- CPU๋Š” ์ตœ๊ทผ์— ์‚ฌ์šฉํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋‹ค์‹œ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค.

- ์˜ˆ์‹œ ์ฝ”๋“œ์—์„œ ๋ณ€์ˆ˜ i์— ๋Œ€ํ•ด์„œ ๊ณ„์†ํ•ด์„œ ์ ‘๊ทผ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋‹ค.

 

์ฐธ์กฐ ์ง€์—ญ์„ฑ

- CPU๋Š” ์ตœ๊ทผ์— ์‚ฌ์šฉํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๊ทผ์ฒ˜๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค.

- ์˜ˆ์‹œ ์ฝ”๋“œ์—์„œ list ๊ณต๊ฐ„์— ๊ณ„์†ํ•ด์„œ ์ ‘๊ทผํ•˜๊ณ  ์žˆ๋‹ค.

 

์บ์‹œ ๋งคํ•‘

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋งค์šฐ ์ž‘๊ณ  ์ฃผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋งคํ•‘ํ•˜๋Š๋ƒ๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ๋˜ํ•œ CPU์—์„œ ์บ์‹œ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ ํšจ์œจ์ ์œผ๋กœ ํƒ์ƒ‰์„ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค.

 

์ง์ ‘ ๋งคํ•‘

- ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 1~100์ด ์žˆ๊ณ  ์บ์‹œ๊ฐ€ 1~10์ด ์žˆ๋‹ค๋ฉด 1:1~10 , 2: 11:~20 .. ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

- ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๊ณ  ์ฒ˜๋ฆฌ๊ฐ€ ๋น ๋ฅด์ง€๋งŒ ์ถฉ๋Œ(์Šค์™€ํ•‘)์ด ์žฆ๋‹ค.

 

์—ฐ๊ด€ ๋งคํ•‘

- ์ˆœ์„œ์™€ ๋ธ”๋ก ์ƒ๊ด€์—†์ด ์ž์œ ๋กญ๊ฒŒ ๋งคํ•‘์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์ถฉ๋Œ์€ ๋œ ์ผ์–ด๋‚˜์ง€๋งŒ ๋ชจ๋“  ๋ธ”๋ก์„ ํƒ์ƒ‰ํ•ด์•ผํ•˜๋ฏ€๋กœ ์†๋„๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋Š๋ฆฌ๋‹ค.

 

์ง‘ํ•ฉ ์—ฐ๊ด€ ๋งคํ•‘

- ์ง์ ‘ ๋งคํ•‘๊ณผ ์—ฐ๊ด€ ๋งคํ•‘์˜ ์ ˆ์ถฉ์•ˆ์ด๋‹ค.

- ์ •ํ•ด์ง„ ์žฅ์†Œ(์ง์ ‘ ๋งคํ•‘) ๋‚ด์— ์–ด๋Š ์žฅ์†Œ์—๋‚˜(์—ฐ๊ด€ ๋งคํ•‘) ๋งคํ•‘์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

- ์ง์ ‘ ๋งคํ•‘์— ๋น„ํ•ด ์ €์žฅ์ด ๋น ๋ฅด๊ณ  ์—ฐ๊ด€ ๋งคํ•‘๋ณด๋‹ค ๊ฒ€์ƒ‰์ด ๋น ๋ฅด๋‹ค. 

 

์บ์‹œ์™€ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ฐจ์ด

 

๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU ๋‚ด์—์„œ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์ด๋ฉฐ, ์บ์‹œ๋Š” ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ๊ฐ„์˜ ์†๋„ ์ฐจ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.

๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU ๋‚ด๋ถ€์— ์œ„์น˜ํ•ด ์žˆ์œผ๋ฉฐ ์บ์‹œ๋Š” CPU์™€๋Š” ๋ณ„๋„๋กœ ์กด์žฌํ•œ๋‹ค. 

๋„คํŠธ์›Œํฌ๋ž€

ํ†ต์‹  ๋ถ„์•ผ์—์„œ ๋‹จ๋ง๊ธฐ ๋“ฑ์„ ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋‹จ๋ง๊ธฐ๊ธฐ, ์„ ๋กœ ๋ฐ ๊ต ํ™˜๊ธฐ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ์ „์†ก๋งค์ฒด์ด๋‹ค.

 

ํ”„๋กœํ† ์ฝœ

ํ†ต์ผ์„ ์œ„ํ•œ ์ƒํ˜ธ ๊ฐ„์˜ ๊ทœ์•ฝ(์•ฝ์†)์ด๋‹ค.

 

ํ”„๋กœํ† ์ฝœ์˜ ๊ตฌ์„ฑ ์š”์†Œ

1. ๊ตฌ๋ฌธ(syntax)

- ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ• ์ง€ , ์ฝ”๋”ฉ ๋ฐฉ๋ฒ• , ์‹ ํ˜ธ ๋ ˆ๋ฒจ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด

- ๋ฐ์ดํ„ฐ ํฌ๋งท(ํ˜•์‹), ๋ถ€ํ˜ธํ™”, ์‹ ํ˜ธ ๋ ˆ๋ฒจ ๋“ฑ

 

2. ์˜๋ฏธ(semantic)

- ๋ฐ์ดํ„ฐ๋‚˜ ์˜ˆ์™ธ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด

- ํŠน์ • ํŒจํ„ด์„ ์–ด๋–ป๊ฒŒ ํ•ด์„ํ•˜๊ณ , ์–ด๋–ค ๋™์ž‘์„ ํ•  ๊ฒƒ์ธ๊ฐ€ ๊ฒฐ์ •

 

3. ํƒ€์ด๋ฐ(timing) 

- ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์งˆ ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์†๋„์— ๋Œ€ํ•œ ์กฐ์ ˆ๊ณผ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋™์‹œ์— ํ†ต์‹ ์„ ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์ˆœ์„œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ฒ•

- ์†๋„ ์ผ์น˜ ๋ฐ ์ˆœ์„œ ์ œ์–ด

 

ํ”„๋กœํ† ์ฝœ์˜ ์—ญํ• 

1. ์—๋Ÿฌ ์ œ์–ด (Error Control)
     - ์ „์†ก ์ค‘ ์—๋Ÿฌ ๊ฒ€์ถœ ๋ฐ ์—๋Ÿฌ ์ •์ •
2. ์บก์Šํ™” (Encapsulation)
     - ํ†ต์‹ ๊ณ„์ธต ์ƒ์˜ ๊ฐ ๊ณ„์ธต์ด ์ž์‹  ๋งŒ์˜ ํŠน์ •์ œ์–ด์ •๋ณด(์ฃผ๋กœ Header)๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ
3. ์—ฐ๊ฒฐ ์ œ์–ด (Connection Control) ๋˜๋Š” ์„ธ์…˜ ๊ด€๋ฆฌ
     - ์—ฐ๊ฒฐ์ง€ํ–ฅ์  ํ†ต์‹ ์—์„œ ์—ฐ๊ฒฐ์„ค์ •,๋ฐ์ดํ„ฐ์ „๋‹ฌ,์—ฐ๊ฒฐ์ข…๋ฃŒ ์ ˆ์ฐจ์˜ ์ œ์–ด
4. ์ˆœ์„œ ์ œ์–ด (Sequence Control)
     - ์ˆœ์„œ ์—ญ์ „, ์ค‘๋ณต ํŒจํ‚ท ๋ฐœ์ƒ ๋“ฑ์˜ ๋ฐฉ์ง€
5. ํ๋ฆ„ ์ œ์–ด (Flow Control)
     - ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๋Ÿ‰/์ „์†ก๋ฅ ์˜ ์ œํ•œ
6. ํ˜ผ์žก ์ œ์–ด (Congestion Control)
     - ํฌํ™”/๋Œ€๊ธฐ ํŒจํ‚ท ์ˆ˜์˜ ์ œํ•œ์„ ์œ„ํ•œ ์ œ์–ด ๊ธฐ๋ฒ•
7. ๋™๊ธฐํ™” (Synchronization)
     - ์†ก์ˆ˜์‹  ์–‘์ธก ๊ฐ„์— ์‹œ๊ฐ„ ๊ด€๊ณ„(์ฃผ๋กœ,์œ„์ƒ)์˜ ์ผ์น˜
8.์ฃผ์†Œ ์ง€์ • (Addressing)
     - ํ˜ธ์ŠคํŠธ/๋””๋ฐ”์ด์Šค/ํ”„๋กœ์„ธ์Šค ๋“ฑ์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณต
9. ๋‹จํŽธํ™” ๋ฐ ์žฌ์กฐ๋ฆฝ (Segmentation and Reassembly, Fragmentation and Reassembly)
     - ๋ฐ์ดํ„ฐ ํŒจํ‚ท์„ ์ „์†ก์— ์ ๋‹นํ•œ ํฌ๊ธฐ๋กœ ๋ถ„ํ•ด,์กฐ๋ฆฝ
10. ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹ํ™” (Data Formatting) ๋“ฑ

 

ํŒจํ‚ท

ํŒจํ‚ท ์Šค์œ„์นญ ๋ฐฉ์‹์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ ๋ธ”๋ก์ด๋‹ค.

 

ํŒจํ‚ท์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค๋ฉด ํ†ต์‹  ๋Œ€์—ญํญ์„ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์˜ ์ „์†ก์ด ์ง€์—ฐ๋˜๋ฉฐ ์ด๋Š” ๊ณง ํ†ต์‹ ์˜ ๋ฌธ์ œ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

ํŒจํ‚ท ๊ตฌ์กฐ

๋„คํŠธ์›Œํฌ ํŒจํ‚ท์€ ํ—ค๋”(Header), ํŽ˜์ด๋กœ๋“œ(Payload), ํŠธ๋ ˆ์ผ๋Ÿฌ(Trailer) ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ

1. ํ—ค๋”

- ํŒจํ‚ท ๊ธธ์ด, ํ”„๋กœํ† ์ฝœ, ๋ณด๋‚ธ/๋ฐ›๋Š” ์‚ฌ๋žŒ์˜ IP ์ฃผ์†Œ ๋“ฑ์ด ํฌํ•จ

- ํŒจํ‚ท์˜ ์ฃผ์†Œ(์†ก์ˆ˜์‹  ์ฃผ์†Œ) ๋“ฑ ์ฃผ์š” ์ œ์–ด ์ •๋ณด๋“ค์ด ํฌํ•จ

2. ํŽ˜์ด๋กœ๋“œ

- ํŒจํ‚ท์˜ ๋ณธ๋ฌธ (๋‚ด์šฉ , ๋ฐ์ดํ„ฐ)

3. ํŠธ๋ ˆ์ผ๋Ÿฌ (footer)

- ํŒจํ‚ท์˜ ๋์— ๋„๋‹ฌํ–ˆ์Œ์„ ์ˆ˜์‹  ์ปดํ“จํ„ฐ์— ์•Œ๋ฆฌ๋Š” ๋น„ํŠธ ํฌํ•จ

- ํŒจํ‚ท ์—๋Ÿฌ ๊ฒ€์ถœ ๋“ฑ์— ์‚ฌ์šฉ 
- ํŒจํ‚ท ๊ผฌ๋ฆฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์Œ

 

CBN(Curcuit Based Network) vs PBN(Packet Based Network)

 

CBN

1. ์ „ํ™”๋ง์— ์‚ฌ์šฉ

2. ์—ฐ๊ฒฐ ์ง€ํ–ฅ (connection-oriented)

3. ์ž์› ์ ์œ  -> QoS ๋ณด์žฅ

 

PBN

1. ์ธํ„ฐ๋„ท

2. connection less service

3. ์ž์› ๊ณต์œ  ๋ฐฉ์‹ -> QoS ๋ณด์žฅx , Best effort

 

 

OSI 7 Layer

7๊ณ„์ธต - ์‘์šฉ ๊ณ„์ธต

ํ†ต์‹ ์„ ์œ„ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ - ์นด์นด์˜คํ†ก

GUI๋กœ ๊ตฌ์„ฑ ๋œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

์ฃผ์š” ํ”„๋กœํ† ์ฝœ - TELNET, FTP, SMTP, HTTP ๋“ฑ

 

6๊ณ„์ธต - ํ‘œํ˜„ ๊ณ„์ธต

๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•  ์ง€์— ๋Œ€ํ•ด ๊ฒฐ์ •

Codec(coding+decoding) ๊ด€๋ จ ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ, ์••์ถ•/ํ•ด์ œ, ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™” ๋“ฑ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

ex) avi, mp4, mp3

 

5๊ณ„์ธต - ์„ธ์…˜ ๊ณ„์ธต

์‚ฌ์šฉ์ž์˜ ๊ตฌ๋ถ„. ๋ˆ„๊ตฌ์™€ ํ†ต์‹  ํ•  ๊ฒƒ์ธ๊ฐ€? ์— ๋Œ€ํ•ด ๊ฒฐ์ •

Session ID : ๋ˆ„๊ตฌ์™€ ํ†ต์‹  ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์•Œ๋ ค์ฃผ๋Š” ๊ตฌ๋ถ„์ž (ID)

TCP/IP ํ†ต์‹  ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝ/ ์œ ์ง€/์ค‘๋‹จ

 

4๊ณ„์ธต - ์ „์†ก ๊ณ„์ธต

์–ด๋–ค *port๋กœ ์ „์†กํ•  ๊ฒƒ์ธ๊ฐ€? ์— ๋Œ€ํ•ด ๊ฒฐ์ •

port : process๋ฅผ ํŠน์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ฃผ์†Œ

 

ํฌํŠธ์˜ ์ข…๋ฅ˜

0~1023: well-known port. ํ‘œ์ค€ํ™”๋˜์–ด ์žˆ๋Š” ํฌํŠธ

– 20 FTP, 23 Telnet, 53 DNS, 80 HTTP, 433 HTTPS

1024~49151: registered port. ์ƒ์—…์ ์ธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ํšŒ์‚ฌ๋“ค์ด ๋“ฑ๋กํ•˜ ์—ฌ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ

49152~65535: dynamic port. ์‚ฌ์šฉ์ž(๊ฐœ๋ฐœ์ž) ์ž์œ ๋กญ๊ฒŒ ์ฆ‰ํฅ์ ์œผ๋กœ ํ• ๋‹นํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํฌํŠธ

 

UDP vs TCP

UDP: TCP ๋Œ€๋น„ ํ”„๋กœํ† ์ฝœ์ด ๊ฐ„๊ฒฐํ•จ. ๊ฐ€๋ณ๊ณ  ๋น ๋ฆ„. QoS ๋ณด์žฅ x

– real-time service: ์‹ค์‹œ๊ฐ„ ๋น„๋””์˜ค

TCP: UDP ๋Œ€๋น„ ํ”„๋กœํ† ์ฝœ์ด ๋ณต์žกํ•จ. ๋ฌด๊ฒ๊ณ  ๋Š๋ฆผ. UDP ๋Œ€๋น„ QoS ์ผ๋ถ€๋ถ„ ๋ณด์žฅ

– retransmission, timeout ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ํ๋ฆ„์ œ์–ด, ์˜ค๋ฅ˜์ œ์–ด

– non-real-time service: email ์„œ๋น„์Šค, ๋ฌธ์ž ์„œ๋น„์Šค

 

3๊ณ„์ธต - ๋„คํŠธ์›Œํฌ ๊ณ„์ธต

End to End ํ†ต์‹ ์„ ๋‹ด๋‹น (source-to-destination)

๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด IP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•œ๋‹ค. (๋ผ์šฐํŒ…)

- DNS๋ฅผ ์ด์šฉํ•˜์—ฌ ๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ IP๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

์ฃผ์š” ํ”„๋กœํ† ์ฝœ - IP, ARP, ICMP, IGMP, RIP, RIP v2, OSPF, IGRP, EIGRP, BGP ๋“ฑ

 

2๊ณ„์ธต - ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต

์Šค์œ„์น˜๋ฅผ ํ†ตํ•ด *MAC ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ชฉ์ ์ง€๋ฅผ ์ฐพ์•„๊ฐ„๋‹ค (hop by hop , node to node)

MAC : ๊ณ ์œ ํ•œ ํ•˜๋“œ์›จ์–ด ์ฃผ์†Œ

 

์ฃผ์š” ํ”„๋กœํ† ์ฝœ : HDLC, X.25, Ethernet, TokenRing, DFFI, FrameRelay ๋“ฑ

 

1๊ณ„์ธต - ๋ฌผ๋ฆฌ ๊ณ„์ธต

๋””์ง€ํ„ธ ๋ฐ์ดํ„ฐ๋ฅผ ์•„๋‚ ๋กœ๊ทธ์ ์ธ ์ „๊ธฐ์  ์‹ ํ˜ธ๋กœ ๋ณ€ํ™˜

๋ฐ์ดํ„ฐ๋ฅผ ๋น„ํŠธํ˜•ํƒœ๋กœ ํ‘œํ˜„

 

Topology: ๋ง์˜ ๊ตฌ์„ฑ

ex) Star, mesh, bus…

 

TCP/IP Layer

OSI ์ฐธ์กฐ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์—…์ ์ด๊ณ  ์‹ค๋ฌด์ ์œผ๋กœ ์ด์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ๋‹จ์ˆœํ™”๋œ ํ˜„์‹คํ™”์˜ ๊ณผ์ •์—์„œ ์ฑ„ํƒ๋œ ๋ชจํ˜•์ด๋‹ค. 

์ธํ„ฐ๋„ท์ด ๋ฐœ์ „๋˜๋Š” ๊ณผ์ •์—์„œ ๋Œ€๋ถ€๋ถ„ TCP/IP ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ๋„ ๋Œ€๋ถ€๋ถ„์˜ ํ†ต์‹ ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ ๊ตฌ์กฐ์ด๋‹ค.

 

TCP/IP ๊ณ„์ธต์€ OSI 7 ๊ณ„์ธต ๊ตฌ์กฐ์™€ ๋‹ฌ๋ฆฌ 4๊ฐœ์˜ ๊ณ„์ธต์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต , ์ „์†ก ๊ณ„์ธต , ์ธํ„ฐ๋„ท ๊ณ„์ธต , ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ๊ฐ๊ฐ์˜ ๊ณ„์ธต์€ ์„œ๋กœ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋‹ค.

 

1. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜(application) ๊ณ„์ธต

FTP , HTTP ๊ฐ™์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต์ด๋ฉฐ ์‹ค์งˆ์ ์œผ๋กœ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค. 

OSI 7 ๊ณ„์ธต์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต๊ณผ ํก์‚ฌ

 

2. ์ „์†ก ๊ณ„์ธต(transport) ๊ณ„์ธต

์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 

์ „์†ก ๊ณ„์ธต์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ๋กœ๋Š” TCP์™€ UDP๊ฐ€ ์žˆ์œผ๋ฉฐ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต๊ณผ ์ธํ„ฐ๋„ท ๊ณ„์ธต ์‚ฌ์ด์—์„œ ์ค‘๊ณ„ ์—ญํ• ์„ ํ•œ๋‹ค.

OSI 7 ๊ณ„์ธต์˜ ์ „์†ก ๊ณ„์ธต๊ณผ ํก์‚ฌ

 

3. ์ธํ„ฐ๋„ท ๊ณ„์ธต

๋„คํŠธ์›Œํฌ ํŒจํ‚ท์„ IP ์ฃผ์†Œ๋กœ ์ง€์ •๋œ ๋ชฉ์ ์ง€๋กœ ์ „์†กํ•œ๋‹ค. 

*ARP , IP ๊ฐ™์€ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ์˜ ์ˆ˜์‹  ์ƒํƒœ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š” ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹ ์„ ์ œ๊ณตํ•œ๋‹ค.

OSI 7 ๊ณ„์ธต์˜ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต๊ณผ ํก์‚ฌ

 

ARP : IP์ฃผ์†Œ์— ํ•ด๋‹นํ•˜๋Š” MAC ์ฃผ์†Œ๋ฅผ ๋งค์นญ์‹œ์ผœ์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ , ๋ฐ˜๋Œ€์˜ ๊ฐœ๋…์œผ๋กœ RARP๋„ ์žˆ๋‹ค.

 

4. ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต

์ „์„  , ๊ด‘์„ฌ์œ  , ๋ฌด์„  ๋“ฑ์œผ๋กœ ์‹ค์งˆ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. -> ์žฅ์น˜ ๊ฐ„์˜ ์‹ ํ˜ธ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ทœ์น™์„ ์ •ํ•œ๋‹ค.

๋ฌผ๋ฆฌ ๊ณ„์ธต๊ณผ ๋ฐ์ดํ„ฐ๋งํฌ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ณด๊ธฐ๋„ ํ•œ๋‹ค. 

๋ฌผ๋ฆฌ๊ณ„์ธต์€ ๋ฌด์„  LAN์ด๋‚˜ ์œ ์„  LAN์„ ํ†ตํ•ด 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต์€ ์ด๋”๋„ท ํ”„๋ ˆ์ž„์„ ํ†ตํ•ด MAC ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.

 

๊ณ„์ธต ๊ฐ„ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ๊ณผ์ •

 

๊ธฐ๋ณธ์ ์œผ๋กœ ์š”์ฒญ ๊ฐ’๋“ค์ด ์บก์Šํ™”๋˜์–ด์„œ ์ „๋‹ฌ๋˜๊ณ  ์š”์ฒญ ๋ฐ›๋Š” ์„œ๋ฒ„๊ฐ€ ๋‹ค์‹œ ๋น„์บก์Šํ™” ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋œ๋‹ค.

 

 

Encapsulation๊ณผ Decapsulation

Encapsulation - ์ƒ์œ„ ๊ณ„์ธต์˜ ํ—ค๋”์™€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜์œ„ ๊ณ„์ธต์˜ ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„์— ํฌํ•จ์‹œํ‚ค๊ณ  ํ•ด๋‹น ๊ณ„์ธต์˜ ํ—ค๋”๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.

Decapsulation - ํ•˜์œ„ ๊ณ„์ธต์—์„œ ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ ๊ฐ€๋ฉด์„œ ๊ฐ ๊ณ„์ธต์˜ ํ—ค๋” ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•œ๋‹ค.

 

 

 

OSI 7 Layer ๋˜๋Š” TCP/IP Layer์—์„œ ๊ณ„์ธตํ™”ํ•˜๋Š” ์ด์œ 

๋„คํŠธ์›Œํฌ๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ๊ณ„์ธต ๋ณ„๋กœ ๋‚˜๋ˆ„๊ณ  ํ‘œ์ค€ํ™”ํ•จ์œผ๋กœ์จ ํฌํŠธ , ํ”„๋กœํ† ์ฝœ์˜ ํ˜ธํ™˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

(๊ฐ ๊ณ„์ธต๋ผ๋ฆฌ๋งŒ ํ†ต์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ)

๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๊ณ„์ธต๋“ค๊ฐ„์˜ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ ์ƒ๊ธด ๊ณ„์ธต์˜ ๋ฒ”์œ„ ๋‚ด์—์„œ ์›์ธ์„ ์ถ”์ ํ•ด๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. 

๋˜ํ•œ ๊ฐ ๊ณ„์ธต์˜ ์žฅ๋น„๋‚˜ ๊ธฐ์ˆ ์˜ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ์œ ์—ฐํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

IP(Internet Protocol)๋ž€?

์ธํ„ฐ๋„ท์—์„œ ๋„คํŠธ์›Œํฌ์˜ ๋‘ ํ˜ธ์ŠคํŠธ(host) ๊ฐ„์— ํ†ต์‹ ํ•  ๋•Œ ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜๊ณ  ์ „์†ก ๊ณ„์ธต์˜(transport layer)์˜ ์ •๋ณด๋ฅผ ํŒจํ‚ท์œผ๋กœ ๋ถ„ํ• /์กฐ๋ฆฝํ•˜๋ฉฐ, ํŒจํ‚ท์„ IP ์ฃผ์†Œ์— ๋”ฐ๋ผ ๋ชฉ์ ์ง€์— ์ „์†กํ•˜๋Š” ํ†ต์‹  ๊ทœ์•ฝ์ด๋‹ค.

 

์†ก์‹ ์ธก์—์„œ๋Š” ํŒจํ‚ท์— ๋ชฉ์ ์ง€ ์ฃผ์†Œ๋ฅผ ํ‘œ๊ธฐํ•˜๊ณ  ๊ฐ๊ฐ์˜ ๋ผ์šฐํ„ฐ๋“ค์€ ํ•ด๋‹น ๋ชฉ์ ์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜์—ฌ ๋‹ค์Œ ๋ผ์šฐํ„ฐ๋กœ ๋ผ์šฐํŒ…์‹œํ‚จ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ๋Š” ๋ชฉ์ ์ง€๊นŒ์ง€ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํŒจํ‚ท์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ผ์šฐํ„ฐ๋ฅผ ๊ฑด๋„ˆ๊ฐ€๋Š” ๊ฒƒ์„ hop-by-hop ํ†ต์‹ ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

 

IP ์ฃผ์†Œ๋ž€?

IP์ฃผ์†Œ๋ž€ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋””๋ฐ”์ด์Šค์˜ ๋„คํŠธ์›Œํฌ์ƒ ์ฃผ์†Œ(์‹๋ณ„์ž)์ด๋‹ค.

 

IPV4 vs IPV6

IPv4 ์ฒด๊ณ„ ์ฃผ์†Œ์˜ ๊ณ ๊ฐˆ๊ณผ ํ™•์žฅ์„ฑ ๋ฉด์—์„œ์˜ ํ•œ๊ณ„๋กœ ์ธํ•ด ๋‚˜์˜จ ์ƒˆ๋กœ์šด ์ฃผ์†Œ ์ฒด๊ณ„์ด๋‹ค. IPv4๋Š” ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์˜ ํ• ๋‹น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์ด ๋ฐฉ์‹์€ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ๋ณด๋‹ค ๋ฒ„๋ฆฌ๋Š” ์ฃผ์†Œ๊ฐ€ ๋งŽ์€๋‹จ์ ์ด ์žˆ์—ˆ๊ณ  ํ™•์žฅ์„ฑ์— ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ๋” ๋งŽ์€ ์ฃผ์†Œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  ์ฐจ์„ธ๋Œ€ ๋ฉ€ํ‹ฐ ๋ฏธ๋””์–ด ํ™˜๊ฒฝ์—๋„ ์šฉ์ดํ•œ IPv6๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ๋‹ค.

 

IPv4๋Š” 32๋น„ํŠธ๋ฅผ 8๋น„ํŠธ ๋‹จ์œ„๋กœ ์ ์„ ์ฐ์–ด์„œ ํ‘œํ˜„ํ•œ๋‹ค. ex) 123.45.67.89

IPv6๋Š” 64๋น„ํŠธ๋ฅผ 16๋น„ํŠธ ๋‹จ์œ„๋กœ ์ ์„ ์ฐ์–ด ํ‘œ๊ธฐํ•œ๋‹ค. ex) 2001:db8:ff00:42:8329

์•„์ง๊นŒ์ง€๋Š” ์—ฌ์ „ํžˆ IPv4๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ์ฃผ์†Œ ์ฒด๊ณ„์ด๋‹ค.

 

IPv64์™€ IPv6์˜ ์ฐจ์ด์  ๋น„๊ต

  IPv4 IPv6
์ฃผ์†Œ ๊ธธ์ด 32๋น„ํŠธ๋ฅผ 8๋น„ํŠธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ” (10์ง„์ˆ˜) 64๋น„ํŠธ๋ฅผ 16๋น„ํŠธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ” (16์ง„์ˆ˜)
์ฃผ์†Œ ๊ฐœ์ˆ˜ ์•ฝ 43์–ต๊ฐœ 2^128๊ฐœ
QoS(Quality Of Service) ๋ฏธ๋ณด์žฅ(Best Effort) ๋ณด์žฅ
๋ณด์•ˆ IPSec ๋ณ„๋„ ์„ค์น˜ ํ•„์š” IPSec ์ž์ฒด ์ง€์›

 

 

IPv4์˜ ์ฃผ์†Œ ๋ถ€์กฑํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•

DHCP

- ์ฃผ์†Œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ํ• ๋‹นํ•  ํ•„์š” ์—†์ด ์ธํ„ฐ๋„ท์— ์ ‘์†ํ•  ๋•Œ๋งˆ๋‹ค IP์ฃผ์†Œ๋ฅผ ์ž๋™์œผ๋กœ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค. (plug & play)

 

NAT

- ํŒจํ‚ท์ด ๋ผ์šฐํŒ… ์žฅ์น˜๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ๋™์•ˆ ํŒจํ‚ท์˜ IP ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ๋‹ค๋ฅธ ์ฃผ์†Œ๋กœ ๋งคํ•‘ํ•œ๋‹ค.

IPv4 ์ฒด๊ณ„๋กœ๋Š” ๋งŽ์€ ์ฃผ์†Œ๋“ค์„ ๊ฐ๋‹นํ•˜์ง€ ๋ชปํ–ˆ์—ˆ๋Š”๋ฐ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณต์ธ IP์™€ ์‚ฌ์„ค IP๋กœ ๋‚˜๋ˆ„์–ด์„œ ์ฃผ์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

NAT๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ๊ณต์ธ IP๋กœ ์‚ฌ์šฉ์ž๋“ค์€ ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ IP๋ฅผ ๊ฐ€์ง„๊ฒƒ์ฒ˜๋Ÿผ ์ธํ„ฐ๋„ท์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (๊ณต์œ ๊ธฐ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.)

NAT

 

 

+ Recent posts