๐ HTTP VS SOCKET ๋น๊ต
HTTP ํต์
- ์ ์ : ์๋ฒ - ํด๋ผ์ด์ธํธ๊ฐ ํต์ ํ๊ธฐ์ํ ํ์ค ํ๋กํ ์ฝ์ด๋ค. Request โ Response ๊ตฌ์กฐ๋ก ํต์ ํ๋ฉฐ ๋จ๋ฐฉํฅ ํต์ ๋ฐฉ์์ด๋ค. Http์ ๋ํ์ ์ธ ํน์ฑ์ ์๋์ ๊ฐ๋ค.
- Connectionless - ๋น์ฐ๊ฒฐ์ฑ ํน์ฑ
- ๋ชจ๋ ์ฐ๊ฒฐ์ ๋ํ์ฌ ์ฐ๊ฒฐ์๋ โ ํด์ ๊ณผ์ (Preflight Request & Response)์ ๊ฑฐ์น๋ฉฐ ํต์ ์ ๊ฑฐ์น๋ค.
- ํต์ ์ด ์ข
๋ฃ๋๋ฉด ์ฐ๊ฒฐ์ ๋๋๋ค.
- ์ด๋ฅผํตํด ์ฐ๊ฒฐ์ ์ง ๋ฆฌ์์ค ๋น์ฉ์ ๋ฎ์ถ ์ ์๋ค.
- ํ์ง๋ง ๋งค ํต์ ๋ง๋ค Preflight Request & Response ๊ณผ์ ์ ๊ฑฐ์น๋ฉฐ ์ค๋ฒํค๋๊ฐ ๋ฐ์.
- ์ด์, KeepAlive๋ผ๋ ์ต์
์ด ๋ฑ์ฅ.
- KeepAlive๋ ์ผ์ ์๊ฐ(์ง์ ๋ ์๊ฐ) ๋์ ํต์ ์ด ์์ ๊ฒฝ์ฐ ํจํท์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ณด๋ด ์ฐ๊ฒฐ์ ์ ์งํ๋ ๋ฐฉ์. ๋จ, ๋ฉ๋ชจ๋ฆฌ ์ ์ ์จ์ด ๋์์ง๋ ๋จ์ ์ด ์กด์ฌ.
- Stateless
- Connectionless๋ก ์ธํด ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ ์ ์๋ค.
- ๋๋ฌธ์ JWT Token๋ฑ์ผ๋ก ์๋ฒ๋ ์ ์ ์๋ณ์ด ๊ฐ๋ฅํ๋ค. ๋งค๋ฒ ์๋ก์ด ์ธ์ฆ ๊ณผ์ ์ ๊ฑฐ์นจ.
- Connectionless - ๋น์ฐ๊ฒฐ์ฑ ํน์ฑ
Socket ํต์
- ์ ์ : ์ HTTP ํต์ ๋ฐฉ์์์๋ 1:1 Request โ Response ๋ฐฉ์์ผ๋ก ํต์ ํ๋ค๋ฉด, Socketํต์ ์์๋ ๋๊ฐ ์ด์์ ํ๋ก์ธ์ค ๊ฐ์ ์ค์๊ฐ(์ฐ๊ฒฐ์ ์ง) ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํต์ ๋ฐฉ์์ผ๋ก TCP์ UDP๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ค.
- TCP Socket
- Three Hand Shake๋ฅผ ๊ฑฐ์น๋ฏ๋ก ๋ฐ์ดํฐ ์ค๋ฅ ๋ฐ ์ ์ก ์ฒ๋ฆฌ ํ๋ฆ์ ์ด๋ฅผ ๋ณด์ฅํ Socket ํต์
- ์๋ฐฉํฅ ๋ฐ์ดํธ ์คํธ๋ฆผ ์ ์ก, ์ฐ๊ฒฐ ์งํฅ
- ๋๋์ ๋ฐ์ดํฐ ์ ์ก์ ์ ํฉ
- UDP Socket
- ๋น์ฐ๊ฒฐํ ์์ผ
- ๋ฐ์ดํฐ ํฌ๊ธฐ์ ์ ํ์ด ์กด์ฌ
- ์ ๋ฌ ๋ณด์ฅ X
- ์ฃผ๋ก ์ค์๊ฐ ๋ฉํฐ๋ฏธ๋์ด ์ ๋ณด์ ์ก์ ์ ํฉํ๋ค. (Ex> Video, ์์ฑ)
- Socket์ ์์ฑํ๊ณ โ ํน์ ํฌํธ์ ๋ฐ์ธ๋ฉํ๊ณ Listening์ ์ ์งํ๋ค.
- ์ด์ ํด๋ผ์ด์ธํธ์์๋ Connect()๋ฅผ ์งํํ๊ณ โ ์๋ฒ๋ ์ฐ๊ฒฐ์ ๋ํ์ฌ Acceptํ๋ค.
- ์ดํ Socket์ ํตํด ํต์ ์ ์งํํ๋ค.
- socket.emit(โeventNameโ, โMessageโ); - ๋ฉ์ธ์ง๋ฅผ ์ ์กํ๋ ์ญํ ์ ํจ.
- socket.on(โeventNameโ); - ๋ฉ์ธ์ง๋ฅผ ๋ฐ๋ ์ญํ ์ ํจ.
- ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ๊ฑฐ๋ Socket์ ๋ซ์์ผ๋ก์จ ํต์ ์ด ์ข ๋ฃ.๋์๋ฐฉ์
- TCP Socket

