ํฐ์คํ ๋ฆฌ ๋ทฐ
WebSocket
๐ก ํ ๋ฒ ์ฐ๊ฒฐํด์ ์ง์์ ์ผ๋ก ์๋ฐฉํฅ ํต์ ์ผ๋ก ์๋ก ์ํธ์์ฉ์ด ๊ฐ๋ฅํ TCP ํ๋กํ ์ฝ
HTTP VS WebSocket ์ฐจ์ด
์ฃผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ๋ HTTP ํ๋กํ ์ฝ๊ณผ WebSocket์ ๋น๊ตํด๋ณด์.
HTTP | WebSocket |
๋น ์ฐ๊ฒฐ์ฑ | ์ฐ๊ฒฐ ์งํฅ |
ํด๋ผ์ด์ธํธ - ์๋ฒ | ์๋ฐฉํฅ ํต์ |
๊ตฌํํ๊ธฐ
๊ตฌํ ๋ด์ฉ : ์น ์์ผ์ ํตํด Echo ์๋ฒ๋ฅผ ๊ตฌํ ํด๋ณธ๋ค.
1. ์์กด์ฑ ์ถ๊ฐํ๊ธฐ : WebSocket, Lombok
2. WebSocket Handler ์์ฑ
- WebSocketSession ์ ์บ์ฑ ํ๋ ์ด์ ๋ ์ถํ ํด๋น ์ธ์
๋ค์ ์๋ฒ์์ ๊ฐ์ ์ ๋ฌํ ํ์๊ฐ ์๊ธธ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด ์ฑํ ์๋ฒ์์ ํ ์ฌ๋์ด ์ ์กํ ๋ฉ์์ง๋ฅผ ํด๋น ์๋ฒ์ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํด์ผ ํ ๋ ํด๋น Set ์ ํ๋์ฉ ๋๋ฉด์ ๋ฉ์์ง๋ฅผ ์ ์กํ ์ ์๋ค.
- WebSocketSession ์ ์ฐ๊ฒฐ๋ ํต์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค.
- handleTextMessage ๋ฅผ ํตํด ๋ฉ์์ง๋ฅผ ์์ ํ ์ ์๋ค.
- WebSocketSession.sendMessage(TextMessage) ๋ฅผ ํตํด ๋ฉ์์ง๋ฅผ ์ก์ ํ ์ ์๋ค.
3. ์ค์ ํ์ผ ์ง์
- EchoWebSocketHandler ๋ฅผ /echo URI๋ก ๋ฑ๋กํ๋ค
๊ฒฐ๊ณผ
- Postman ์ ํตํ ์น ์์ผ ๊ฒฐ๊ณผ ํ์ธ
- WebSocket Request ์์ฑ
2. ws://localhost:8080/echo ๋ก ์น ์์ผ ์ฐ๊ฒฐ
3. Connect -> ๋ฉ์์ง ์ ์ก -> DisConnect
Spring Boot์์ ์น ์์ผ ๋จ์
- HTTP ํ๋กํ ์ฝ ์ฒ๋ผ ํฌ๋งท์ด ์ ํด์ ธ ์์ง ์์, ์ปค์คํ ํ ํ๋กํ ์ฝ์ด ์ ์ํด ์ง์ผ์ผ ํ๋ค.
- ์ฐ๊ฒฐ ์ฃผ์๋ง๋ค ํธ๋ค๋ฌ๋ฅผ ๊ตฌํํ๊ณ ๋ฑ๋กํด์ฃผ์ด์ผ ํ๋ค.
- Spring Security ์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
๋๋์
์น ์์ผ์ ํ์ฉํด ์ฑํ ์๋ฒ๋ฅผ ์ ์ฝ๊ฒ ๋ง๋ค ์ ์์ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. ๋ค๋ง, ์ฐ๊ฒฐ ํด๋ผ์ด์ธํธ ํ๋ ๋น ํ๋์ ํฌํธ๋ฅผ ์ก์ ๋จน๋๋ค๋ฉด ํ๋์ ์๋ฒ์์ ๋ช ๋ช ์ ์ฌ์ฉ์๋ฅผ ๊ฐ๋นํ ์ ์์๊น? ๊ทธ ์๊ฐ ์ ์ ํธ์ด๋ผ๋ฉด ์นด์นด์คํก ๊ฐ์ ์ ๊ตญ๋ฏผ์ด ์ฌ์ฉํ๋ ์ฑํ ์ดํ์ ์ด๋ฌํ ์์ผ์ฐ๊ฒฐ์ ํตํด ๊ณผ์ฐ ์ฑํ ์ ๊ตฌํํ ์ ์์๊น?
์ฝ๋๋ฅผ ํฌํจํ Git Repository
์ฐธ์กฐ
- https://www.baeldung.com/java-websockets
- https://www.baeldung.com/postman-websocket-apis
- https://www.baeldung.com/rest-vs-websockets
- https://developer.mozilla.org/ko/docs/Web/API/WebSockets_API
- https://d2.naver.com/helloworld/1336
- https://xephysis.tistory.com/42
- https://www.youtube.com/watch?v=rvss-_t6gzg
'BackEnd > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ถ์ ํฉํ ๋ฆฌ ํจํด์ผ๋ก ์คํ๋ง ์ปจํ ์ด๋ ํ๋ด๋ด๊ธฐ (0) | 2022.09.12 |
---|---|
[Spring Cloud] API Gateway Pre&Post Filter ์ค์ (0) | 2022.09.06 |
[Spring Cloud] OpenFeign ์ผ๋ก ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ํต์ ํ๊ธฐ (0) | 2022.08.31 |
Spring Cloud๋ OOO์ด๋ค. (0) | 2022.08.30 |
[Spring Cloud]Config Server๋ก ๊ตฌ์ฑ ๊ด๋ฆฌ๋ฐ ๋์ ์ผ๋ก ์ค์ ์ ์ฉ (0) | 2022.08.29 |
๋๊ธ
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- ํด๋ฆฐ ์ํคํ ์ฒ
- ์์ง ๋ถํ
- pool
- ์ ์ ํ์ ์ธ์ด
- multimap
- ์ก๊ฐํ ์ํคํ ์ฒ
- ์ธ์ ๋ถ์ผ์น
- ์ฅ์ ํด๊ฒฐ๊ธฐ
- Sticky Session
- Session
- ๋ฉ๋ชจ๋ฆฌ ํํธํ
- ๊ฐ์ฒด ํ
- java
- ์ปดํฌ์ง ํจํด
- ๋ฉ๋ชจ๋ฆฌ ๋จํธํ
- Memory Fragmentation
- ์ธ๋ถ ๋จํธํ
- pass by reference
- Clean Architecture
- OOP
- pass by value
- ๋พฐ์กฑํจ
- Object Pool
- ATDD
- ๋์ ๋์คํจ์น
- RestAssured
- ์ํ ๋ถํ
- SpringBoot 2.2
- ๋์ ํ์ ์ธ์ด
- ๋ด๋ถ ๋จํธํ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
๊ธ ๋ณด๊ดํจ