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)편에서는 구현 코드로 바로 들어가지 않고, 먼저 실시..
🚀 크롤링 서버 vs 메인 서버, 크롤링한 데이터를 어디서 저장해야 할까?
·
AlgoMate
"FastAPI에서 크롤링한 데이터를 바로 저장할까? 아니면 메인 서버(Spring Boot)로 전송해서 저장할까?"이 고민을 해결하기 위해 두 가지 방법을 비교해보려고 한다.🔥 1. 프로젝트 개요저는 FastAPI + Spring Boot를 활용하여 백준 정답 코드 추천 서비스를 개발하고 있습니다.백준에서 크롤링한 정답 코드를 저장하는 과정에서 다음과 같은 고민이 생겼습니다.✅ FastAPI에서 크롤링한 데이터를 직접 저장하는 것이 좋을까?✅ 아니면 FastAPI에서 크롤링한 후, 메인 서버(Spring Boot)로 전송해서 저장하는 것이 좋을까?📌 이 포스팅에서는 두 가지 방식의 장단점을 비교하고, 최적의 방식을 찾아보려고 합니다. 2. 선택지 비교: FastAPI vs Spring Boot 저장..