# ๋„คํŠธ์›Œํฌ




# OSI 7๊ณ„์ธต์„ ์„ค๋ช…ํ•˜์‹œ์˜ค

OSI 7๊ณ„์ธต์ด๋ž€, ํ†ต์‹  ์ ‘์†์—์„œ ์™„๋ฃŒ๊นŒ์ง€์˜ ๊ณผ์ •์„ 7๋‹จ๊ณ„๋กœ ์ •์˜ํ•œ ๊ตญ์ œ ํ†ต์‹  ํ‘œ์ค€ ๊ทœ์•ฝ

๋ฌผ๋ฆฌ : ์ „์†กํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณต ( ํ†ต์‹  ์ผ€์ด๋ธ”, ํ—ˆ๋ธŒ )

๋ฐ์ดํ„ฐ๋งํฌ : ์†ก/์ˆ˜์‹  ํ™•์ธ. MAC ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ํ†ต์‹ ํ•จ ( ๋ธŒ๋ฆฟ์ง€, ์Šค์œ„์น˜ )

๋„คํŠธ์›Œํฌ : ํŒจํ‚ท์„ ๋„คํŠธ์›Œํฌ ๊ฐ„์˜ IP๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ( ๋ผ์šฐํŒ… )

์ „์†ก : ๋‘ host ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ œ๊ณต

์„ธ์…˜ : ํ†ต์‹  ์‹œ์Šคํ…œ ์‚ฌ์šฉ์ž๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์œ ์ง€ ๋ฐ ์„ค์ •ํ•จ

ํ‘œํ˜„ : ์„ธ์…˜ ๊ณ„์ธต ๊ฐ„์˜ ์ฃผ๊ณ ๋ฐ›๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ผ๊ด€์„ฑ์žˆ๊ฒŒ ์ œ๊ณต

์‘์šฉ : ์‚ฌ์šฉ์ž๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์„œ๋น„์Šค ์ œ๊ณต



# TCP/IP ํ”„๋กœํ† ์ฝœ์„ ์Šคํƒ 4๊ณ„์ธต์œผ๋กœ ์ง“๊ณ  ์„ค๋ช…ํ•˜์‹œ์˜ค

  • ๋ฌผ๋ฆฌ์ ์ธ ์˜์—ญ์˜ ํ‘œ์ค€ํ™”์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ

    ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ์˜์—ญ์œผ๋กœ LAN, WAN๊ณผ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ํ‘œ์ค€๊ณผ ๊ด€๋ จ๋œ ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•˜๋Š” ์˜์—ญ์ด๋‹ค

  • # IP ๊ณ„์ธต

    ๊ฒฝ๋กœ ๊ฒ€์ƒ‰์„ ํ•ด์ฃผ๋Š” ๊ณ„์ธต์ž„

    IP ์ž์ฒด๋Š” ๋น„์—ฐ๊ฒฐ์ง€ํ–ฅ์ ์ด๋ฉฐ, ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค

    ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ๋งˆ๋‹ค ๊ฑฐ์ณ์•ผํ•  ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•ด์ฃผ์ง€๋งŒ, ๊ฒฝ๋กœ๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š์Œ. ๋˜ํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก ์ค‘์— ๊ฒฝ๋กœ์ƒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ. ๋”ฐ๋ผ์„œ IP ๊ณ„์ธต์€ ์˜ค๋ฅ˜ ๋ฐœ์ƒ์— ๋Œ€ํ•œ ๋Œ€๋น„๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š์€ ํ”„๋กœํ† ์ฝœ์ž„

  • # TCP/UDP (์ „์†ก) ๊ณ„์ธต

    ๋ฐ์ดํ„ฐ์˜ ์‹ค์ œ ์†ก์ˆ˜์‹ ์„ ๋‹ด๋‹นํ•จ

    UDP๋Š” TCP์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ณ , TCP๋Š” ์‹ ๋ขฐ์„ฑ์ž‡๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋‹ด๋‹นํ•จ

    TCP๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ, IP ํ”„๋กœํ† ์ฝœ์ด ๊ธฐ๋ฐ˜์ž„ (IP๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ TCP๊ฐ€ ์‹ ๋ขฐ๋ผ๊ณ ?)

    โ†’ IP์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ฃผ๋Š” ๊ฒƒ์ด TCP์ธ ๊ฒƒ. ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „์†ก ๊ฐ”๋Š”์ง€ ํ™•์ธํ•ด์ฃผ๋ฉฐ ๋Œ€ํ™”๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ์‹์ž„. ์ด์ฒ˜๋Ÿผ ํ™•์ธ ์ ˆ์ฐจ๋ฅผ ๊ฑธ์น˜๋ฉฐ ์‹ ๋ขฐ์„ฑ ์—†๋Š” IP์— ์‹ ๋ขฐ์„ฑ์„ ๋ถ€์—ฌํ•œ ํ”„๋กœํ† ์ฝœ์ด TCP์ด๋‹ค

  • # ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต

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



