Skip to content

[feat] #326 SSE 도입#327

Open
choyeongju wants to merge 7 commits intodevelopfrom
feat/326
Open

[feat] #326 SSE 도입#327
choyeongju wants to merge 7 commits intodevelopfrom
feat/326

Conversation

@choyeongju
Copy link
Copy Markdown
Member

Related issue 🛠

Work Description ✏️

  • SSE(Server-Sent Events) 인프라 구축
    • SseEmitterManager: 유저별 SseEmitter 등록/삭제/전송 관리
    • SseController: /api/v1/sse/connect SSE 구독 엔드포인트 구현
  • open-in-view: false 설정으로 SSE 연결 중 DB 커넥션 고갈 방지
    • 기존 코드 중 트랜잭션 없이 LAZY 필드에 접근하던 메서드에 @transactional(readOnly = true) 추가 (FeedService, BlockService)
  • nginx SSE 전용 location 블록 추가 (dev 서버 한정)
    • 버퍼링 OFF, 타임아웃 30분 설정
  • 피드 알림/공지 SSE 연동 코드 작성 (클라이언트와 도입 여부 논의 후 최종 반영 예정)
    • FeedAlarmCreatedEvent, FeedAlarmEventListener, FeedAlarmFacade 이벤트 발행 로직
    • AdminNoticeService 공지 발송 시 SSE push 로직

Screenshot 📸

image

Uncompleted Tasks 😅

  • 피드 알림(좋아요/팔로우) 및 공지 알림 SSE 연동 스펙은 클라이언트와 논의 후 확정 예정
  • nginx prod 서버 블록(api.hilingual.kr)에 SSE 전용 location 블록 추가 필요 (SSE prod 배포 시 반영 예정)

To Reviewers 📢

open-in-view: false 전환으로 인한 영향 범위를 검토했습니다.
트랜잭션 밖에서 LAZY 필드에 접근하던

  • FeedService.getSharedDiaries()
  • BlockService.getBlockedUserList()
    @transactional(readOnly = true)를 추가했으니 확인 부탁드립니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] SSE 도입

1 participant