ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ์‹ ์ž… CS ๊ธฐ์ˆ  ๋ฉด์ ‘ ์งˆ๋ฌธ&๋‹ต๋ณ€ ์ •๋ฆฌ - ๋„คํŠธ์›Œํฌ ํŽธ
    Interview • CS 2023. 8. 20. 01:19

     

     

    ๐Ÿ“Œ OSI 7 layer(7๊ณ„์ธต) ๋ชจ๋ธ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    OSI 7 layer๋Š” ๋„คํŠธ์›Œํฌ์—์„œ ํ†ต์‹ ์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด 7๊ฐœ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
    1๊ณ„์ธต๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋ฌผ๋ฆฌ, ๋ฐ์ดํ„ฐ ๋งํฌ, ๋„คํŠธ์›Œํฌ, ์ „์†ก, ์„ธ์…˜, ํ‘œํ˜„, ์‘์šฉ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

    ๐Ÿ“Œ ๊ทธ๋ ‡๋‹ค๋ฉด TCP/IP 4๊ณ„์ธต ๋ชจ๋ธ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?
     OSI 7๊ณ„์ธต์€ ์žฅ๋น„ ๊ฐœ๋ฐœ์ด๋‚˜ ํ†ต์‹  ์ž์ฒด๋ฅผ ์œ„ํ•œ ํ‘œ์ค€์ด๋ฉฐ, TCP/IP 4๊ณ„์ธต์€ ์‹ค์งˆ์ ์ธ ํ†ต์‹ ์„ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    1๊ณ„์ธต๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค, ์ธํ„ฐ๋„ท, ์ „์†ก, ์‘์šฉ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ TCP์™€ UDP์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

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

     

     

    ๐Ÿ“Œ TCP 3 way, 4 way handshake์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    3 way handshake๋Š” TCP ํ†ต์‹  ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด์„œ ์—ฐ๊ฒฐ์„ ํ™•๋ณดํ•˜๋Š” ๊ณผ์ •์ด๋ฉฐ,
    4 way handshake๋Š” ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

    (์ฐธ๊ณ )

     

     

    ๐Ÿ“Œ ์œ ๋‹ˆ์บ์ŠคํŠธ, ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ, ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ, ์• ๋‹ˆ์บ์ŠคํŠธ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

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

    (์ฐธ๊ณ )

     

     

    ๐Ÿ“Œ MAC ์ฃผ์†Œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    MAC ์ฃผ์†Œ๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋œ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋กœ, ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๊ณ ์œ ํ•œ ์ปดํ“จํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    OSI 7๊ณ„์ธต ์ค‘ 2๊ณ„์ธต์ธ ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ IP ์ฃผ์†Œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    IP ์ฃผ์†Œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋œ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋กœ, ๋„คํŠธ์›Œํฌ์— ์ฐธ์—ฌํ•œ ์ปดํ“จํ„ฐ์™€ ๋„คํŠธ์›Œํฌ์˜ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    OSI 7๊ณ„์ธต ์ค‘ 3๊ณ„์ธต์ธ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ ์ธ์บก์А๋ ˆ์ด์…˜, ๋””์บก์А๋ ˆ์ด์…˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    OSI ๊ณ„์ธต ์ƒ์œ„์—์„œ ํ•˜์œ„ ๊ณ„์ธต์œผ๋กœ(4→3→2) ๋‚ด๋ ค๊ฐˆ ๋•Œ ํŒจํ‚ท์„ ๋‘˜๋Ÿฌ์‹ธ๋Š” ํ–‰์œ„๋ฅผ ์ธ์บก์А๋ ˆ์ด์…˜,
    ํ•˜์œ„์—์„œ ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ(2→3→4) ์˜ฌ๋ผ๊ฐˆ ๋•Œ ํŒจํ‚ท์„ ๋ฒ—๊ฒจ์„œ ์ฝ๋Š” ํ–‰์œ„๋ฅผ ๋””์บก์А๋ ˆ์ด์…˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ Socket์œผ๋กœ ๋ฐ”๋กœ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ ๋Œ€๋น„ HTTP๋Š” ๋น„ํšจ์œจ์ ์ธ๋ฐ๋„ ์™œ ๋งŽ์€ ์•ฑ๋“ค์€ HTTP๋ฅผ ์“ฐ๋Š” ๊ฑธ๊นŒ์š”?

    Socket ํ†ต์‹ ์€ Connection์„ ๊ณ„์† ์œ ์ง€ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— HTTP ํ†ต์‹ ์— ๋น„ํ•ด ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์ด ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค.
    ๋”ฐ๋ผ์„œ ์ŠคํŠธ๋ฆฌ๋ฐ์ด๋‚˜ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์ฒ˜๋Ÿผ ์ž์ฃผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ™˜๊ฒฝ์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” HTTP ํ†ต์‹ ์ด ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    ๋˜ํ•œ HTTP๋Š” ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ์„ ์ง€ํ–ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ์–ด๋–ค ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•ด๋„ ์ƒ๊ด€์ด ์—†์Šต๋‹ˆ๋‹ค.
    ๋”ฐ๋ผ์„œ ์„œ๋ฒ„ ํ™•์žฅ์„ฑ์ด ๋†’๋‹ค๋Š” ์žฅ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ HTTP(s) ํ”„๋กœํ† ์ฝœ์—์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋Š” ๋ฉ”์„œ๋“œ ๋ฐฉ์‹, ์ฆ‰ POST ๋ฐฉ์‹์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    HTTP ๋ฉ€ํ‹ฐํŒŒํŠธ๋‚˜ Base64๋กœ ์ธ์ฝ”๋”ฉํ•ด Body์— ๋‹ด์•„์„œ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ Socket์œผ๋กœ ์›น ํŽ˜์ด์ง€๋ฅผ ํฌ๋กค๋งํ•˜๋Š” HTTP ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

    HTTP ๋ฉ”์‹œ์ง€(๋ฉ”์„œ๋“œ, ์š”์ฒญ URI, ํ—ค๋” ๋“ฑ)๋ฅผ ๋‹ด์•„์„œ Socket ํ†ต์‹ ์œผ๋กœ ๋ณด๋‚ธ ๋‹ค์Œ, ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•„์˜ค๋ฉด
    ๋ฉ”์‹œ์ง€ Body์˜ html ํƒœ๊ทธ๋ฅผ ํŒŒ์‹ฑ ํ•ด์„œ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    (์ฐธ๊ณ )

     

     

    ๐Ÿ“Œ HTTP๋Š” Stateless(์ƒํƒœ๊ฐ€ ์—†๋Š”) ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ธ๋ฐ, ์ด๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ถˆํŽธํ•จ์„ ํ•ด์†Œํ•œ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    ์ƒํƒœ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์€ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ์ด ํ•ด์ œ๋˜๋ฉด ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด์ „์— ์š”์ฒญํ•œ ๊ฒฐ๊ณผ๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฐ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.
    ์ด๋กœ ์ธํ•ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด์ „๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•œ๋‹ค๊ณ  ํ•ด๋„, ๋‹ค์‹œ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•ด ๋™์ผํ•œ ์š”์ฒญ์„ ์‹œ๋„ํ•ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ํด๋ผ์ด์–ธํŠธ์˜ ๋ฐฉ๋ฌธ ์ •๋ณด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ HTTP์™€ HTTPS์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    HTTPS๋Š” HTTP์˜ ๋” ํ™•์žฅ๋˜๊ณ  ์•ˆ์ „ํ•œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
    HTTP๋Š” ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์„œ ์ค‘๊ฐ„์— ์ œ3์ž๊ฐ€ ๊ฐ€๋กœ์ฑ„์„œ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ๊ทธ๋Ÿฌ๋‚˜ HTTPS๋Š” ์ธ์ฆ ๊ธฐ๊ด€(CA)์—์„œ SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์•„, ์„œ๋ฒ„์™€ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ HTTPS์™€ SSL Handshake์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    HTTPS ํ†ต์‹  ๊ณผ์ •์—์„œ ์•”ํ˜ธํ™” ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ํ˜‘์ƒ ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    ์ด ๊ณผ์ •์„ SSL Handshake๋ผ๊ณ  ํ•˜๋ฉฐ ์ด๋•Œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” SSL ์ธ์ฆ์„œ๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•  ๋Œ€์นญํ‚ค๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ SSL/TLS ํ”„๋กœํ† ์ฝœ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ HTTP ๋ฉ”์„œ๋“œ์™€ ๊ทธ ์—ญํ• ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    HTTP ๋ฉ”์„œ๋“œ์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ GET, POST, PUT, PATCH, DELETE ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    GET์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋ฉฐ,
    POST๋Š” ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    PUT์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ ๋˜๋Š” ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋ฉฐ, POST์™€๋Š” ๋‹ฌ๋ฆฌ ๋ฉฑ๋“ฑ์„ฑ*์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    PATCH๋Š” PUT๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ๋ฆฌ์†Œ์Šค์˜ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ๋ถ€๋ถ„๋งŒ ๊ต์ฒดํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋ฉฐ,
    DELETE๋Š” ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    (* ๋ฉฑ๋“ฑ์„ฑ: ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญํ•ด๋„ ์‘๋‹ต์ด ๊ฐ™์€ ์„ฑ์งˆ)

     

     

    ๐Ÿ“Œ GET๊ณผ POST์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    GET์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ์š”์ฒญ ๋‚ด์šฉ์ด URL ์ฃผ์†Œ ๋์— ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํฌํ•จ๋˜์–ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
    POST๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ์š”์ฒญ ๋‚ด์šฉ์ด HTTP ๋ฉ”์‹œ์ง€์˜ body ๋ถ€๋ถ„์— ๋‹ด๊ฒจ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
    ๋˜ํ•œ GET์€ ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญํ•ด๋„ ์‘๋‹ต์ด ๊ฐ™์ง€๋งŒ POST๋Š” ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    (์ฐธ๊ณ )

     

     

    ๐Ÿ“Œ ์›น ๋ธŒ๋ผ์šฐ์ € ๋™์ž‘ ๊ณผ์ •(URL ์ž…๋ ฅ ํ›„ ์—”ํ„ฐ๋ฅผ ์ณค์„ ๋•Œ ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    ์ฃผ์†Œ์ฐฝ์— URL์„ ์ž…๋ ฅํ•˜๋ฉด, ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” DNS ์บ์‹œ๋ฅผ ์กฐํšŒํ•ด ํ•ด๋‹น ๋„๋ฉ”์ธ์— ๋งคํ•‘๋˜๋Š” IP ์ฃผ์†Œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
    ๋งŒ์•ฝ ์บ์‹œ์—์„œ ๋ชป ์ฐพ์„ ๊ฒฝ์šฐ DNS ์„œ๋ฒ„์— ํ•ด๋‹น ๋„๋ฉ”์ธ์— ๋งคํ•‘๋˜๋Š” IP ์ฃผ์†Œ๋ฅผ ์ฐพ์•„๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
    IP ์ฃผ์†Œ๋ฅผ ์ฐพ์œผ๋ฉด ์›น ์„œ๋ฒ„๋กœ HTTP ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
    ์›น ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ๋‹ค์‹œ HTTP ์‘๋‹ต์„ ๋ณด๋‚ด๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML ์ฝ˜ํ…์ธ ๋ฅผ ๋ Œ๋”๋ง ํ•ฉ๋‹ˆ๋‹ค.

    (์ฐธ๊ณ )

     

     

    ๐Ÿ“Œ RESTful์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š” / REST, REST API, RESTful์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

    ์šฐ์„  REST๋ž€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ํ†ต์‹  ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, HTTP ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ž์›์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    REST API๋ž€ ์ด๋Ÿฐ REST๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค API๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
    ๊ทธ๋ฆฌ๊ณ  REST ์›๋ฆฌ๋ฅผ ๋”ฐ๋ฅด๋Š” ์›น ์„œ๋น„์Šค, ์ฆ‰ REST API๋ฅผ ์ œ๊ณตํ•˜๋Š” ์›น ์„œ๋น„์Šค๋ฅผ RESTful ํ•˜๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ CORS์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    Cross-Origin Resource Sharing์˜ ์•ฝ์ž๋กœ ์ถœ์ฒ˜๊ฐ€ ๋‹ค๋ฅธ ์ž์›๋“ค์„ ๊ณต์œ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.
    ์ฆ‰, ํ•œ ์ถœ์ฒ˜์— ์žˆ๋Š” ์ž์›์—์„œ ๋‹ค๋ฅธ ์ถœ์ฒ˜์— ์žˆ๋Š” ์ž์›์— ์ ‘๊ทผํ•˜๋„๋ก ํ•˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.
    ์—ฌ๊ธฐ์„œ ์ถœ์ฒ˜๋Š” URL์—์„œ Path๋‚˜ Query String์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ถœ์ฒ˜๋ผ๊ณ  ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ JWT์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    JSON Web Token์˜ ์•ฝ์ž๋กœ ์›น์—์„œ ์‚ฌ์šฉ๋˜๋Š” JSON ํ˜•์‹์˜ ํ† ํฐ์— ๋Œ€ํ•œ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค.
    ํ—ค๋”, ํŽ˜์ด๋กœ๋“œ, ์‹œ๊ทธ๋‹ˆ์ฒ˜ 3๊ฐ€์ง€ ์š”์†Œ๋ฅผ Base64๋กœ ์ธ์ฝ”๋”ฉํ•œ ํ† ํฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ OAuth์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    Open Authorization์˜ ์•ฝ์ž๋กœ ์œ ์ €๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง์ ‘ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ ๋„ ์›น์‚ฌ์ดํŠธ์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€์ž…๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ Cookie์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

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

    (์ฐธ๊ณ )

     

     

    ๐Ÿ“Œ Session์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•ด ์žˆ๋Š” ์ƒํƒœ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ์„ธ์…˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
    ์„œ๋ฒ„๋Š” ์„ธ์…˜ ID๋กœ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋ฉฐ, ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•ด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์„ธ์…˜์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

    (์ฐธ๊ณ )

     

     

    ๐Ÿ“Œ Cookie์™€ Session์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

    ์„ธ์…˜์ด ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ์ด๋ฉฐ ์ฟ ํ‚ค๋Š” ๋กœ์ปฌ์—, ์„ธ์…˜์€ ๋กœ์ปฌ๊ณผ ์„œ๋ฒ„์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
    ๋”ฐ๋ผ์„œ ์ฟ ํ‚ค๋Š” ํƒˆ์ทจ์™€ ๋ณ€์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์„ธ์…˜์€ ID ๊ฐ’๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋Œ€์ ์œผ๋กœ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
    ํ•˜์ง€๋งŒ ์ฟ ํ‚ค๋Š” ์ฟ ํ‚ค์— ์ •๋ณด๊ฐ€ ์žˆ๊ณ  ์„ธ์…˜์€ ์„œ๋ฒ„์— ์ •๋ณด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฒญ ์‹œ ์†๋„๋Š” ์ฟ ํ‚ค๊ฐ€ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค.

    (์ฐธ๊ณ )

     

     

    ๐Ÿ“Œ ์›น ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด(Apache, Nginx)๋Š” OSI 7๊ณ„์ธต ์ค‘ ์–ด๋””์„œ ์ž‘๋™ํ•˜๋‚˜์š”?

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

     

     

    ๐Ÿ“Œ ์›น ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด(Apache, Nginx)์˜ ์„œ๋ฒ„ ๊ฐ„ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์€ OSI 7๊ณ„์ธต ์ค‘ ์–ด๋””์„œ ์ž‘๋™ํ•˜๋‚˜์š”?

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

     

     

    ๐Ÿ“Œ XSS์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

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

     

     

    ๐Ÿ“Œ CSRF์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    CSRF๋Š” ์‚ฌ์ดํŠธ ๊ฐ„ ์š”์ฒญ ์œ„์กฐ๋ฅผ ๋œปํ•˜๋Š” ๋ง๋กœ, ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์˜์ง€์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํŠน์ • ์š”์ฒญ์„ ๋ณด๋‚ด๋„๋ก ์œ ๋„ํ•˜๋Š” ๊ณต๊ฒฉ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ ํ”„๋ก์‹œ ์„œ๋ฒ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•  ๋•Œ ์ง์ ‘ ์ ‘์†ํ•˜์ง€ ์•Š๊ณ  ์ค‘๊ฐ„์— ๋Œ€์‹  ์ „๋‹ฌํ•ด ์ฃผ๋Š” ์„œ๋ฒ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    ํ”„๋ก์‹œ ์„œ๋ฒ„๋Š” ์บ์‹ฑ์„ ํ†ตํ•ด์„œ ์‘๋‹ต ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ*์˜ ์—ญํ• ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    (* ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ: ์„œ๋ฒ„์— ๊ฐ€ํ•ด์ง€๋Š” ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•ด ์ฃผ๋Š” ๊ธฐ์ˆ  ๋˜๋Š” ์žฅ์น˜)

     

     

    ๐Ÿ“Œ Gateway์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    Gateway๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋ฅผ ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š” ์„œ๋ฒ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๐Ÿ“Œ DDoS์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

    DDoS๋Š” ๋ถ„์‚ฐ ์„œ๋น„์Šค ๊ฑฐ๋ถ€ ๊ณต๊ฒฉ์œผ๋กœ, ๊ณต๊ฒฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ด์šฉํ•ด ์„œ๋ฒ„์— ๋Œ€๋Ÿ‰์˜ ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋‚ด์„œ ์„œ๋น„์Šค๋ฅผ ๋งˆ๋น„์‹œํ‚ค๋Š” ๊ณต๊ฒฉ์ž…๋‹ˆ๋‹ค.

    ๐Ÿ“Œ DDoS์˜ ์ข…๋ฅ˜์—๋Š” ์–ด๋–ค ๊ฒŒ ์žˆ๋‚˜์š”?
     3-way handshake ์‹œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ๋Œ€๋กœ ์ „๋‹ฌ๋˜์—ˆ๋‹ค๋Š” ์‹ ํ˜ธ(ACK) ๋Œ€์‹  ์—ฐ๊ฒฐ ์š”์ฒญ(SYN)๋งŒ ๊ณ„์† ๋ณด๋‚ด๋Š” TCP SYN Flooding, ๋Œ€๋Ÿ‰์˜ UDP ํŒจํ‚ท์„ ์ด์šฉํ•ด ๋Œ€์ƒ ํ˜ธ์ŠคํŠธ์˜ ๋„คํŠธ์›Œํฌ ์ž์›์„ ์†Œ๋ชจ์‹œํ‚ค๋Š” UDP Flooding, ๋™์ผํ•œ URL์— GET ์š”์ฒญ์„ ๋Œ€๋Ÿ‰์œผ๋กœ ๋ฐ˜๋ณต ์ˆ˜ํ–‰ํ•˜๋Š” HTTP GET Flooding ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    (์ฐธ๊ณ )