# TCP๋ž€?

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค

์„œ๋ฒ„ : socket() ์ƒ์„ฑ โ†’ bind() ์†Œ์ผ“ ์ฃผ์†Œํ• ๋‹น โ†’ listen() ์—ฐ๊ฒฐ์š”์ฒญ ๋Œ€๊ธฐ์ƒํƒœ โ†’ accept() ์—ฐ๊ฒฐํ—ˆ์šฉ โ†’ read/write() ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  โ†’ close() ์—ฐ๊ฒฐ์ข…๋ฃŒ

ํด๋ผ์ด์–ธํŠธ : socket() ์ƒ์„ฑ โ†’ connect() ์—ฐ๊ฒฐ์š”์ฒญ โ†’ read/write() ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  โ†’ close() ์—ฐ๊ฒฐ์ข…๋ฃŒ

# ๋‘˜์˜ ์ฐจ์ด๋Š”?

ํด๋ผ์ด์–ธํŠธ ์†Œ์ผ“์„ ์ƒ์„ฑํ•œ ํ›„, ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•˜๋Š” ๊ณผ์ •์—์„œ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์„œ๋ฒ„๋Š” listen() ํ˜ธ์ถœ ์ดํ›„๋ถ€ํ„ฐ ์—ฐ๊ฒฐ์š”์ฒญ ๋Œ€๊ธฐ ํ๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ณ , ๊ทธ ์ดํ›„์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์„œ๋ฒ„๊ฐ€ ๋ฐ”๋กœ accept()๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์—ฐ๊ฒฐ๋˜๊ธฐ ์ „๊นŒ์ง€ ํ˜ธ์ถœ๋œ ์œ„์น˜์—์„œ ๋ธ”๋กœํ‚น ์ƒํƒœ์— ๋†“์ด๊ฒŒ ๋œ๋‹ค.

์ด์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ์ง€ํ–ฅ์ ์ธ TCP๋Š” ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ฐ€๋Šฅํ•จ (3-way handshaking)

ํ๋ฆ„์ œ์–ด์™€ ํ˜ผ์žก์ œ์–ด๋ฅผ ์ง€์›ํ•ด์„œ ๋ฐ์ดํ„ฐ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•ด์คŒ

  • ํ๋ฆ„์ œ์–ด : ์†ก์‹  ์ธก๊ณผ ์ˆ˜์‹  ์ธก์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ์กฐ์ ˆํ•ด์ฃผ๋Š” ๊ฒƒ

  • ํ˜ผ์žก ์ œ์–ด : ๋„คํŠธ์›Œํฌ ๋‚ด์˜ ํŒจํ‚ท ์ˆ˜๊ฐ€ ๋„˜์น˜๊ฒŒ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ

