SSE로 알림 기능 구현하기(2) - SSeEmiter를 통한 구현
·
카테고리 없음
1편에서는 Polling/Long Polling/WebSocket/SSE 등 실시간 기법들을 살펴보았고, 알림이라는 요구사항에는 SSE가 잘 맞는다는 결론에 도달했다. 이번 편에서는 Spring Boot에서 SSE 알림을 구독(연결 유지)하고, 서버 이벤트를 알림으로 푸시하는 기본 구현을 정리한려고 한다. 다음 행위들을 통해 알림 기능을 구현한다.구독(Subscribe): 클라이언트가 /subscribe로 연결을 열면 서버는 emitter를 등록하고 연결을 유지한다.전송(Send): 서버에서 알림이 발생하면 해당 사용자 emitter로 이벤트를 푸시한다.정리(Clean-up): 연결이 끊기면 registry에서 emitter를 제거한다.Heartbeat(Ping): 일정 주기로 ping을 보내 연결 유지..
SSE로 알림 기능 구현하기(1) - 여러 실시간 기법
·
카테고리 없음
0. 들어가며: 왜 알림 기능을 구현하게 됐나서비스를 만들다 보면 사용자에게 “지금 알려줘야 의미 있는 순간”이 생긴다. 댓글/답글, 결제 결과, 작업 완료, 상태 변화 같은 것들이다. 내가 개발하던 서비스들에서도 비슷한 요구가 반복됐다. 리포트 생성처럼 시간이 걸리는 작업이 끝났을 때 사용자가 다른 화면을 보고 있거 잠시 떠나 있더라도, 완료 소식을 바로 알려 다음 행동(확인/다운로드 등)으로 자연스럽게 이어지게 하고 싶었다. 또 누군가 내 프로젝트에 입찰을 했거나 배송 상태가 바뀌는 것처럼, 서버에서 바뀐 소식이 사용자 화면에도 바로 반영돼야 하는 경우가 많았다.그래서 이번 시리즈에서는 알림을 ‘실시간에 가깝게’ 전달하는 방법을 다룬다. 다만 (1)편에서는 구현 코드로 바로 들어가지 않고, 먼저 실시..