Skip to content

요약 재생성 API 개발 및 Mock AI 클라이언트 구현#120

Merged
ckdals4600 merged 2 commits intomainfrom
feature/#106-summary-create-and-recreate-api
Dec 19, 2025
Merged

요약 재생성 API 개발 및 Mock AI 클라이언트 구현#120
ckdals4600 merged 2 commits intomainfrom
feature/#106-summary-create-and-recreate-api

Conversation

@ckdals4600
Copy link
Contributor

@ckdals4600 ckdals4600 commented Dec 10, 2025

관련 이슈

PR 설명

  • 링크에 대한 요약을 재생성 및 기존 요약 내용 비교 정보 제공 API 구현
  • 현재 AI 서버 연동 전이므로, 더미 데이터를 반환하는 Mock 구현체를 적용하여 기능 동작을 검증

1. API 명세 구현 (LinkController, LinkApi)

  • Endpoint: GET /v1/links/{id}/summary?format=
  • Params: format (Enum: CONCISE, DETAILED) - 요약의 상세 정도를 지정.
  • Response: RecreateSummaryResponse (기존 요약, 신규 요약, 비교 정보 포함).
    {
         "status": "SUCCESS",
         "message": "메타 정보 수집 완료",
         "data": {
                  "existingSummary": "기존 요약입니다",
                  "newSummary": "신규 요약입니다",
                  "comparison": "기존 요약과 신규 요약 차이점 입니다."
          } 
    }

2. 비즈니스 로직 (LinkFacade, SummaryService)

  • Facade 패턴: LinkFacade에서 LinkService(URL 조회)와 SummaryService(요약 로직)를 조율함.
  • 요약 조회 및 생성:
    • 기존 DB에 저장된 요약을 조회함.
    • AiSummaryClient를 통해 새로운 요약을 생성함.
    • 두 요약 내용을 비교하는 comparisonSummary 로직을 수행함.

3. AI 클라이언트 추상화 및 Mocking

  • AiSummaryClient (Interface): 외부 AI 서버와의 통신을 위한 인터페이스 정의. 향후 FeignClient 등으로 교체 용이하도록 설계.
  • MockAiSummaryClient (Impl):
    • format(CONCISE/DETAILED)에 따라 다른 내용의 더미 텍스트 반환.
    • generateSummary: 기존 요약과 신규 요약 비교 내용 제공
    • comparisonSummary: 실제 AI 서버가 없어도 프론트엔드 연동 및 로직 테스트가 가능하도록 구현함.

4. 테스트 작성 (통합 및 유닛 테스트)

  • 통합 테스트 (LinkApiIntegrationTest):
    • API 엔드포인트 호출부터 DB 저장, Mock Client 응답까지의 전체 흐름 성공 케이스 검증함.
  • 유닛 테스트 (Service/Facade Layer):
    • LinkFacadeTest: Facade 계층에서 서비스 간의 호출 흐름과 데이터 조합 로직 검증함.
    • SummaryServiceTest: AiSummaryClient 호출 위임 및 비즈니스 로직 단위 테스트 수행함.
    • SummaryQueryServiceTest: 요약 조회 성공 및 실패(SUMMARY_NOT_FOUND 예외) 케이스 검증함.

@ckdals4600 ckdals4600 linked an issue Dec 10, 2025 that may be closed by this pull request
@ckdals4600 ckdals4600 force-pushed the feature/#106-summary-create-and-recreate-api branch from d34d11c to 52e9b68 Compare December 10, 2025 16:52
@ckdals4600 ckdals4600 requested a review from minibr December 10, 2025 16:52
@ckdals4600 ckdals4600 self-assigned this Dec 10, 2025
@ckdals4600 ckdals4600 force-pushed the feature/#106-summary-create-and-recreate-api branch from 52e9b68 to ab8611d Compare December 10, 2025 17:15
@ckdals4600 ckdals4600 requested a review from Goder-0 December 14, 2025 12:04
@ckdals4600 ckdals4600 force-pushed the feature/#106-summary-create-and-recreate-api branch from ed015f4 to eab711f Compare December 15, 2025 12:43
ckdals4600 added a commit that referenced this pull request Dec 15, 2025
@github-actions
Copy link

github-actions bot commented Dec 15, 2025

📊 코드 커버리지 리포트

Overall Project 91.3% 🍏
Files changed 100% 🍏

File Coverage
LinkController.java 100% 🍏
MockAiSummaryClient.java 100% 🍏
LinkErrorCode.java 100% 🍏
LinkFacade.java 100% 🍏
SummaryQueryService.java 100% 🍏
SummaryService.java 100% 🍏

@ckdals4600 ckdals4600 force-pushed the feature/#106-summary-create-and-recreate-api branch 3 times, most recently from 32a68d5 to 6dd5b91 Compare December 18, 2025 13:59
@ckdals4600 ckdals4600 force-pushed the feature/#106-summary-create-and-recreate-api branch from 6dd5b91 to 9e514ed Compare December 19, 2025 10:26
@ckdals4600 ckdals4600 merged commit cee0f8a into main Dec 19, 2025
1 check passed
@ckdals4600 ckdals4600 deleted the feature/#106-summary-create-and-recreate-api branch December 19, 2025 10:28
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.

요약 재생성 API 개발

2 participants