์ •ํ™•์„ฑ ๋†’์€ ์ „์†ก์„ ํ•˜๊ธฐ ์œ„ํ•ด ์†๋„๊ฐ€ ๋Š๋ฆฐ ๋‹จ์ ์ด ์žˆ๊ณ , ์ฃผ๋กœ ์›น HTTP ํ†ต์‹ , ์ด๋ฉ”์ผ, ํŒŒ์ผ ์ „์†ก์— ์‚ฌ์šฉ๋จ



# 3-way handshaking์ด๋ž€?

TCP ์†Œ์ผ“์€ ์—ฐ๊ฒฐ ์„ค์ •๊ณผ์ • ์ค‘์— ์ด 3๋ฒˆ์˜ ๋Œ€ํ™”๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.

(SYN : ์—ฐ๊ฒฐ ์š”์ฒญ ํ”Œ๋ž˜๊ทธ / ACK : ์‘๋‹ต)

  • ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์ ‘์† ์š”์ฒญํ•˜๋Š” SYN(M) ํŒจํ‚ท์„ ๋ณด๋ƒ„
  • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ธ SYN(M)์„ ๋ฐ›๊ณ , ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•œ๋‹ค๋Š” ACK(M+1)์™€ SYN(N)์ด ์„ค์ •๋œ ํŒจํ‚ท์„ ๋ฐœ์†กํ•จ
  • ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ ์ˆ˜๋ฝ ์‘๋‹ต์ธ ACK(M+1)์™€ SYN(N) ํŒจํ‚ท์„ ๋ฐ›๊ณ , ACK(N+1)๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋ฉด ์—ฐ๊ฒฐ์ด ์„ฑ๋ฆฝ๋จ
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ ์ข…๋ฃŒํ•˜๊ฒ ๋‹ค๋Š” FIN ํ”Œ๋ž˜๊ทธ๋ฅผ ์ „์†กํ•จ
  • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ(FIN)์„ ๋ฐ›๊ณ , ์•Œ๊ฒ ๋‹ค๋Š” ํ™•์ธ ๋ฉ”์‹œ์ง€๋กœ ACK๋ฅผ ๋ณด๋ƒ„. ๊ทธ ์ดํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ณด๋‚ผ ๋•Œ๊นŒ์ง€ ์ž ๊น TIME_OUT์ด ๋จ
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ณด๋‚ด๊ณ  ํ†ต์‹ ์ด ๋๋‚ฌ์œผ๋ฉด ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ FINํ”Œ๋ž˜๊ทธ๋ฅผ ์ „์†กํ•จ
  • ํด๋ผ์ด์–ธํŠธ๋Š” FIN ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ–ˆ๋‹ค๋Š” ACK๋ฅผ ๋ณด๋ƒ„
  • ํด๋ผ์ด์–ธํŠธ์˜ ACK ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์€ ์„œ๋ฒ„๋Š” ์†Œ์ผ“ ์—ฐ๊ฒฐ์„ closeํ•จ
  • ํด๋ผ์ด์–ธํŠธ๋Š” ์•„์ง ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์ง€ ๋ชปํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒƒ์„ ๋Œ€๋น„ํ•ด์„œ, ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ ์„ธ์…˜์„ ๋‚จ๊ฒจ๋†“๊ณ  ์ž‰์—ฌ ํŒจํ‚ท์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ณผ์ •์„ ๊ฑฐ์นจ ( TIME_WAIT )



# UDP๋ž€?

TCP์˜ ๋Œ€์•ˆ์œผ๋กœ, IP์™€ ๊ฐ™์ด ์“ฐ์ผ ๋• UDP/IP๋ผ๊ณ ๋„ ๋ถ€๋ฆ„

TCP์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์‹ค์ œ ๋ฐ์ดํ„ฐ ๋‹จ์œ„๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด IP๋ฅผ ์‚ฌ์šฉํ•จ. ๊ทธ๋Ÿฌ๋‚˜ TCP์™€๋Š” ๋‹ฌ๋ฆฌ ๋ฉ”์‹œ์ง€๋ฅผ ํŒจํ‚ท์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๋ฐ˜๋Œ€ํŽธ์—์„œ ์žฌ์กฐ๋ฆฝํ•˜๋Š” ๋“ฑ์˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ ์ฆ‰, ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ปดํ“จํ„ฐ๋ผ๋ฆฌ ์ง์ ‘ ์—ฐ๊ฒฐํ•  ๋•Œ UDP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

