- ์น ํต์ ํ๋ฆ
- TCP UDP
- TCP 3,4 way handshake
- HTTP / HTTPS
- ์น ์์ผ
1. ์น ํต์ ํ๋ฆ
์น ํต์ ์ ํฐ ํ๋ฆ
- ํด๋ผ์ด์ธํธ ์์ฒญ
- DNS ์กฐํ๋ฅผ ํตํด ๋๋ฉ์ธ ๋ค์์ IP ์ฃผ์๋ก ๋ณํํ์ฌ ์๋ฒ์๊ฒ ์์ฒญ
- ์๋ฒ๋ ์์ฒญ์ ๋ฐ๊ณ ์์ฒญ์ ๋ง๋ ์ฒ๋ฆฌ๋ฅผ ํ ๋ค ๊ฒฐ๊ณผ ์์ฑ
- ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ HTTP ์๋ต์ผ๋ก ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ
- ์๋ฒ ์๋ต์ ๋ฐ์ ํ๋ฉด์ ํ์
Note
์น ํต์ ์ ๊ธฐ๋ณธ ํ๋ฆ์ ์ค๋ช ํด์ฃผ์ธ์
์น ํต์ ์ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ฒ๊ฐ ์ด๋ฅผ ์ฒ๋ฆฌํด ์๋ต์ ๋ฐํํ๋ ๊ณผ์ ์ ๋๋ค. ์ฌ์ฉ์๊ฐ url์ ์ ๋ ฅํ๊ฑฐ๋ ์์ฒญ์ ๋ฐ์์ํค๋ฉด DNS๋ฅผ ํตํด ์๋ฒ IP๋ฅผ ํ์ธํ๊ณ ์๋ฒ์ ์์ฒญ์ ์ ์กํฉ๋๋ค. ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ต ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๊ณ ํด๋ผ์ด์ธํธ๋ ์๋ต์ ๋ฐ์ ํ๋ฉด์ ํ์ํฉ๋๋ค.
DNS
- ์ฌ์ฉ์์๊ฒ ์น์ํ ๋๋ฉ์ธ ์ด๋ฆ์ ์ปดํจํฐ๊ฐ ์ธํฐ๋ท ํ๋กํ ์ฝ(IP)์ฃผ์๋ก ๋ณํํ๋ ์ธํฐ๋ท ํ์ค ํ๋กํ ์ฝ
IP
- ์ธํฐ๋ท ํ๋กํ ์ฝ, ๋คํธ์ํฌ์์ ์ ๋ณด๋ฅผ ์์ ํ๊ณ ์ก์ ํ๋ ํต์ ์ ๋ํ ๊ท์ฝ
NOTE
DNS์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
DNS๋ ๋๋ฉ์ธ ์ด๋ฆ์ IP ์ฃผ์๋ก ๋ณํํ๋ ์ญํ ์ ํฉ๋๋ค.
2. TCP UDP
TCP์ UDP์ ์ฐจ์ด์
- ๋คํธ์ํฌ์์ ๋ฐ์ดํฐ ์ ์ก์ ์ํ ํ๋กํ ์ฝ
TCP(Transmission Control Protocol)
- ์ฐ๊ฒฐ ๊ธฐ๋ฐ ํ๋กํ ์ฝ
- ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ ๋ณด์ฅ
- ๋คํธ์ํฌ ์ํ์ ๋ฐ๋ผ ๋ฐ์ดํฐ ์ ์ก ์๋ ์กฐ์
- ๋ฐ์ดํฐ ์์ ํ ํ์ธ ์๋ต์ ๋ฐ์
- HTTP, FTP, SMTP
UDP(User Datagram Protocol)
- ๋น์ฐ๊ฒฐ๊ธฐ๋ฐ ํ๋กํ ์ฝ
- ์ ์ก ์๋ ๋น ๋ฆ
- ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์์
- ๋จ์ํ ํ๋กํ ์ฝ
- ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ, DNS ์กฐํ
NOTE
TCP์ UDP์ ์ฐจ์ด์ ์ ์ค๋ช ํด์ฃผ์ธ์
TCP๋ ์ฐ๊ฒฐ ๊ธฐ๋ฐ ํ๋กํ ์ฝ๋ก ์ ๋ขฐ์ฑ๊ณผ ๋ฐ์ดํฐ์ ์์๋ฅผ ๋ณด์ฅํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค. UDP๋ ๋น์ฐ๊ฒฐ๊ธฐ๋ฐ ํ๋กํ ์ฝ๋ก ๋ฐ์ดํฐ์ ๋น ๋ฅธ ์ ์ก์ ์ค์ํ์ง๋ง ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์์ต๋๋ค.
NOTE
TCP์ UDP ์ค ์ด๋ ๊ฒ์ ์ ํํ ์ง ์ด๋ป๊ฒ ๊ฒฐ์ ํ๋์?
ํ์ผ ์ ์ก์ด๋ ์น ๋ธ๋ผ์ฐ์ง ๊ฐ์ด ๋ฐ์ดํฐ ์์ค์ด ํ์ฉ๋์ง ์๋ ์ ๋ขฐ์ฑ์ด ์ค์ํ ๊ฒฝ์ฐ์๋ TCP๋ฅผ ์ฌ์ฉํ๊ณ , ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ์ฒ๋ผ ์๋๊ฐ ์ค์ํ ๊ฒฝ์ฐ์๋ UDP๋ฅผ ์ฌ์ฉํฉ๋๋ค.
NOTE
TCP๋ ์ ๋ขฐ์ฑ์ ์ด๋ป๊ฒ ๋ณด์ฅํ๋์?
TCP๋ ๋ฐ์ดํฐ ํ์ธ ์๋ต์ ์ฌ์ฉํ๊ณ , ๋ฐ์ดํฐ ์์ค์ ์ฌ์ ์ก์ ์์ฒญํ๊ณ , ์ํ์ค๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์์๋ฅผ ๋ณด์ฅํ๊ณ , ์๋์ ์ ์ก๋์ ์กฐ์ ํด ํ๋ฆ๊ณผ ํผ์ก์ ์ ์ดํ์ฌ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
3. TCP 3,4 way handshake
TCP 3-Way Handshake
- ์์ ์ ์ธ ๋ฐ์ดํฐ ์ ์ก์ ๋ณด์ฅํ๊ธฐ ์ํด ํ์
- ๋คํธ์ํฌ ์ํ๋ฅผ ํ์ธํ์ฌ ํจํท ์์ค์ด๋ ์ค๋ณต ์ฐ๊ฒฐ ๋ฐฉ์ง
- SYN, ACK ํ๋๊ทธ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ ์์ฒญ(SYN)์ ๋ณด๋
- ์๋ฒ๋ ์์ฒญ์ ์๋ฝํ๊ณ ์๋ต(SYN-ACK)์ ๋ณด๋
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ต ํ์ธ(ACK)์ ๋ณด๋ด๋ฉฐ ์ฐ๊ฒฐ ์๋ฃ
- ์ค๊ฐ์ ์คํจ์ ์ฌ์ ์ก ์๋
- ์ค์ ๋ ์๊ฐ ๋ด ์๋ต์ด ์์ผ๋ฉด ์ฐ๊ฒฐ ์์ฒญ ์ข ๋ฃ
TCP 4-Way Handshake
- TCP์์ ์ฐ๊ฒฐ์ ์์ ํ๊ฒ ์ข ๋ฃํ๊ธฐ ์ํด ์ฌ์ฉ
- ์์ชฝ ๋ชจ๋ ์ฐ๊ฒฐ ์ข ๋ฃ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ
- FIN, ACK ํ๋๊ทธ
- ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ ์ข ๋ฃ ์์ฒญ(FIN)์ ๋ณด๋
- ์๋ฒ๊ฐ ์์ฒญ์ ํ์ธํ๊ณ (ACK)
- ์๋ฒ๊ฐ ์ฐ๊ฒฐ ์ข ๋ฃ ์์ฒญ(FIN)๋ณด๋
- ํด๋ผ์ธ์ธํธ๊ฐ ํ์ธ ์๋ต(ACK)์ ๋ณด๋ด๋ฉฐ ์ฐ๊ฒฐ ์ข ๋ฃ
NOTE
TCP 4-Way Handshake๊ฐ 3๋ฒ์ด ์๋ 4๋ฒ์ธ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
์์ธก์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ฐ๊ฒฐ ์ข ๋ฃ๋ฅผ ์ค๋นํ๊ธฐ ๋๋ฌธ์ 4๋จ๊ณ๋ฅผ ๊ฑฐ์นฉ๋๋ค.
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๊ฐ๊ฐ FIN์ ๋ณด๋ด๊ณ , ์๋๋ฐฉ์ ์ข ๋ฃ ์์ฒญ์ ACK๋ก ํ์ธ
- ๋น๋๊ธฐ๋ฐฉ์์ผ๋ก ์ข ๋ฃ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํ์
SYN Flooding
- ๊ณต๊ฒฉ์๊ฐ ๋ค์์ SYN ์์ฒญ์ ๋ณด๋ด์ง๋ง ACK ์๋ต์ ๋ณด๋ด์ง์์ ์๋ฒ๊ฐ ๋ฆฌ์์ค๋ฅผ ๊ณผ๋ค ์ฌ์ฉํ๊ฒ ๋ง๋ฌ
- ์๋ก์ด ์ฐ๊ฒฐ์ ์ฒ๋ฆฌํ ์ ์๊ฒ๋จ
NOTE
3-Way Handshake ๊ณผ์ ์์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ ๋ฌด์์ธ๊ฐ์?
- ๋คํธ์ํฌ ์ง์ฐ : SYN, SYN-ACK ํจํท์ด ์์ค๋๋ฉด ์ฌ์ ์ก์ด ๋ฐ์
- SYN Flooding : ์๋ฒ ๋ฆฌ์์ค ๊ณผ๋ํ ์ฌ์ฉ์ผ๋ก ์ธํ ์ฅ์
- ์ค๋ณต ์ฐ๊ฒฐ โ ํ์์์๊ณผ ์ฌ์ ์ก ๋ฉ์ปค๋์ฆ ์ ๊ณต
NOTE
TCP ์ฐ๊ฒฐ์ด ๋์ด์ง์ง ์๋๋ค๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์?
๋ฆฌ์์ค ๋์ ๋ฐ์
- ์๋ฒ๊ฐ ์ด๋ฆฐ ์ฐ๊ฒฐ์ ์ ์งํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์ CPU๋ฅผ ๊ณ์ ์ฌ์ฉ
- ๊ณ ์ ์ฐ๊ฒฐ ๋ฐ์
4. HTTP / HTTPS
HTTP์ HTTPS์ ์ฐจ์ด์
HTTP
- ์น ๋ธ๋ผ์ฐ์ ์ ์๋ฒ๊ฐ์ ๋ฐ์ดํฐ ์ ์ก์ ์ํ ํ๋กํ ์ฝ
- ์ํธํ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์
- ์ํธํ ๊ณผ์ ์ด ์์ด ์๋๊ฐ ๋น ๋ฆ
- ๋ณด์์ ์ทจ์ฝ
- ๊ธฐ๋ณธ ํฌํธ 80
HTTPS
- HTTP์ ๋ณด์ ๊ณ์ธต์ ์ถ๊ฐํ ํ๋กํ ์ฝ
- SSL/TLS๋ฅผ ํตํด ๋ฐ์ดํฐ ์ํธํ
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ
- ๊ธฐ๋ณธ ํฌํธ 443
NOTE
HTTP์ HTTPS์ ์ฐจ์ด๋ฅผ ์ค๋ช ํด๋ณด์ธ์
HTTP๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํ ํ์ง ์๊ณ ํ๋ฌธ์ผ๋ก ์ ์กํ๋ ํ๋กํ ์ฝ๋ก, ๋ณด์์ ์ทจ์ฝํฉ๋๋ค. HTTPS๋ SSL/TLS๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ๊ธฐ๋ฐ์ฑ, ๋ฌด๊ฒฐ์ฑ, ์ธ์ฆ์ ์ ๊ณตํฉ๋๋ค.
NOTE
HTTPS์ ๋์ ์๋ฆฌ๋ฅผ ๊ฐ๋จํ ์ค๋ช ํด๋ณด์ธ์.
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ฐ๊ฒฐ ์์ฒญ์ ๋ณด๋
- ์๋ฒ๋ SSL/TLS ์ธ์ฆ์๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋
- ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ์๋ฅผ ๊ฒ์ฆํ๊ณ , ์๋ฒ์ ๋์นญํค๋ฅผ ์์ฑํ์ฌ ๋ฐ์ดํฐ ์ํธํ
- ์ํธํ๋ ๋ฐ์ดํฐ ์ ์ก
NOTE
HTTPS๋ฅผ ์ฌ์ฉํ ๋ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
SSL/TLS ๊ณผ์ ์์ ๊ณต๊ฐํค ์ํธํ์ ์ธ์ฆ์ ๊ฒ์ฆ ์์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
5. ์น ์์ผ (webSocket)
์น ์์ผ์ด๋ ๋ฌด์์ด๋ฉฐ, ์ค์๊ฐ ํต์ ์์ ์ด๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง ์ค๋ช ํด์ฃผ์ธ์
์น ์์ผ(WebSocket)
-
์๋ฐฉํฅ ์ค์๊ฐ ํต์ ์ ์ํ ํ๋กํ ์ฝ
-
ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ์ง์์ ์ธ ์ฐ๊ฒฐ์ ์ ์งํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๊ฒ ํด์ค
-
HTTP๋ ๋จ๋ฐฉํฅ ํต์ , ์น ์์ผ์ ์๋ฐฉํฅ ํต์
-
์๋ฐฉํฅ ํต์ : ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ํธ ํต์ ๊ฐ๋ฅ
-
์ง์์ ์ธ ์ฐ๊ฒฐ : ์ง์์ ์ผ๋ก ์ด๋ฆฐ ์ํ์์ ๋ฐ์ดํฐ ์ ์ก ๊ฐ๋ฅ
-
๋ฎ์ ์ง์ฐ ์๊ฐ : ์์ ์ฐ๊ฒฐ์ด ์ ์ง๋๋ฏ๋ก ์ก์์ ์ ์ง์ฐ์๊ฐ ์งง์
-
ํจ์จ์ฑ : ์ฐ๊ฒฐ์ด ํ๋ฒ๋ง ์ด๋ฃจ์ด์ง๋ฉด ๋ฐ์ดํฐ ์ ์ก์ ๋ถํ์ํ ์ค๋ฒํค๋๊ฐ ์ ์
๋์๋ฐฉ์
- ํธ๋์ ฐ์ดํฌ : ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ HTTP ์์ฒญ์ ๋ณด๋ด๋ฉฐ ์ฐ๊ฒฐ ์์, ์์ฒญ ์๋ฝ์ HTTP ์ฐ๊ฒฐ์ด ์น ์์ผ ์ฐ๊ฒฐ๋ก ์ ๊ทธ๋ ์ด๋, ์ง์์ ์ธ ์ฐ๊ฒฐ
- ์๋ฐฉํฅ ํต์ : ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์
- ์ฐ๊ฒฐ ์ข ๋ฃ : ์ฐ๊ฒฐ ์ข ๋ฃ ์ close ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ์ฐ๊ฒฐ ์ข ๋ฃ
NOTE
์น ์์ผ์ด๋ ๋ฌด์์ธ๊ฐ์?
์น ์์ผ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ํ๋กํ ์ฝ๋ก, ํ ๋ฒ์ ์ฐ๊ฒฐ์ ํตํด ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ต๋๋ค. HTTP์ ๋ฌ๋ฆฌ ์น ์์ผ์ ์ฐ๊ฒฐ์ ๋์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ์กํ ์ ์์ด ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
NOTE
์น ์์ผ์ ์ด๋ป๊ฒ ์ค์๊ฐ ํต์ ์ ์ฌ์ฉ๋ ์ ์๋์?
์น ์์ผ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์ ์ง์์ ์ธ ์ฐ๊ฒฐ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ ๋ฉ๋๋ค. ์ฑํ ์ดํ๋ฆฌ์ผ์ด์ ์์๋ ์ฌ์ฉ์๊ฐ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ฉด ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ์ค์๊ฐ์ผ๋ก ์ ์กํ ์ ์๊ณ , ์จ๋ผ์ธ ๊ฒ์์์๋ ํ๋ ์ด์ด๊ฐ์ ์ํธ์์ฉ์ ์ฆ์ ๋ฐ์ํ ์ ์์ต๋๋ค.
NOTE
HTTP์ ์น ์์ผ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
HTTP๋ ์์ฒญ-์๋ต ๊ธฐ๋ฐ์ ๋จ๋ฐฉํฅ ํต์ ์ธ ๋ฐ๋ฉด, ์น ์์ผ์ ์๋ฐฉํฅ ํต์ ์ ์ง์ํฉ๋๋ค. HTTP๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ด๋ฉด ์๋ฒ๊ฐ ์๋ตํ๋ ๊ตฌ์กฐ์ธ ๋ฐ๋ฉด, ์น ์์ผ์ ์ฐ๊ฒฐ์ด ์ค์ ๋๋ฉด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ง์์ ์ธ ์ฐ๊ฒฐ์ด ์ ์ง๋์ด ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ต๋๋ค.
NOTE
์น ์์ผ์ ์ฃผ์ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์?
์๋ฐฉํฅ ์ค์๊ฐ ํต์ ์ ์ง์ํ๊ณ , ํ ๋ฒ์ ์ฐ๊ฒฐ๋ก ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค๋ ์ ์ ๋๋ค. ๋ํ HTTP์ ๋ฌ๋ฆฌ ํค๋๋ ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ์ ์ก๋์ง ์์ ํจ์จ์ ์ด๊ณ ์ง์ฐ ์๊ฐ์ด ์ ์ต๋๋ค.
NOTE
์น ์์ผ์ ๋จ์ ์ ๋ฌด์์ธ๊ฐ์?
์ง์์ ์ธ ์ฐ๊ฒฐ ์ ์ง๋ก ์ธํด ๋ฆฌ์์ค๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ณ , ์ผ๋ถ ๋คํธ์ํฌ ํ๊ฒฝ์์ ๋ฐฉํ๋ฒฝ์ด๋ ํ๋ก์ ์๋ฒ๊ฐ ์น ์์ผ ์ฐ๊ฒฐ์ ์ฐจ๋จํ ์ ์์ต๋๋ค. ๋ํ ์น ์์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ํธํ๋์ง ์์ ์ฑ๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ WSS๋ฅผ ์ฌ์ฉํด์ผ๋ง ์ํธํ๋ ์ฐ๊ฒฐ์ ์ ๊ณตํฉ๋๋ค.
NOTE
์น์์ผ์ ์ฌ์ฉํ๋ ๋๊ท๋ชจ ์์คํ ์์ ์๋ง ๋๋ ์๋ฐฑ๋ง ๋ช ์ ๋์ ์ฐ๊ฒฐ์ ์ง์ํ๋ ค๋ฉด ์ด๋ค ๋ฌธ์ ๋ค์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ์ ์ ์ ๊ทผ ๋ฐฉ์์ ๋ฌด์์ธ๊ฐ์?
์๋ฒ ๋ฆฌ์์ค ํ๊ณ: ์๋ง์ ์ฐ๊ฒฐ์ ์ ์งํ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ์ CPU ์ฌ์ฉ๋์ด ๊ธ์ฆํฉ๋๋ค. ํด๊ฒฐ ๋ฐฉ์: ์๋ฒ ํด๋ฌ์คํฐ๋ง ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ์ ์ฌ๋ฌ ์๋ฒ๋ก ๋ถ์ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด, Nginx์ Reverse Proxy ๋๋ AWS์ Application Load Balancer๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ์ํ ๊ด๋ฆฌ: ์น์์ผ ์ฐ๊ฒฐ์ ์ํ๋ฅผ ์ ์งํด์ผ ํ๋ฏ๋ก, ์๋ฒ ๊ฐ ์ฐ๊ฒฐ ์ํ๋ฅผ ๊ณต์ ํด์ผ ํฉ๋๋ค. ํด๊ฒฐ ๋ฐฉ์: Redis๋ Kafka ๊ฐ์ Pub/Sub ๋ฉ์์ง ๋ธ๋ก์ปค๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ๊ฐ ๋ฉ์์ง๋ฅผ ์ค๊ณํ๊ฑฐ๋, ์ฌ์ฉ์ ์ํ๋ฅผ ๊ณต์ ํฉ๋๋ค. ์ฐ๊ฒฐ ์ ํ: ๋จ์ผ ์๋ฒ์์ ์ฒ๋ฆฌํ ์ ์๋ ์ฐ๊ฒฐ ์์๋ ํ๊ณ๊ฐ ์์ต๋๋ค. ํด๊ฒฐ ๋ฐฉ์: ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ(์: Netty, Node.js)์ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ์ ์ผ๋ก ์ฐ๊ฒฐ์ ์ฒ๋ฆฌํ๊ฑฐ๋, ์๋ฒ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ๋ ํ๋กํ ์ฝ(์: MQTT)๋ก ์ ํํฉ๋๋ค.
NOTE
์ค์๊ฐ ์น์์ผ ์ฐ๊ฒฐ์์ ๋ฐ์ดํฐ ๋์ฒญ, ์๋ณ์กฐ, ๋๋ ์ธ์ฆ ์ฐํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ด๋ค ๋ณด์ ๋ฉ์ปค๋์ฆ์ ์ ์ฉํ ์ ์๋์? ๋ํ, ์ฐ๊ฒฐ ์๋ฆฝ ํ ์ธ์ฆ ํ ํฐ์ด ๋ง๋ฃ๋์์ ๋ ์ด๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ ์์๊น์?
๋ฐ์ดํฐ ๋ณดํธ: TLS ์ํธํ(HTTPS)๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ํธํํฉ๋๋ค. wss://๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ์ ์ก ์ค ๋์ฒญ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ๋ฉ์์ง์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด HMAC(ํด์ ๊ธฐ๋ฐ ๋ฉ์์ง ์ธ์ฆ ์ฝ๋)๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๋ฉ์์ง์ ์๋ช ํฉ๋๋ค.
์ธ์ฆ ์ฒ๋ฆฌ: ์ฐ๊ฒฐ ์ค์ ์ JWT ํ ํฐ์ด๋ OAuth ํ ํฐ์ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ๋ฅผ ์ธ์ฆํฉ๋๋ค. ์๋ฒ๋ ํ ํฐ์ ์ ํจ์ฑ์ ํ์ธํ๊ณ ์ฐ๊ฒฐ์ ์น์ธํฉ๋๋ค. ์ฐ๊ฒฐ ํ ํ ํฐ์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ, **๋ฆฌํ๋ ์ ํ ํฐ(refresh token)**์ ํตํด ์ ํ ํฐ์ ๋ฐ๊ธํ๊ฑฐ๋, ๋ง๋ฃ๋ ์ฐ๊ฒฐ์ ๊ฐ์ ๋ก ์ข ๋ฃํ๊ณ ์ฌ์ฐ๊ฒฐ์ ์์ฒญํฉ๋๋ค. ์ถ๊ฐ ๋ณด์:
IP ๊ธฐ๋ฐ ํํฐ๋ง: ๋น์ ์์ ์ธ ์ฐ๊ฒฐ ์๋๋ฅผ ์ฐจ๋จ. Rate Limiting: ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ ๋ฐ ๋ฉ์์ง ์ ์ก ๋น๋๋ฅผ ์ ํํ์ฌ ์๋น์ค ๊ฑฐ๋ถ ๊ณต๊ฒฉ(DoS) ๋ฐฉ์ง. CORS ์ ์ฑ : ํ์ฉ๋ ๋๋ฉ์ธ์์๋ง ์น์์ผ์ ์ฌ์ฉํ ์ ์๋๋ก ์ค์ .