shpark0308 / shpark0308_CodingTest

๐Ÿ’™ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„
0 stars 0 forks source link

[3]. ๋„คํŠธ์›Œํฌ #7

Open shpark0308 opened 2 years ago

shpark0308 commented 2 years ago

[3]. ๋„คํŠธ์›Œํฌ

1. OSI 7 ๊ณ„์ธต ( open system interconnection )

image

  1. Physical ( ๋ฌผ๋ฆฌ์  ๋‹จ๊ณ„ )
    • Wireless, Fibre, ์ผ€์ด๋ธ”
    • ๋ฐ์ดํ„ฐ๋ฅผ ์ „๊ธฐ์  ์‹ ํ˜ธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋‹จ๊ณ„
  2. Data Link
    • Ethernet, ์Šค์œ„์น˜
    • ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ธฐ๋Šฅ
  3. Network
    • IP, ํŒจํ‚ท, ๋ผ์šฐํ„ฐ
    • ๋ฐ์ดํ„ฐ๋ฅผ ๋ชฉ์ ์ง€๊นŒ์ง€ ์•ˆ์ „ํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋Šฅ
              โœ” ๋ผ์šฐํ„ฐ : ์ด๋™ํ•  ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜์—ฌ IP๋ฅผ ์ง€์ •ํ•˜๊ณ  ํ•ด๋‹น ๊ฒฝ๋กœ๋กœ ํŒจํ‚ท์„ ์ „๋‹ฌํ•ด์ค€๋‹ค.
              โœ” ํŒจํ‚ท : ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ผ์šฐํŒ… ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ๊ฐ์œผ๋กœ ์ชผ๊ฐœ์„œ ํšจ์œจ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ณผ์ •,                         ์ด ๊ณผ์ •์—์„œ <์กฐ๊ฐ>์ด ํŒจํ‚ท์— ํ•ด๋‹นํ•œ๋‹ค.
  4. Transportation
    • TCP / UDP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ์„ ํ™œ์„ฑํ™” ์‹œํ‚จ๋‹ค.
    • end to end connection
              โ–ถ TCP : ์‹ ๋ขฐ์„ฑ | ์—ฐ๊ฒฐ์ง€ํ–ฅ์„ฑ | ํ˜ผํ•ฉ์ œ์–ด, ํ๋ฆ„์ œ์–ด | UDP ๋ณด๋‹ค ๋Š๋ฆฌ๋‹ค | ์ „์ด์ค‘, ์ ๋Œ€์ 
              โ–ถ UDP : ๋น„์‹ ๋ขฐ์„ฑ | ๋น„์—ฐ๊ฒฐ์ง€ํ–ฅ์„ฑ | ์‹ค์‹œ๊ฐ„, ์‹ ์†์„ฑ | DNS ์‚ฌ์šฉ
  5. Session
    • API, ์†Œ์ผ“
    • ๋ฐ์ดํ„ฐ๊ฐ€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ๋…ผ๋ฆฌ์  ์—ฐ๊ฒฐ
  6. Presentation
    • jpeg
  7. Application
    • Http
    • ์ตœ์ข… ๋ชฉ์ ์ง€๋กœ ์‚ฌ์šฉ์ž์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ•จ

2. TCP ( = Transmission control Protocl )

โ— ํŠน์ง• : ์‹ ๋ขฐ์„ฑ | ์—ฐ๊ฒฐ์ง€ํ–ฅ์„ฑ | ํ๋ฆ„์ œ์–ด, ํ˜ผํ•ฉ์ œ์–ด | UDP๋ณด๋‹ค ๋Š๋ฆฌ๋‹ค | ์ „์ด์ค‘, ์ ๋Œ€์ 

1๏ธโƒฃ ์‹ ๋ขฐ์„ฑ / ์ „์ด์ค‘, ์ ๋Œ€์ 

