Merged
Conversation
261c72c to
5392cb9
Compare
📊 코드 커버리지 리포트
|
Contributor
|
리베이스 요청드립니다. |
5392cb9 to
9cf5dcf
Compare
Contributor
Author
진행하였습니다 |
Goder-0
approved these changes
Mar 22, 2026
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 설명
@Async) 및AFTER_COMMIT단계에서의 실행을 적용함.작업 내용
비즈니스 로직 및 이벤트 연동
LinkFacade: 링크 생성(createLink), 수정(updateLink,updateTitle,updateMemo), 삭제(deleteLink) 수행 완료 시ApplicationEventPublisher를 통해LinkSyncEvent발행 로직 추가함.SummaryQueryService,SummaryService: 동기화 페이로드에 포함될 요약 데이터를 예외 없이 안전하게 조회하기 위해getSummaryOrElseNull메서드 신규 추가함.LinkSyncEventListener:@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT)를 적용하여 메인 DB 트랜잭션이 성공적으로 커밋된 이후에만 동기화 이벤트가 동작하도록 구현함.@Async를 통해 별도 스레드에서 외부 API 통신을 수행하도록 분리함.DTO 및 Event 정의
LinkSyncUpdateReq(추가/수정용),LinkSyncDeleteReq(삭제용) DTO 정의함.CREATE,UPDATE,DELETE)과 페이로드를 캡슐화한LinkSyncEvent레코드 생성함.예외 처리 (Fallback & Retry)
@Retryable: AI 서버 통신 일시 장애에 대비하여 최대 3회 재시도 및 백오프(지연 시간 2배씩 증가) 로직 적용함.@Recover: 최종 동기화 실패 시 메인 트랜잭션에 영향을 주지 않고(Soft Fail), 수동 복구를 위한 에러 로그([CRITICAL])를 명확히 남기도록 구현함.