๋คํธ์ํฌ์ ์ข ๋ฅ
๋คํธ์ํฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐ๊ฒฝ, ์๋์ ๋ฐ๋ผ LAN, MAN, WAN์ผ๋ก ๋๋ ์ ์๋ค.
LAN(Local Area Network) | MAN (Metropolitan Area Network) | WAN(Wide Area Network) | |
๋ฒ์ | ์ข์(์ฃผ๋ก ์ง, ์ฌ๋ฌด์ค, ๊ฑด๋ฌผ, ์บ ํผ์ค ๋ด์ ์ ํ๋ ์์ญ) | ๋์๋ ๋๋์์ ํต์ ๋ง์ ์๋ฏธ | ๋์(๊ตญ๊ฐ๋ ๋๋ฅ ๊ฐ์ ๋ฒ์) |
๊ตฌ์ฑ | ๋จ์ <------------------------------------> ๋ณต์ก | ||
์๋ | ๋น ๋ฆ <------------------------------------> ๋๋ฆผ |
* LAN : ์ ํํ๋ ๋์ผํ Subnet Mask๋ฅผ ์ด์ฉํ๋ค๋ฉด ๊ทผ๊ฑฐ๋ฆฌ ํต์ ๋ง์ด ๋๊ธฐ ๋๋ฌธ์ LAN์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
* MAN : ๋ ๊ฐ ์ด์์ LAN์ผ๋ก ์ฐ๊ฒฐ๋์ด ๊ตฌ์ฑ๋๋ฉฐ, ๋ผ์ฐํฐ / ๋ธ๋ฆฟ์ง ๋ฑ์ผ๋ก ์ฐ๊ฒฐ๋๋ค.
* WAN : ๋์ ์ง๋ฆฌ์ ์์ญ์ ๊ฑธ์ณ ๋ถ์ฐ๋ ๋ชจ๋ ๋๊ท๋ชจ ๋คํธ์ํฌ๋ฅผ WAN์ด๋ผ๊ณ ํ๋ฉฐ, ์ธํฐ๋ท๋ WAN์ผ๋ก ๋ณผ ์ ์๋ค.
๋คํธ์ํฌ์ ๊ณ์ธต
๊ณ์ธต ์ด๋ฆ | ์ค๋ช | ํ๋กํ ์ฝ | ์ ์ก๋จ์ | ์ฅ๋น |
์์ฉ ๊ณ์ธต (Application Layer) | ์ฌ์ฉ์์ ๋คํธ์ํฌ ๊ฐ ์์ฉ์๋น์ค ์ฐ๊ฒฐ, ๋ฐ์ดํฐ ์์ฑ | HTTP, FTP, SMTP, POP3, IMAP ๋ฑ | ๋ฐ์ดํฐ (Data) |
ํธ์คํธ (PC ๋ฑ) |
ํํ ๊ณ์ธต (Presentation Layer) | ๋ฐ์ดํฐ ํ์ ์ค์ , ๋ถํ ๊ตํ, ์·๋ณตํธํํด ๋ณํ | JPEG, MPEG ๋ฑ | ||
์ธ์ ๊ณ์ธต (Session Layer) | ์ก์์ ๊ฐ ๋ ผ๋ฆฌ์ ์ฐ๊ฒฐ ์ค์ ·์ ์, ๋๊ธฐํ ๊ธฐ๋ฅ | RPC, NetBIOS ๋ฑ | ||
์ ์ก ๊ณ์ธต (Transport Layer) | ์ก์์ ํ๋ก์ธ์ค ๊ฐ ์ฐ๊ฒฐ, ๋ฐ์ดํฐ ์ ์ก์ ์ ๋ขฐ์ฑ ๋ณด์ฅ, ๋ฐ์ดํฐ ๋ถํ / ์ฌ์กฐ๋ฆฝ / ํ๋ฆ·์ค๋ฅ·ํผ์ก ์ ์ด | TCP / IP, UDP ๋ฑ | ์ธ๊ทธ๋จผํธ (Segment) |
L4 ์ค์์น |
๋คํธ์ํฌ ๊ณ์ธต (Network Layer) | ๋จ๋ง๊ธฐ ๊ฐ ๋ฐ์ดํฐ ์ ์ก์ ์ํ ์ต์ ํ๋ ๊ฒฝ๋ก ์ ๊ณต, ๋ ผ๋ฆฌ์ ์ฃผ์(IP ์ฃผ์) ๊ด๋ฆฌ | IP, ICMP, RIP, OSPF ๋ฑ | ํจํท (Packet) |
๋ผ์ฐํฐ |
๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต (Data Link Layer) | ๋ฌผ๋ฆฌ์ ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ค์ , ์ธ์ ์์คํ ๊ฐ ๋ฐ์ดํฐ ์ ์ก, ๋๊ธฐํ, ์ค๋ฅ·ํ๋ฆ·ํ์ ์ ์ด | HDLC, PPP, ํ๋ ์ ๋ฆด๋ ์ด, ATM ๋ฑ | ํ๋ ์ (Frame) |
๋ธ๋ฆฌ์ง, L2 ์ค์์น |
๋ฌผ๋ฆฌ ๊ณ์ธต (Physical Layer) | ๋นํธ ์ ๋ณด๋ฅผ ํ์ ์ ๋ณด๋ด๊ธฐ ์ํ ์ ๊ธฐ์ ์ ํธ ๋ณํ | RS-232C | ๋นํธ(Bit) | ํ๋ธ, ๋ฆฌํผํฐ |
์บก์ํ, ์ญ์บก์ํ
๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํด์๋ ํค๋(* ๋ฐ์ดํฐ์ ์๋ถ๋ถ์ ์ ์ก ์ ํ์ํ ์ ๋ณด)๋ฅผ ๋ถ์ฌ ๋ค์ ๊ณ์ธต์ผ๋ก ๋ณด๋ธ๋ค.
์ด์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ๋ ์ธก์์ ํค๋๋ฅผ ๋ถ์ฌ๋๊ฐ๋ ๊ฒ์ ์บก์ํ๋ผ๊ณ ํ๋ฉฐ,
๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ์ธก์์ ํค๋๋ฅผ ํ๋์ฉ ์ ๊ฑฐํด๋๊ฐ๋ ๊ฒ์ ์ญ์บก์ํ๋ผ๊ณ ํ๋ค.
HTTP
HyperText Transfer Protocol์ ์ฝ์๋ก, ์น ๊ธฐ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก TCP/IP ํต์ ํ๋กํ ์ฝ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค.
ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
HTTP๋ ํด๋ผ์ด์ธํธ - ์๋ฒ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ, ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ํ๋ฉด ์๋ฒ์์ ์๋ตํ๋ ๋ฐฉ์์ด๋ค.
์ด ๋ ์์ฒญ / ์๋ต ์ ์ค๊ณ ๊ฐ๋ ๋ฉ์์ง๋ฅผ HTTP ๋ฉ์์ง๋ผ๊ณ ํ๋ค.
HTTP ๋ฉ์์ง๋ ๋ค์๊ณผ ๊ฐ์ ํํ๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
์ฒซ ์ค์๋ HTTP ์์ฒญ ๋ฉ์๋, URL ๊ฒฝ๋ก, HTTP ํ๋กํ ์ฝ ๋ฒ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ผ๋ฉฐ
๋ ๋ฒ์งธ ์ค๋ถํฐ๋ HTTP ์์ฒญ์ ํค๋๋ค์ธ๋ฐ, ํค๋๋ key:value ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํค๋์๋ ์น์ฌ์ดํธ ๋๋ฉ์ธ์ ํธ์คํธ, ์ธ์ด, ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๊ฐ์ ์ ๋ณด๊ฐ ์๋ค.
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept-Language: ko-KR
๋ธ๋ผ์ฐ์ ์ ๋คํธ์ํฌ ํญ์์๋ ํ์ธํด๋ณผ ์ ์๋๋ฐ, ์ผ์ชฝ์ ํค๋, ์ค๋ฅธ์ชฝ์ ํค๋ ๊ฐ๋ค์ด๋ค.
๋ฌด์ํ์ฑ
HTTP์์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ๊ธฐ์ตํ์ง ์๋๋ค.
HTTP ์์ฒญ์ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์, ํด๋ผ์ด์ธํธ์์๋ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ ๋ ๋ง๋ค ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋งค๋ฒ ํจ๊ป ๋ณด๋ด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด API์์ ์ฐ๊ฒฐํ๊ธฐ ์ํด ํ์ํ ํค๋ ํ ํฐ์ ๊ฒฝ์ฐ๋ผ๋๊ฐ, ๋ก๊ทธ์ธ ๋ ์ ์ ์ ์ ๋ณด ๋ฑ์ ์๋ฒ๊ฐ ๊ธฐ์ตํ์ง ๋ชปํ๋ฏ๋ก, ๋งค ์์ฒญ๋ง๋ค ํ ํฐ ๋ฑ์ ๋ณด๋ด์ ์ธ์ฆํด์ผ ํ๋ค.
(๋งค๋ฒ ์๋์ ๊ฐ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ณด๋ด์ผํ๋ค...)
GET /user/profile
Authorization: Bearer eyxxxxxxx...
๋น์ฐ๊ฒฐ์ฑ
HTTP์์๋ ์์ฒญ - ์๋ต์ด ๋๋๋ฉด ์ฐ๊ฒฐ์ด ๋ฐ๋ก ๋์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์, ์๋ฒ์์๋ ๋์์ ๋ง์ ์์ฒญ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ณ ์ฐ๊ฒฐ ์ค์ ์ง์ถ๋๋ ๋น์ฉ์ ์๋ ์ ์๋ค. (์์ฒญ - ์๋ต์ด ๋๋๋๋ผ๋ ์ฐ๊ฒฐ์ด ๊ณ์ ๋์ด์๋ค๋ฉด ์๋ฒ ๋น์ฉ์ด ์ง์ถ๋๋ค...)
HTTPS
Hypertext Transfer Protocol Secure์ ์ฝ์๋ก, ๋ชจ๋ ์์ฒญ ๋ฐ ์๋ต์ SSL(Secure Socket Layer) ๋ฐ TLS(Transport Layer Security) ํ๋กํ ์ฝ์ ๋ฐ๋ผ ๋ธ๋ผ์ฐ์ ์ ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ค.
์ํธํ ๋ฐฉ์
1. ๋์นญํค ์ํธํ ๋ฐฉ์
- ํ๋์ ํค๊ฐ ์กด์ฌํ๋ฉฐ, ์ํธํ, ๋ณตํธํํ ๋ ๋์ผํ ํค๊ฐ ์ฌ์ฉ๋๋ ๋ฐฉ์
- ์๋๊ฐ ๋น ๋ฅด์ง๋ง ๋ณด์์ฑ์ด ๋ฏธํกํจ
2. ๋น๋์นญ ํค(๊ณต๊ฐ ํค) ๋ฐฉ์
- ๋ ๊ฐ์ ํค๊ฐ ์กด์ฌํ๋ฉฐ, ์ํธํํ๋ ํค์ ๋ณตํธํํ๋ ํค๊ฐ ๋ค๋ฅธ ๋ฐฉ์
- ์ํธํ ์ฐ์ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋น์ฉ์ด ํผ
HTTPS์์๋ ๋ ๊ฐ์ง ๋ฐฉ์์ ๋ชจ๋ ์ฌ์ฉํ๋ค! โฌ๏ธ