2๏ธโƒฃ ์—ฐ๊ฒฐ์„ฑ     โœ… 3-way handshake
    - ์—ฐ๊ฒฐ์„ ์„ฑ๋ฆฝํ•˜๋Š” ๊ณผ์ •     image         1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ Syn(x) ํŒจํ‚ท ์„ ํ†ตํ•ด ์—ฐ๊ฒฐ ์š”์ฒญ์„ ํ•œ๋‹ค         2. ์„œ๋ฒ„๋Š” Syn(x) ํŒจํ‚ท์„ ๋ฐ›์•˜๋‹ค๋Š” Ack(x+1) ์‹ ํ˜ธ์™€ Syn(y) ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค         3. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ธ Syn(y) ๋ฅผ ๋ฐ›์•˜๋‹ค๋Š” Ack(y+1)์„ ๋‹ค์‹œ ๋ณด๋‚ธ๋‹ค
        โ‡’ ์ด๋ ‡๊ฒŒ 3๋ฒˆ์˜ ํ†ต์‹ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์—ฐ๊ฒฐ์ด ์„ฑ๋ฆฝ๋œ๋‹ค
    โœ… 4-way handshake
    - ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๋Š” ๊ณผ์ •     image         1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ Fin ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ ํ•ด์ฒด ์š”์ฒญ์„ ํ•œ๋‹ค.         2. ์„œ๋ฒ„๋Š” Fin์„ ๋ฐ›๊ณ  ์•Œ์•˜๋‹ค๋Š” Ack ํ”Œ๋ž˜๊ทธ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.         3. ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ณด๋‚ด๋ฉด Fin ํ”Œ๋ž˜๊ทธ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.         4. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ธ Fin์„ ๋ฐ›๊ณ  ํ™•์ธํ–ˆ๋‹ค๋Š” Ack๋ฅผ ์„œ๋ฒ„์—๊ฒŒ ์ „๊ณตํ•œ๋‹ค.         * ์ดํ›„, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์†Œ์ผ“์„ ๋‹ซ๋Š”๋‹ค
        โ‡’ ์ด๋ ‡๊ฒŒ 4๋ฒˆ์˜ ํ†ต์‹ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์—ฐ๊ฒฐ ํ•ด์ œํ•œ๋‹ค.

3๏ธโƒฃ ํ๋ฆ„์ œ์–ด, ํ˜ผ์žก์ œ์–ด     โœ… ํ๋ฆ„ ์ œ์–ด         - ์†ก์‹ ์ธก๊ณผ ์ˆ˜์‹ ์ธก์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•         1. Flow control : receiver๊ฐ€ ํŒจํ‚ท์„ ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์ด ๋ฐ›์ง€ ์•Š๋„๋ก ํ•จ         2. ๊ธฐ๋ณธ ๊ฐœ๋…์€ receiver๊ฐ€ sender์—๊ฒŒ ์ž์‹ ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ feedback ํ•จ     โœ… ํ˜ผ์žก ์ œ์–ด         - ์†ก์‹ ์ธก์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•


3. UDP ( user datagram protocal )

โ— ํŠน์ง• : ๋น„์‹ ๋ขฐ์„ฑ | ๋น„์—ฐ๊ฒฐ์„ฑ | ์‹ค์‹œ๊ฐ„, ์‹ ์†์„ฑ | DNS ์‚ฌ์šฉ

๐Ÿ“ŒTCP์™€ UDP ๋น„๊ต

image


4. ๋Œ€์นญํ‚ค์™€ ๊ณต๊ฐœํ‚ค

โ–ถ ๋Œ€์นญํ‚ค

โ–ถ ๋น„๋Œ€์นญํ‚ค : ( ๊ณต๊ฐœํ‚ค, ๋น„๋ฐ€ํ‚ค )

