๐ŸŒ• F-lab ๋ฉ˜ํ† ๋ง ๊ธฐ๋ก

๋ฉ˜ํ† ๋ง ์ดํ›„ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก

http๋ž€ ๋ฌด์—‡์ผ๊นŒ? ๊ทธ๋ฆฌ๊ณ  https์™€ ์ฐจ์ด๋Š”?

Hyper Text Transfer Protocol์˜ ์•ฝ์ž๋กœ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๋ชจ๋ธ์„ ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ
์ธํ„ฐ๋„ท์—์„œ hyper text๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์‹  ๊ทœ์•ฝ์œผ๋กœ 80๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” 80๋ฒˆ ํฌํŠธ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„๋Š” 80๋ฒˆ ํฌํŠธ์—์„œ ์š”์ฒญ์„ ๋ฐ›๋Š”๋‹ค.
์ฆ‰, ์ฃผ์†Œ์ฐฝ์— www.google.co.kr์„ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ํƒ€์ดํ•‘ํ•˜์ง€ ์•Š์•„๋„ ์•ž์— http ๋˜๋Š” https๊ฐ€ ๋ถ™๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ๋ง์€ ์ฆ‰ google ๋„๋ฉ”์ธ ์ฃผ์†Œ์— 80๋ฒˆ ํฌํŠธ๋กœ ์ ‘์†ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ๋น„๋กœ์†Œ html ๋ฌธ์„œ๋ฅผ ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ด์ฃผ๊ฒŒ ๋œ๋‹ค.
ํ—ˆ๋‚˜ http๋Š” ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ํ‰๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๊ธฐ ๋•Œ๋ฌธ์—, http๋ฅผ ํ†ตํ•ด ์ค‘์š”ํ•œ ๊ฐœ์ธ์ •๋ณด(๋น„๋ฐ€๋ฒˆํ˜ธ, ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ ๋“ฑ)์„ ์ฃผ๊ณ  ๋ฐ›๊ฒŒ ๋˜๋ฉด ์™ธ๋ถ€์— ๋…ธ์ถœ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด Hyper Text Transfer Protocol Secure, https์ด๋‹ค. https๋Š” ๊ธฐ์กด์˜ http์— ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๊ฐ€ ์ถ”๊ฐ€๋œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. 443๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ์ƒ, ์ œ 3์ž๊ฐ€ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์—†๋„๋ก ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

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

https๋Š” ๋Œ€์นญํ‚ค/๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ๋‹ค.

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

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

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

๋Œ€์นญํ‚ค/๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”๋Š” ์ถ”ํ›„ ๋”ฐ๋กœ ๋‹ค๋ฃจ๋„๋ก ํ•˜์ž!

CORS ์ •์ฑ…์ด๋ž€?

CORS(Cross-Origin Resource Sharing) ์ •์ฑ…์€ ๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ ์— ๊ด€ํ•œ ์ •์ฑ…์ด๋‹ค. ์ด ๋•Œ ๊ต์ฐจ ์ถœ์ฒ˜๋Š” ๋‹ค๋ฅธ ์ถœ์ฒ˜๋ผ๊ณ  ์ดํ•ดํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.
์ฆ‰, ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค.

URL์˜ ๊ตฌ์กฐ

์•„๋ž˜์™€ ๊ฐ™์€ ์ฃผ์†Œ๊ฐ€ ์žˆ๋‹ค.
https://jaydenlee1116.github.io:443/tech/react?page=1#Origin์ด๋ž€

  • https:// : Protocol
  • jaydenlee1116.github.io : Host
  • :443 : Port(์ƒ๋žต ๊ฐ€๋Šฅ)
  • /tech/react : Path
  • ?page=1 : Query String
  • #Origin์ด๋ž€ : Fragment
์ถœ์ฒ˜(origin)

URL ๊ตฌ์กฐ์—์„œ Protocol, Host, Port ์„ธ ๋ถ€๋ถ„์„ ํ•ฉ์นœ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ location.origin์„ ์‹คํ–‰ํ•˜๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…(Same-Origin Policy)์ด๋ž€?

๋ธŒ๋ผ์šฐ์ €๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…(SOP)๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ์„ ๊ธˆ์ง€ํ•œ๋‹ค. ์ฆ‰, ์œ„์˜ ์˜ˆ์‹œ์—์„œ https://jaydenlee1116.github.io์™€๋Š” ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ์ฃผ์†Œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค๋ฉด ๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…์„ ์œ„๋ฐ˜ํ•˜์—ฌ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ•œ๋‹ค๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์ง€๋งŒ, SOP๋ฅผ ํ†ตํ•ด XSS๋‚˜ XSRF ๋“ฑ์˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๋…ธ๋ฆฐ ๊ณต๊ฒฉ์— ๋ฐฉ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ˜„์‹ค์ ์œผ๋กœ๋Š” ์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐธ๊ณ ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์กฐํ•ญ์„ ๋‘๊ณ  ์žˆ๋Š”๋ฐ, ๊ทธ๊ฒŒ ๋ฐ”๋กœ CORS์ด๋‹ค.