์๋ฒ ↔ ์ธ์ฆ๊ธฐ๊ด
1) ์๋ฒ๊ฐ ์ธ์ฆ๊ธฐ๊ด์ ์์ ์ ๊ณต๊ฐํค๋ฅผ ๋ณด๋
2) ์ธ์ฆ ๊ธฐ๊ด์ ํด๋น ์๋ฒ๊ฐ ์ ๋ขฐํ ์ ์๋ ์๋ฒ์ธ์ง ํ์ธํ๊ณ , ์ ๋ขฐํ ์ ์๋ค๊ณ ํ๋จ ๋๋ฉด ์ธ์ฆ ๊ธฐ๊ด์ ๋น๋ฐํค๋ก ์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ์ํธํ
3) ์ธ์ฆ๊ธฐ๊ด์ด ๋ฐ๊ธ๋ ์ธ์ฆ์๋ฅผ ์๋ฒ์๊ฒ ์ ๋ฌ
4) ์๋ฒ์์๋ HTTPS ์ฌ์ฉ ๊ฐ๋ฅ
ํด๋ผ์ด์ธํธ ↔ ์๋ฒ
5) ํด๋ผ์ด์ธํธ๊ฐ HTTPS๋ก ์ ์ ์์ฒญ
6) ์๋ฒ๊ฐ HTTPS ํต์ ์ ์ํด ์ธ์ฆ์ ์ ๋ฌ
7) ํด๋ผ์ด์ธํธ๋ ๋ธ๋ผ์ฐ์ ์ ๋ด์ฅ๋ ์ธ์ฆ ๊ธฐ๊ด ๋ฆฌ์คํธ๋ฅผ ํ์ธ ํ, ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ ๊ธฐ๊ด์ด๋ฉด ๊ฐ์ง๊ณ ์๋ ๊ณต๊ฐํค๋ก ์ธ์ฆ์ ๋ณตํธํ ์๋
7-1) ๋ง์ฝ ๋ณตํธํ๊ฐ ์๋๋ค๋ฉด ์ธ์ฆ์๊ฐ ์๋ชป๋ ๊ฒ => HTTPS ์ฐ๊ฒฐ ์คํจ
8) ๋ณตํธํ ์ฑ๊ณต => ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ๊ณต๊ฐํค ํ๋
9) ํด๋ผ์ด์ธํธ ์ธก์์ ๋์นญํค ์์ฑ
10) ์๋ฒ์ ๊ณต๊ฐํค๋ก ๋์นญํค๋ฅผ ์ํธํ
11) ์ํธํํ ๋์นญํค๋ฅผ ์๋ฒ๋ก ์ ์ก
12) ๋น๋ฐํค๋ก ๋ณตํธํํด ๋์นญํค ํ๋
13) HTTPS ์ฐ๊ฒฐ ์ฑ๋ฆฝ!
=> ์ดํ๋ก๋ ๋ฐ์ดํฐ ๊ต๋ฅ ์ ๋์นญํค๋ฅผ ์ด์ฉํด ์ํธํ ๋ฐ ๋ณตํธํ
HTTPS ์ธ์ฆ ๋ฐฉ์
- ๋น๋์นญ ํค ๋ฐฉ์ -> ์ธ์ฆ์ ๋ฐ๊ธ & ๊ฒ์ฆํ ๋, ๋์นญํค๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋
- ๋์นญ ํค ๋ฐฉ์ -> ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋
SOP_CORS
SOP
Same-Origin Policy (๋์ผ ์ถ์ฒ ์ ์ฑ )์ ์ฝ์๋ก, ๋์ผํ ์ถ์ฒ(Origin)์ ์์๋ง ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฉฐ, ์๋ก ๋ค๋ฅธ ์ถ์ฒ๊ฐ์ ๋ฆฌ์์ค ์ ๊ทผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐจ๋จํ๋ค.
์ถ์ฒ(Origin) : ํ๋กํ ์ฝ + ๋๋ฉ์ธ + ํฌํธ
์ ์ธ ๊ฐ์ง๊ฐ ๋ชจ๋ ๊ฐ์์ผ ๋์ผ ์ถ์ฒ๋ก ํ๋จ๋๋ค!
ex) https://example.com:443 ๋ผ๋ origin์ด ์๋ค๋ฉด
http://example.com → ํ๋กํ ์ฝ ๋ค๋ฆ
https://api.example.com → ๋๋ฉ์ธ ๋ค๋ฆ
https://example.com:3000 → ํฌํธ ๋ค๋ฆ
ex) http://localhost:5174
http://localhost:3000 → ํฌํธ ๋ค๋ฆ
https://localhost:5174 → ํ๋กํ ์ฝ ๋ค๋ฆ
http://127.0.0.1:5174 → ํธ์คํธ ๋ค๋ฆ
CORS
Cross Origin Resource Sharing (๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ )์ ์ฝ์๋ก, ๋ค๋ฅธ ๋๋ฉ์ธ, ํ๋กํ ์ฝ ๋๋ ํฌํธ ๊ฐ ์น ํ์ด์ง์ ์๋ฒ์ ์์์ ๊ณต์ ํ ์ ์๋๋ก ํ์ฉํ๋ ๋ณด์ ๋ฉ์ปค๋์ฆ์ด๋ค. SOP๋ก ์ธํด ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐจ๋จ๋ ์์ฒญ์ ํ์ฉํ ์ ์๊ฒ ํ๋ ๋ฉ์ปค๋์ฆ์ด๋ค.
CORS๊ฐ ๊ฐ๋ฅํ๋๋ก ์ค์ ํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์๋ฒ์์ ์ง์ ์๋ต ํค๋๋ฅผ ์ธํ
ํ๋ ๊ฒ์ด๋ค.
CORS ํค๋
- Access-Control-Allow-Origin: ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋ ์ฃผ์
- Access-Control-Allow-Methods: ์๋ฒ์์ ํ์ฉํ HTTP ๋ฉ์๋
- Access-Control-Allow-Headers: ์๋ฒ์์ ํ์ฉํ HTTP ํค๋
- Preflight Request (์ฌ์ ์์ฒญ) : ๋ณธ๊ฒฉ์ ์ธ ์์ฒญ ์ ์ ์๋ฒ ์ธก์์ ๊ทธ ์์ฒญ์ ๋ฉ์๋์ ํค๋์ ๋ํด ์ธ์ํ๊ณ ์๋์ง๋ฅผ ํ์ธํ๋ CORS ์์ฒญ (๋ง ๊ทธ๋๋ก ์ฌ์ ์ ๋ฏธ๋ฆฌ ์์ฒญํด๋ณด๋ ๊ฒ)
์ฐธ๊ณ
LAN : https://aws-hyoh.tistory.com/entry/LAN-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
WAN : https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-a-wan/
OSI 7๊ณ์ธต : ์์ ๋น - ์ ๋ณด์ฒ๋ฆฌ์ฐ์ ๊ธฐ์ฌ ์ค๊ธฐ
์บก์ํ/์ญ์บก์ํ : https://80000coding.oopy.io/2a16be4e-9187-4ce7-86b0-cb8e7b1e26af
HTTP : https://docs.tosspayments.com/resources/glossary/http-protocol
HTTPS : https://velog.io/@ddangle/HTTPS%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%95%94%ED%98%B8%ED%99%94%ED%95%98%EB%8A%94%EA%B0%80
CORS : https://en.wikipedia.org/wiki/Cross-origin_resource_sharing#:~:text=CORS%20(%20%EA%B5%90%EC%B0%A8%20%EC%B6%9C%EC%B2%98%20%EB%A6%AC%EC%86%8C%EC%8A%A4%20%EA%B3%B5%EC%9C%A0,%EC%9E%88%EB%8F%84%EB%A1%9D%20%ED%97%88%EC%9A%A9%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9E%85%EB%8B%88%EB%8B%A4.
Preflight Request : https://developer.mozilla.org/ko/docs/Glossary/Preflight_request
'Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Node.js / ํ ํฐ(Token) (0) | 2025.05.15 |
---|---|
Node.js / ์ธ์ (Session) (0) | 2025.05.14 |
Node.js / ์ฟ ํค(Cookie) (0) | 2025.05.14 |