Merged
Conversation
📊 코드 커버리지 리포트
|
ffc6fc5 to
18f8300
Compare
18f8300 to
5a34358
Compare
Goder-0
reviewed
Mar 17, 2026
src/main/java/com/sofa/linkiving/domain/link/event/LinkEventListener.java
Show resolved
Hide resolved
src/main/java/com/sofa/linkiving/domain/link/repository/LinkRepository.java
Outdated
Show resolved
Hide resolved
src/main/java/com/sofa/linkiving/domain/link/event/LinkEventListener.java
Show resolved
Hide resolved
Contributor
Author
|
@Goder-0 추가로 코드 수정 중에 |
Goder-0
approved these changes
Mar 19, 2026
ca8ac6e to
28ef425
Compare
Goder-0
approved these changes
Mar 20, 2026
28ef425 to
bcf1f40
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
관련 이슈
PR 설명
비동기 링크 요약 작업의 동시성 충돌(중복 요청 및 덮어쓰기)과 JPA 영속성 컨텍스트 분리(Detached) 문제를 해결하기 위해 아키텍처를 개편하고, 클라이언트에게 실시간 진행 상태를 전달하는 STOMP 웹소켓 파이프라인을 구축함.
작업 내용
Architecture & 트랜잭션 (영속성 문제 해결)
SummaryWorkerFacade신규 도입함.linkId)를 넘겨 트랜잭션 내에서 재조회하도록 구조 개선함.Domain & 비즈니스 로직 (재요약 차단 방어 로직)
Link엔티티에 요약 작업 상태를 관리하는summaryStatus(PENDING, PROCESSING, COMPLETED, FAILED) 필드 추가함.validateSummarizable)을 캡슐화함.ALREADY_PROCESSING예외를 발생시켜 비정상적인 요청을 차단함.WebSocket (실시간 상태 전달)
/ws/link) 및 개별 사용자 구독 채널(/user/queue/summary) 설계 및 인증 허용 처리함.SummaryStatusEvent기반 퍼블리셔/리스너 아키텍처 도입함.API 명세 & 테스트
SummaryStatusRes응답 DTO 및SummaryStatusEnum 스키마 명세 추가 및 웹소켓 연결 가이드 문서화함.LinkFacadeTest가 하위 Service 구현에 의존하지 않도록 모킹(Mocking) 구조 리팩토링 및 단위 테스트 검증 완료함.리뷰 포인트
SummaryWorkerFacade도입으로 인한 기존 Service 간 의존성 분리 및 트랜잭션 범위의 적절성./user/queue/summary메시지 라우팅 규격 타당성.