WebSocket
์ค๋ช
TCP ์ ์์ ์ ์ด์ค ํต์ ์ฑ๋์ ์ ๊ณตํ๋ ์ปดํจํฐ ํต์ ํ๋กํ ์ฝ
HTTP ํด๋ง๊ณผ ๊ฐ์ ๋ฐ์ด์ค ๋ฐฉ์์ ๋นํด ๋ ๋ฎ์ ๋ถํ๋ฅผ ์ฌ์ฉํ์ฌ ์น ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ๊ฐ์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํจ.
์๋ฒ๊ฐ ๋ด์ฉ์ ํด๋ผ์ด์ธํธ์ ๋ณด๋ด๋ ํ์คํ๋ ๋ฐฉ์์ ์ ๊ณต
์ฐ๊ฒฐ์ด ์ ์ง๋ ์ํ์์ ๋ฉ์ธ์ง๋ค์ ์ค๊ฐ ์ ์๊ฒ ํ์ฉํจ. (์๋ฐฉํฅ)
โป ์ ์ด์ค ํต์ (Full Duplex)
๋ ์ง์ (์์๊ณผ ๋) ์ฌ์ด์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ ์ ํต์ ์์คํ
โป TCP (Transmission Control Protocol), ์ ์ก์ ์ดํ๋กํ ์ฝ
์๋ฒ๋ผ๋ฆฌ ํต์ ์ ํ๊ธฐ ์ํ ๊ท์ฝ(ํ๋กํ ์ฝ)
์น๋ธ๋ผ์ฐ์ ๋ค์ด WWW์ ์๋ฒ ์ฐ๊ฒฐํ ๋ ์ฌ์ฉ
์ด๋ฉ์ผ ์ ์ก ๋ฐ ํ์ผ ์ ์ก์ ์ฌ์ฉ
โฑ ์ต์ด ์ฐ๊ฒฐ์
1. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์น์์ผ ํธ๋์
ฐ์ดํฌ ์์ฒญ์ ๋ณด๋
2. ์๋ฒ๋ ์น์์ผ ํธ๋์
ฐ์ดํฌ ์๋ต์ ๋ณด๋
3. ์ดํ๋ก ํด๋ผ์ด์ธํธ๋ ์์ฒญ์ ๋ํ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์์ฒญ์ ๋ณด๋ผ์ ์์. (!= HTTP)
Websocket in Spring
๊ด๋ จ ์์
https://spring.io/guides/gs/messaging-stomp-websocket/ ์ ์ฐธ๊ณ ํ์ฌ ์ค์ต์ ํด ๋ณด์๋ค.
ํด๋น ๋งํฌ๋ STOMP(Simple Text Messaging protocol)์ ์ฌ์ฉํ์๋ค.
โป STOMP(Simple Text Messaging protocol)
ํ ์คํธ ๊ธฐ๋ฐ ๋ฉ์ธ์ง ํ๋กํ ์ฝ
์ด๋ฅผ ์ด์ฉํ์ฌ Binary, Text๊ฐ ์๋ ๊ท๊ฒฉ์ ๋ง์ถ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ผ ์ ์๋ค.
๋ฐํ(pub), ๊ตฌ๋ (sub), ๋ฉ์ธ์ง๋ธ๋ก์ปค(=๋ฐ์ ์๊ฐ ๋ฉ์ธ์ง ๋ฐ์์ ์์ ์์๊ฒ ์ ๋ฌ) ๋ฑ์ ๊ฐ๋ ์ด ์๋ค.
+ Fallback Options์ผ๋ก SockJS์ ์ฌ์ฉํ์๋ค.
ํ ์คํธ ํ๋ฉด
๋ธ๋ผ์ฐ์ ์์ Send ๋ฒํผ ํด๋ฆญ ์, /app/hello ์ ํธ์ถํ๊ณ
๋ฉ์ธ์ง ๋ธ๋ก์ปค ํธ๋ค๋ฌ ๋ด์์ ์ฒ๋ฆฌ ํ /topic/greetings ์ผ๋ก ๊ฒฐ๊ณผ์ ๋ณด๋ฅผ ๋ฐํํจ!
์ฐธ๊ณ
๋งํฌ: https://ko.wikipedia.org/wiki/%EC%9D%B4%EC%A4%91%ED%86%B5%EC%8B%A0
๋งํฌ: https://ko.wikipedia.org/wiki/%EC%9B%B9%EC%86%8C%EC%BC%93
๋งํฌ: https://namu.wiki/w/TCP
๋งํฌ: https://tecoble.techcourse.co.kr/post/2021-09-05-web-socket-practice/
๋งํฌ: https://tech.kakao.com/2020/06/22/websocket-part3/
๋งํฌ: https://www.youtube.com/watch?v=rvss-_t6gzg
'๊ฐ๋ฐ > spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AOP] AOP ์ ์ฉ ๊ด๋ จ ์ด์ (0) | 2024.05.14 |
---|---|
ํธ๋์ญ์ (0) | 2021.11.25 |
Spring - ์คํ๋ง MVC ๊ฐ๋จ ์ ๋ฆฌ (0) | 2021.06.05 |
Spring - DI (Dependency Injection) (0) | 2021.06.01 |
Spring - AOP(Aspect-Oriented Programming) (0) | 2021.05.25 |