UDP๋ฅผ ์‚ฌ์šฉํ•ด ๋ชฉ์ ์ง€(IP)๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ปดํ“จํ„ฐ๋ฅผ ๊ฑฐ์ณ ๋ชฉ์ ์ง€๊นŒ์ง€ ๋„๋‹ฌํ•  ์ˆ˜๋„ ์žˆ์Œ (๋„์ฐฉํ•˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ๋„ ์กด์žฌํ•จ)

์ •๋ณด๋ฅผ ๋ฐ›๋Š” ์ปดํ“จํ„ฐ๋Š” ํฌํŠธ๋ฅผ ์—ด์–ด๋‘๊ณ , ํŒจํ‚ท์ด ์˜ฌ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค๋ฉด ๋ชจ๋‘ ๋‹ค ๋ฐ›์•„๋“ค์ธ๋‹ค. ํŒจํ‚ท์ด ๋„์ฐฉํ–ˆ์„ ๋•Œ ์ถœ๋ฐœ์ง€์— ๋Œ€ํ•œ ์ •๋ณด(IP์™€ PORT)๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Œ

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



# HTTP์™€ HTTPS์˜ ์ฐจ์ด๋Š”?

HTTP ๋™์ž‘ ์ˆœ์„œ : TCP โ†’ HTTP

HTTPS ๋™์ž‘ ์ˆœ์„œ : TCP โ†’ SSL โ†’ HTTP

SSL(Secure Socket Layer)์„ ์“ฐ๋ƒ ์•ˆ์“ฐ๋ƒ์˜ ์ฐจ์ด๋‹ค. SSL ํ”„๋กœํ† ์ฝœ์€ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”์‹œํ‚ค๊ณ  ์ด๋•Œ ๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค ๋‘๊ฐ€์ง€๋ฅผ ์ด์šฉํ•œ๋‹ค.

HTTPS๋Š” ์ธํ„ฐ๋„ท ์ƒ์—์„œ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•ด SSL ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ฆ‰, ๋ฌธ์„œ ์ „์†ก์‹œ ์•”ํ˜ธํ™” ์ฒ˜๋ฆฌ ์œ ๋ฌด์— ๋”ฐ๋ผ HTTP์™€ HTTPS๋กœ ๋‚˜๋ˆ„์–ด์ง€๋Š” ๊ฒƒ

๋ชจ๋“  ์‚ฌ์ดํŠธ๊ฐ€ HTTPS๋กœ ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š”, ์•”ํ˜ธํ™” ๊ณผ์ •์œผ๋กœ ์ธํ•œ ์†๋„ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.



# GET๊ณผ POST์˜ ์ฐจ์ด๋Š”?

๋‘˜๋‹ค HTTP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด ์„œ๋ฒ„์— ๋ฌด์–ธ๊ฐ€ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

GET ๋ฐฉ์‹์€, URL์„ ํ†ตํ•ด ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ์ฐฝ์— ์ „๋‹ฌ ๊ฐ’์ด ๋…ธ์ถœ๋จ. URL ๊ธธ์ด๊ฐ€ ์ œํ•œ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „์†ก ๋ฐ์ดํ„ฐ ์–‘์ด ํ•œ์ •๋˜์–ด ์žˆ๊ณ , ํ˜•์‹์— ๋งž์ง€ ์•Š์œผ๋ฉด ์ธ์ฝ”๋”ฉํ•ด์„œ ์ „๋‹ฌํ•ด์•ผ ํ•จ

POST ๋ฐฉ์‹์€ HTTP BODY์— ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ด์„œ ์ „๋‹ฌํ•จ. ์›น ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉ์ž์˜ ๋ˆˆ์—๋Š” ์ง์ ‘์ ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š๊ณ  ๊ธธ์ด ์ œํ•œ๋„ ์—†์Œ.

