[Spring] 이전 데이터를 불러올때 stream문과 for문의 성능 차이 테스트 - 1
·
개발 ━━━━━/Spring
Spring 프로젝트에서 Websocket 을 이용한 채팅 기능을 구현하였다. 주고 받는 채팅 메세지들은 DB 에 저장이 되고, 채팅방에 입장시 이전 메세지들이 stream 문으로 불러와진다. stream 문 보단 for 문이 더 익숙한 나로선 실시간성이 중요한 채팅에서 stream 문과 for 문으로 각각 구현시 유의미한 성능 차이가 있을지 문득 궁금해졌다. 채팅 메세지들은 MySQL 과 Redis 에 저장되고 있고 Redis 에서만 불러오게끔 되어 있었는데 프로젝트를 진행하면서 이런 저런 테스트를 진행하다 보니 인메모리 데이터베이스인 Redis 에 있던 데이터들이 자꾸 날아가는 상황이 발생하였다. 그래서 채팅 메세지 불러오는 로직을 Redis 에 데이터가 있을 때) 1. Redis 데이터랑 MySQL..
[Spring] WebSocket 을 이용한 채팅 구현
·
개발 ━━━━━/Spring
WebSocket 이란 서버가 응답하고 연결을 종료하는 단방향 통신인 http 통신과는 달리 Server 와 Client 의 연결이 지속적으로 유지되는 양방향 통신을 하는 방식인 socket 통신이다. 접속까지는 HTTP 프로토콜를 이용하고 그 이후에는 자체적인 Websocket 프로토콜을 이용한다. Springboot 에 Websocket 서버 구축 build.gradle 에 의존성 (Dependency) 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-websocket' compileOnly ..