Skip to content

feat: 게시글 AI 요약 응답 분리 - #2328

Open
taejinn wants to merge 2 commits into
developfrom
feat/2327-article-ai-summary-response-v2
Open

feat: 게시글 AI 요약 응답 분리#2328
taejinn wants to merge 2 commits into
developfrom
feat/2327-article-ai-summary-response-v2

Conversation

@taejinn

@taejinn taejinn commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

🚀 주요 변경 내용

  • GET /v2/articles/{id}를 추가했습니다.
  • 게시글 원문과 AI 요약 응답을 분리했습니다.
  • 기존 게시글 상세 조회 응답은 유지했습니다.

💬 참고 사항

Summary by CodeRabbit

  • New Features

    • Added a v2 article endpoint with article details, navigation links, attachments, timestamps, and view counts.
    • Article content is now provided separately from its AI summary.
    • Added AI summary statuses: successful, pending, and unavailable.
    • Summary items support icons and are limited to three displayable entries.
  • Bug Fixes

    • Pending or unavailable summaries no longer alter the original article content.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8dbf246f-24ea-48ab-a5c2-2c3863bc885e

📥 Commits

Reviewing files that changed from the base of the PR and between de1eabf and 68aa41d.

📒 Files selected for processing (10)
  • src/main/java/in/koreatech/koin/domain/community/article/controller/ArticleApiV2.java
  • src/main/java/in/koreatech/koin/domain/community/article/controller/ArticleControllerV2.java
  • src/main/java/in/koreatech/koin/domain/community/article/dto/ArticleAiSummaryResponse.java
  • src/main/java/in/koreatech/koin/domain/community/article/dto/ArticleResponseV2.java
  • src/main/java/in/koreatech/koin/domain/community/article/service/ArticleService.java
  • src/main/java/in/koreatech/koin/domain/community/article/service/summary/ArticleAiSummaryService.java
  • src/main/java/in/koreatech/koin/domain/community/article/service/summary/ArticleSummaryView.java
  • src/test/java/in/koreatech/koin/acceptance/domain/ArticleAiSummaryApiTest.java
  • src/test/java/in/koreatech/koin/unit/domain/community/article/ArticleAiSummaryResponseTest.java
  • src/test/java/in/koreatech/koin/unit/domain/community/article/service/summary/ArticleAiSummaryServiceTest.java

📝 Walkthrough

Walkthrough

Adds GET /v2/articles/{id}. The endpoint returns original article content and a separate AI summary response with SUCCESS, PENDING, or UNAVAILABLE status.

Changes

V2 article summary flow

Layer / File(s) Summary
Summary state resolution
src/main/java/in/koreatech/koin/domain/community/article/service/summary/..., src/test/java/in/koreatech/koin/unit/domain/community/article/service/summary/...
Adds ArticleSummaryView and resolves pending, unavailable, and successful summary states.
Structured V2 response mapping
src/main/java/in/koreatech/koin/domain/community/article/dto/..., src/test/java/in/koreatech/koin/unit/domain/community/article/ArticleAiSummaryResponseTest.java
Adds article and AI summary response records. Filters summary lines, parses icons, limits items to three, and maps attachments.
Article service integration
src/main/java/in/koreatech/koin/domain/community/article/service/ArticleService.java
Shares article detail loading between legacy and V2 flows. Builds ArticleResponseV2 with original content and summary metadata.
V2 endpoint exposure and validation
src/main/java/in/koreatech/koin/domain/community/article/controller/..., src/test/java/in/koreatech/koin/acceptance/domain/ArticleAiSummaryApiTest.java
Exposes GET /v2/articles/{id} and validates pending and successful summary responses.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant ArticleControllerV2
  participant ArticleService
  participant ArticleAiSummaryService
  ArticleControllerV2->>ArticleService: getArticleV2(boardId, articleId, ipAddress)
  ArticleService->>ArticleAiSummaryService: getSummary(article, content)
  ArticleAiSummaryService-->>ArticleService: ArticleSummaryView
  ArticleService-->>ArticleControllerV2: ArticleResponseV2
  ArticleControllerV2-->>Client: HTTP 200 article response
Loading

Possibly related PRs

Suggested reviewers: dhkimgit, dh2906, janoogwan

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: separating article AI summary responses.
Linked Issues check ✅ Passed The changes add the V2 API, separate original content from AI summary data, and preserve the existing response flow for compatibility [#2327].
Out of Scope Changes check ✅ Passed All production and test changes support the linked issue objectives for the V2 article response and AI summary separation [#2327].
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/2327-article-ai-summary-response-v2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the 기능 새로운 기능을 개발합니다. label Aug 9, 2026
@taejinn taejinn changed the title [공통] 게시글 AI 요약 응답 분리 feat: 게시글 AI 요약 응답 분리 Aug 9, 2026
@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

Unit Test Results

786 tests   783 ✔️  1m 24s ⏱️
189 suites      3 💤
189 files        0

Results for commit 70fe831.

♻️ This comment has been updated with latest results.

@taejinn
taejinn marked this pull request as ready for review August 9, 2026 19:50
@github-actions
github-actions Bot requested review from Soundbar91 and dh2906 August 9, 2026 19:50
@taejinn
taejinn removed request for Soundbar91 and dh2906 August 9, 2026 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

기능 새로운 기능을 개발합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[공통] 게시글 AI 요약 응답 분리

2 participants