Skip to content

AI 서버 링크 데이터 동기화 로직 추가#201

Merged
ckdals4600 merged 1 commit intomainfrom
feature/#189-ai-link-data--synchronization
Mar 23, 2026
Merged

AI 서버 링크 데이터 동기화 로직 추가#201
ckdals4600 merged 1 commit intomainfrom
feature/#189-ai-link-data--synchronization

Conversation

@ckdals4600
Copy link
Copy Markdown
Contributor

관련 이슈

PR 설명

  • 사용자가 링크를 추가, 수정, 삭제할 때 해당 변경사항을 AI 서버(RAG 컨텍스트)에 동기화하는 이벤트 기반 파이프라인을 구축함.
  • 메인 비즈니스 로직의 응답 속도 및 트랜잭션 안정성에 영향을 주지 않도록 비동기(@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])를 명확히 남기도록 구현함.

@ckdals4600 ckdals4600 requested review from Goder-0 and minibr March 20, 2026 01:54
@ckdals4600 ckdals4600 self-assigned this Mar 20, 2026
@ckdals4600 ckdals4600 force-pushed the feature/#189-ai-link-data--synchronization branch 2 times, most recently from 261c72c to 5392cb9 Compare March 20, 2026 02:47
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 20, 2026

📊 코드 커버리지 리포트

Overall Project 93.2% 🍏
Files changed 100% 🍏

File Coverage
LinkSyncEvent.java 100% 🍏
LinkSyncEventListener.java 100% 🍏
RagLinkSyncClient.java 100% 🍏
MockLinkSyncClient.java 100% 🍏
SyncAction.java 100% 🍏
LinkFacade.java 100% 🍏
SummaryService.java 100% 🍏
SummaryQueryService.java 95.83% 🍏

@Goder-0
Copy link
Copy Markdown
Contributor

Goder-0 commented Mar 21, 2026

리베이스 요청드립니다.

@ckdals4600 ckdals4600 force-pushed the feature/#189-ai-link-data--synchronization branch from 5392cb9 to 9cf5dcf Compare March 21, 2026 03:01
@ckdals4600
Copy link
Copy Markdown
Contributor Author

리베이스 요청드립니다.

진행하였습니다

@ckdals4600 ckdals4600 merged commit 2227419 into main Mar 23, 2026
1 check passed
@ckdals4600 ckdals4600 deleted the feature/#189-ai-link-data--synchronization branch March 23, 2026 07:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AI 서버 링크 데이터 동기화 로직 추가 (추가/수정/삭제)

2 participants