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
์ด์คํต์ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์
์ด์คํต์ (duplex) ๋๋ ์๋ฐฉํฅ ํต์ ์ ๋ ์ง์ ์ฌ์ด์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ ์ ํต์ ์์คํ ์ ๋งํ๋ค. ์ด์ค ํต์ ์ ํ ๋ ์ ์ก ๋ฐฉํฅ๋ง๋ค ๋ ๊ฐ์ ํต์ ์ ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ์ํ์ง๋ง ์ ์ก๋ก๋ฅผ ์๋ผ
ko.wikipedia.org
๋งํฌ: https://ko.wikipedia.org/wiki/%EC%9B%B9%EC%86%8C%EC%BC%93
์น์์ผ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์
์น์์ผ(WebSocket)์ ํ๋์ TCP ์ ์์ ์ ์ด์ค ํต์ ์ฑ๋์ ์ ๊ณตํ๋ ์ปดํจํฐ ํต์ ํ๋กํ ์ฝ์ด๋ค. ์น์์ผ ํ๋กํ ์ฝ์ 2011๋ IETF์ ์ํด RFC 6455๋ก ํ์คํ๋์์ผ๋ฉฐ ์น IDL์ ์น์์ผ API๋ W3C์ ์ํด ํ์ค
ko.wikipedia.org
์ ์ก ์ ์ด ํ๋กํ ์ฝ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์
์ ์ก ์ ์ด ํ๋กํ ์ฝ(Transmission Control Protocol, TCP, ๋ฌธํ์ด: ์ ์ก์กฐ์ข ๊ท์ฝ)์ ์ธํฐ๋ท ํ๋กํ ์ฝ ์ค์ํธ(IP)์ ํต์ฌ ํ๋กํ ์ฝ ์ค ํ๋๋ก, IP์ ํจ๊ป TCP/IP๋ผ๋ ๋ช ์นญ์ผ๋ก๋ ๋๋ฆฌ ๋ถ๋ฆฐ๋ค. TCP๋ ๊ทผ๊ฑฐ๋ฆฌ ํต์
ko.wikipedia.org
๋งํฌ: https://namu.wiki/w/TCP
๋งํฌ: https://tecoble.techcourse.co.kr/post/2021-09-05-web-socket-practice/
์น ์์ผ์ ๋ํด ์์๋ณด์! - ์ค์ ํธ
์น ์์ผ์ ๋ํด ์์๋ณด์! - ์ค์ ํธ ์ด๋ฒ ๊ธ์์๋ ์ ๋ฒ์ ์์ฑํ๋ ์น ์์ผ ์ด๋ก ํธ์ ์ด์ด์, ์คํ๋ง ํ๊ฒฝ์์ ์น ์์ผ์ ์ฌ์ฉํ๋ ๋ฒ์ ๋ํด ๋ค๋ฃจ๋ ค๊ณ ํ๋ค. STOMP ๊ตฌํํ๊ธฐ์ ์์, ์ฐ๋ฆฌ๋ ์
tecoble.techcourse.co.kr
๋งํฌ: https://tech.kakao.com/2020/06/22/websocket-part3/
์ค์๊ฐ ๋๊ธ ๊ฐ๋ฐ๊ธฐ(part.3) - Spring์ ๋์์ฑ ์ ๊ทผ ์ ์ด์ ๋ฐ๋ชฉ ์กํ ์ด์ผ๊ธฐ
์ ํธ(์ค์๊ฐ ๋๊ธ ๊ฐ๋ฐ๊ธฐ(part.2) โ ํ๋ํ์ง๋ง ์ ์ตํ๋ ์น์์ผ ์คํธ๋ ์ค ํ ์คํธ ๋ฐ ์์ ํ ์์ )์์ ๊ณต์ ๋๋ฆฐ ๋ฐ์ ๊ฐ์ด ๋ค์ํ ๋ชจ๋ํฐ๋ง ๋ฐ ๋๋ฒ๊น ํด์ ์ค์ ํ์ฉ ์ฌ๋ก์ธ Spring SimpleBroker ํ
tech.kakao.com
๋งํฌ: 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 |