โš  SSL ( ๋Œ€์นญํ‚ค + ๋น„๋Œ€์นญํ‚ค ( ๊ณต๊ฐœํ‚ค, ๋น„๋ฐ€ํ‚ค ) ์˜ ํ˜ผํ•ฉ image

  1. A๋Š” B์˜ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™” ํ†ต์‹ ์—์„œ ์‚ฌ์šฉํ•  ๋Œ€์นญํ‚ค๋ฅผ ์•”ํ˜ธํ™” ํ•˜์—ฌ B์—๊ฒŒ ์ „๋‹ฌ
  2. B๋Š” ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™” ํ•˜์—ฌ ๋Œ€์นญํ‚ค๋ฅผ ํ™•์ธํ•œใ„ท.
  3. B๋Š” ๋Œ€์นญํ‚ค๋กœ A์—๊ฒŒ ์ „๋‹ฌํ•  ํ‰๋ฌธ์„ ์•”ํ˜ธํ™” ํ•˜์—ฌ ์ „๋‹ฌํ•จ.
  4. A๋Š” ์ž์‹ ์˜ ๋Œ€์นญํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•œ๋‹ค.
  5. ์•ž์œผ๋กœ๋Š” ์ด ๋Œ€์นญํ‚ค๋กœ ์•”๋ณตํ˜ธํ™”๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.
    • ๋น„๋Œ€์นญํ‚ค ( ๊ณต๊ฐœํ‚ค, ๋น„๋ฐ€ํ‚ค ) : ๋Œ€์นญํ‚ค ์ „๋‹ฌ๊ณผ์ •์—์„œ ์•”ํ˜ธํ™”
    • ๋Œ€์นญํ‚ค : ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”์— ์‚ฌ์šฉ

5. HTTP / HTTPS

โ–ถHTTP

โ–ถHTTPS ( Secure )

โš  HTTPS ํ†ต์‹  ํ๋ฆ„


6. TLS( Transport Layer Security ) / SSL( Secure Sockets Layer) Handshake

image โ—พ1. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ [ ๋ฉ”์„ธ์ง€( client hello ) | ์•”ํ˜ธํ™” ๋œ ์ •๋ณด( ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „, ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์••์ถ• ๋ฐฉ์‹ ) ] ์ „๋‹ฌํ•œ๋‹ค. โ—พ2. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์••์ถ• ๋ฐฉ์‹์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฐ ํ›„ ์„œ๋ฒ„๋Š” [ ๋ฉ”์„ธ์ง€ ( server hello ) | ์„ธ์…˜ ID | CA ๊ณต๊ฐœ ์ธ์ฆ์„œ ]๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
CA ๊ณต๊ฐœ ์ธ์ฆ์„œ : ์•ž์œผ๋กœ ํ†ต์‹  ์ดํ›„ ๋Œ€์นญํ‚ค ์ƒ์„ฑ ์ด์ „๊นŒ์ง€, ํด๋ผ์ด์–ธํŠธ์—์„œ handshake ๊ณผ์ • ์† ์•”ํ˜ธํ™”์— ์‚ฌ์šฉํ•  ๊ณต๊ฐœํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
โ—พ3. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ CA ๊ณต๊ฐœ ์ธ์ฆ์„œ์— ๋Œ€ํ•ด ์œ ํšจํ•œ์ง€ CA ๊ธฐ์—… ๋ชฉ๋ก์—์„œ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ํ•œ๋‹ค.
โ—พ4. CA ๊ณต๊ฐœ ์ธ์ฆ์„œ์˜ ์‹ ๋ขฐ์„ฑ์„ ํ™•๋ณดํ•˜์˜€๋‹ค๋ฉด, ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ [ ๋‚œ์ˆ˜ ๋ฐ”์ดํŠธ ]( ์„œ๋ฒ„ ๊ณต๊ฐœํ‚ค )๋กœ ์•”ํ˜ธํ™” ํ•˜์—ฌ ์ „๋‹ฌํ•œ๋‹ค.
๋‚œ์ˆ˜ ๋ฐ”์ดํŠธ : (1). ๋Œ€์นญํ‚ค๋ฅผ ์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. (2). ์•ž์œผ๋กœ ์„œ๋กœ ํ†ต์‹ ํ• ๋•Œ ๋ฉ”์„ธ์ง€๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

โ—พ5. 2๋ฒˆ ๊ณผ์ •์—์„œ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ธ์ฆ์„œ๋ฅผ ์š”์ฒญํ•  ๊ฒฝ์šฐ,
ํด๋ผ์ด์–ธํŠธ๋Š” [ ์ธ์ฆ์„œ | ์ž„์˜์˜ ๋ฐ”์ดํŠธ ๋ฌธ์ž์—ด ( ํด๋ผ์ด์–ธํŠธ ๊ฐœ์ธํ‚ค ) ]๋กœ ์•”ํ˜ธํ™” ํ•œ๊ฒƒ๊ณผ ํ•จ๊ป˜ ๋ณด๋‚ธ๋‹ค
โ—พ6. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์ธ์ฆ์„œ๋ฅผ ํ™•์ธํ•˜๊ณ  ( ๋‚œ์ˆ˜ ๋ฐ”์ดํŠธ )๋ฅผ ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™” ํ•˜์—ฌ ๋Œ€์นญ ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

โ—พ7. ํด๋ผ์ด์–ธํŠธ๋Š” handshake ๊ณผ์ •์ด ๋๋‚ฌ๋‹ค๋Š”
[ finish ๋ฉ”์„ธ์ง€ | [( ํ•ด์‹ฑ )(์ž์‹ ์ด ์ง€๊ธˆ๊นŒ์ง€ ๋ณด๋ƒˆ๋˜ ํŒจํ‚ท ๋‚ด์—ญ )][ ๋Œ€์นญํ‚ค ] ]๋กœ ์•”ํ˜ธํ™” ํ•˜์—ฌ ์„œ๋ฒ„์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
โ—พ8. ์„œ๋ฒ„๋„ ๋™์ผํ•˜๊ฒŒ ์ž์‹ ์ด ์ง€๊ธˆ๊นŒ์ง€ ๋ณด๋‚ธ ํŒจํ‚ท ๋‚ด์—ญ์„ ํ•ด์‹ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
์ผ์น˜ํ•˜๋ฉด ์„œ๋ฒ„๋„ [ finish ๋ฉ”์„ธ์ง€ ]( ์ž์‹ ์˜ ๋งŒ๋“  ๋Œ€์นญํ‚ค )๋กœ ์•”ํ˜ธํ™” ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
โ—พ9. ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น ๋ฉ”์„ธ์ง€๋ฅผ ๋Œ€์นญํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•˜์—ฌ
โ‡’ ์„œ๋กœ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ๋Œ€๋ผ๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•˜๊ณ  ์•ž์œผ๋กœ ( ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ )๋Š” ์ด ๋Œ€์นญํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™” ํ•˜์—ฌ ์„œ๋กœ ํ†ต์‹ ํ•œ๋‹ค.


7. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ( Load Balancing )

0๏ธโƒฃ. Load Balancer ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  โœ” ์™œ Load Balancer ? image

image


โœ” Load Balancer๊ฐ€ Server๋ฅผ ์„ ํƒํ•˜๋Š” ๊ธฐ์ค€

  1. Round Robin
    • ๋‹จ์ˆœํžˆ ๋ผ์šด๋“œ ๋กœ๋นˆ ๋ฐฉ์‹์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•œ๋‹ค.
  2. Least connection
    • ์—ฐ๊ฒฐ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•œ๋‹ค ( ํŠธ๋ž˜ํ”ฝ์œผ๋กœ ์ธํ•ด ์„ธ์…˜์ด ๊ธธ์–ด์งˆ ๊ฒฝ์šฐ ๊ถŒ์žฅํ•œ๋‹ค )
  3. Source
    • ์‚ฌ์šฉ์ž IP๋ฅผ ํ•ด์‹ฑํ•˜์—ฌ ๋ถ„๋ฐฐํ•œ๋‹ค. ( ํŠน์ • ์‚ฌ์šฉ์ž๊ฐ€ ํ•ญ์ƒ ๊ฐ™์€ ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•œ๋‹ค )

      โœ” Load Balancer ์žฅ์•  ๋Œ€๋น„
    • ์„œ๋ฒ„๋ฅผ ๋ถ„๋ฐฐํ•˜๋Š” Load Balancer์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์ด์ค‘ํ™”ํ•˜์—ฌ ๋Œ€๋น„ํ•œ๋‹ค.

8. Blocking & Non-Blocking ๊ทธ๋ฆฌ๊ณ  Synchronous & Asynchronous

1๏ธโƒฃ. Blocing & Non-Blocking

2๏ธโƒฃ. Synchronous & Asynchronous