CORS์˜ ๋™์ž‘์›๋ฆฌ, CORS์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ์„ ๋•Œ์˜ ํ•ด๊ฒฐ๋ฒ• ๋“ฑ์€ ์•„๋ž˜ ์ถœ์ฒ˜๋ฅผ ์ฐธ๊ณ ํ•˜๊ณ  ์ถ”ํ›„ ๋” ์ž์„ธํžˆ ๊ธฐ๋กํ•˜์ž

์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• - FCP

FCP๋ž€ First Contentful Paint์˜ ์•ฝ์ž๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ํ™”๋ฉด์—์„œ ์ปจํ…์ธ ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€ ๋กœ๋“œ ํƒ€์ž„๋ผ์ธ์˜ ์ฒซ ์ง€์ ์„ ํ‘œ์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ์ง€ํ•˜๋Š” ์›น ํŽ˜์ด์ง€์˜ ๋กœ๋“œ ์†๋„๋ฅผ ์ธก์ •ํ•˜๋Š” ์ค‘์š”ํ•œ ์ง€ํ‘œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.
์ฆ‰, FCP๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋˜๊ธฐ ์‹œ์ž‘ํ•œ ์‹œ์ ์—์„œ ํŽ˜์ด์ง€ ์ปจํ…์ธ ์˜ ์ผ๋ถ€๊ฐ€ ์œ ์ €์—๊ฒŒ ์ฒ˜์Œ ๋ณด์—ฌ์ง€๋Š” ์ง€์ ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ์ข‹์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด FCP๋Š” 1.8์ดˆ ์ดํ•˜์—ฌ์•ผํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.
ํ•œํŽธ LCP(Large Contentful Paint)์€ ์ฃผ์š” ์ปจํ…์ธ ์˜ ๋กœ๋“œ๊ฐ€ ๋ชจ๋‘ ์™„๋ฃŒ๋œ ์‹œ์ ์„ ์ธก์ •ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.

์ถ”๊ฐ€) Lighthouse: ๊ตฌ๊ธ€์—์„œ ๊ฐœ๋ฐœํ•œ, ์›น ํŽ˜์ด์ง€์˜ ํ’ˆ์งˆ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ˜•ํƒœ์˜ ์ž๋™ํ™” ๋„๊ตฌ
Lighthouse๋ฅผ ํ†ตํ•ด FCP๋ฟ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ์›น์˜ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ํ‘œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

TCP์™€ UDP

TCP(Transmission Control Protocol)

  • ์ „์†ก์„ ์ œ์–ดํ•˜๋Š” ํ”„๋กœํ† ์ฝœ
  • ์ธํ„ฐ๋„ท์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”์„ธ์ง€ ํ˜•ํƒœ๋กœ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด IP์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ
  • ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ
  • IP๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฐฐ๋‹ฌ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด, TCP๋Š” ํŒจํ‚ฌ์„ ์ถ”์  ๋ฐ ๊ด€๋ฆฌํ•œ๋‹ค.
  • 3-way handshaking์œผ๋กœ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  4-way handshaking์œผ๋กœ ํ•ด์ œํ•œ๋‹ค.
  • ํ๋ฆ„ ์ œ์–ด ๋ฐ ํ˜ผ์žก ์ œ์–ด
  • ๋†’์€ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅ
  • UDP๋ณด๋‹ค๋Š” ๋Š๋ฆฐ ์†๋„

UDP(User Datagram Protocol)

  • ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ
    • ๋ฐ์ดํ„ฐ๊ทธ๋žจ: ๋…๋ฆฝ์ ์ธ ๊ด€๊ณ„๋ฅผ ์ง€๋‹ˆ๋Š” ํŒจํ‚ท
  • ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ
  • ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ, ์ •๋ณด ์†ก์‹ /์ˆ˜์‹ ์— ๋Œ€ํ•œ ์‹ ํ˜ธ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋‚ฎ์€ ์‹ ๋ขฐ์„ฑ
  • TCP๋ณด๋‹ค ๋น ๋ฅธ ์†๋„

TCP-UDP

Reference

http์™€ https
CORS
CORS-2
FCP
TCP-UDP