- ๋จ์์์ฝ ๐คฉ
- Socket ๊ด ํ์ดํ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ์ - Socket ์์ฑ
- ์ด ํ์ดํ๋ฅผ ๊ท๋ฅผ ๋๊ณ ๋ฃ๊ณ ์๋ค - socket.on
- ์ฌ๊ธฐ์ ๋๊ณ ์๋ฆฌ๋ฅผ ์ง๋ฌ ๋ง์ํ๋ค. - socket.emit
- BroadCast 1: N
๐ ์๊ณ ๊ฐ์ Polling !
- Polling ์ด๋ ?
- Real Time ์ ์ํ ๊ธฐ๋ฒ์ผ๋ก ์ผ์ ์ฃผ๊ธฐ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ Request โ Response๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ์.
- ๋ฌธ์ ์
- รฅํด๋ง ์ฃผ๊ธฐ๊ฐ ์งง์ ์๋ก ํจํท๊ตํ์ด ๋ง์ด ์ผ์ด๋๋ฏ๋ก ๋น์ฐํ ์๋ฒ๋ถํ๋ฌธ์ ๋ฐ์.
- ์ด์ ๋กฑํด๋ง ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ (์ฃผ๊ธฐ๋ฅผ ๊ธธ๊ฒํจ) ๊ฐ์ ํ ์ ์๋๋ฐ, ์ฃผ๊ธฐ๊ฐ ๊ธธ์๋ก ์ค์๊ฐ์ฑ ์ฌ๋ผ์ง๋ ๋ฌธ์ ๊ฐ ์ฌ์ ํ ์กด์ฌํจ.
'Web Development > Back-end' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Nestjs ํ๋์ ๊ธฐ๋ณธ ์ ๋ฆฌ (0) | 2023.05.01 |
---|---|
HTTP & HTTPS & SSL ์ดํดํ๊ธฐ (0) | 2023.05.01 |
์ธ์ฆ ์ธ๊ฐ ๋ฐฉ์ ๋น๊ต (0) | 2023.05.01 |
Nestjs & Docker & Github Action ํ์ฉ ์๋ ๋ฐฐํฌ ๊ตฌ์ถํ๊ธฐ (2) | 2023.05.01 |
[CICD] Github Action (CI) + CodeDeploy (CD) (0) | 2022.10.10 |