๋ณดํ†ต GET์€ ๊ฐ€์ ธ์˜ฌ ๋•Œ, POST๋Š” ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• ์— ํ™œ์šฉํ•œ๋‹ค.

GET์€ SELECT ์„ฑํ–ฅ์ด ์žˆ์–ด์„œ ์„œ๋ฒ„์—์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋ณด์—ฌ์ฃผ๋Š” ์šฉ๋„๋กœ ํ™œ์šฉ

POST๋Š” ์„œ๋ฒ„์˜ ๊ฐ’์ด๋‚˜ ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ํ™œ์šฉ



# IOCP๋ฅผ ์„ค๋ช…ํ•˜์‹œ์˜ค

IOCP๋Š” ์–ด๋–ค I/O ํ•ธ๋“ค์— ๋Œ€ํ•ด, ๋ธ”๋ก ๋˜์ง€ ์•Š๊ฒŒ ๋น„๋™๊ธฐ ์ž‘์—…์„ ํ•˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

๋™๊ธฐํ™” Object ์„ธ๋งˆํฌ์–ด์˜ ํŠน์„ฑ๊ณผ, ํ๋ฅผ ๊ฐ€์ง„ ์ปค๋„ Object๋‹ค. ๋Œ€๋ถ€๋ถ„ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์ƒ์—์„œ ์‚ฌ์šฉ๋˜๊ณ , ํ๋Š” ์ž์ฒด์ ์œผ๋กœ ์šด์˜ํ•˜๋Š” ํŠน์ง• ๋•Œ๋ฌธ์— ์Šค๋ ˆ๋“œ ํ’€๋ง์— ์ ํ•ฉํ•จ

๋™๊ธฐํ™”์™€ ๋™์‹œ์— ํ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ IOCP๋Š”, ์Šค๋ ˆ๋“œ ํ’€๋ง์„ ์œ„ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Œ

# POOLING์ด๋ž€?

์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋Œ€๊ธฐ์‹œํ‚ค๊ณ , ํ•„์š”ํ•  ๋•Œ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‚ฌ์šฉํ•œ ๋’ค์— ๋‹ค์‹œ ๋ฐ˜๋‚ฉํ•˜๋Š” ๊ณผ์ • (์Šค๋ ˆ๋“œ์˜ ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด๋Š” ์ƒ๋‹นํžˆ ํฐ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ณผ์ •์„ ์ด์šฉํ•œ๋‹ค)

IOCP์˜ ์žฅ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•œ ๋ฒ„ํผ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ํšจ์œจ์ ์œผ๋กœ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ. (๊ธฐ์กด์—๋Š” OS๋ฒ„ํผ, ์‚ฌ์šฉ์ž ๋ฒ„ํผ๋กœ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์šด์˜ํ–ˆ์Œ)

์ปค๋„ ๋ ˆ๋ฒจ์—์„œ๋Š” ๋ชจ๋“  I/O๋ฅผ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ธ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ



# ๋ผ์šฐํ„ฐ์™€ ์Šค์œ„์น˜์˜ ์ฐจ์ด๋Š”?

๋ผ์šฐํ„ฐ๋Š” 3๊ณ„์ธต ์žฅ๋น„๋กœ, ์ˆ˜์‹ ํ•œ ํŒจํ‚ท์˜ ์ •๋ณด๋ฅผ ๋ณด๊ณ  ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ด ํŒจํ‚ท์„ ์ „์†กํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์žฅ๋น„

์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์— ์œ„์น˜ํ•˜๋ฉฐ MAC ์ฃผ์†Œ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•ด ํ•ด๋‹น ํ”„๋ ˆ์ž„์„ ์ „์†กํ•˜๋Š” 2๊ณ„์ธต ์žฅ๋น„



์ตœ์ข… ์ˆ˜์ • : 12/17/2022, 7:23:59 AM