Skip to content

docs(graphql): 구매자·공용 SDL 설명 보강 및 커버리지 기준선 100% 상향 - #285

Merged
chanwoo7 merged 1 commit into
developfrom
docs/sdl-buyer-descriptions
Sep 9, 2026
Merged

docs(graphql): 구매자·공용 SDL 설명 보강 및 커버리지 기준선 100% 상향#285
chanwoo7 merged 1 commit into
developfrom
docs/sdl-buyer-descriptions

Conversation

@chanwoo7

@chanwoo7 chanwoo7 commented Sep 9, 2026

Copy link
Copy Markdown
Member

seller 외 도메인의 남은 설명을 채워 전 카테고리 커버리지를 100%로 올린다. 이 작업(#281~#285)의 마지막 PR이다.

커버리지 — 8개 항목 전부 100%

요소 작업 전 최종
Query/Mutation 필드 130/130 130/130
필드 인자(비 input) 0/6 6/6
input 타입 선언 13/72 72/72
input 필드 49/227 227/227
출력 type 선언 67/134 134/134
출력 type 필드 185/603 603/603
enum 선언 12/23 17/17
enum 값 10/81 61/61

(분모는 자명한 필드 id·createdAt·*Id를 제외한 수치다. enum 총수가 준 것은 중복 6쌍을 통합했기 때문.)

주요 보강

  • user-order(74) · user-review(49) · product-reviews(50) · product-search(35) 등
  • region·pickup·store-pickup-schedule — 커버리지 10% 미만이던 공용 타입
  • 커서·페이지네이션 필드 전건. nextCursor가 불투명 토큰이고 정렬을 바꾸면 무효라는 규약이 CLAUDE.md에만 있고 SDL에는 한 번도 없었다
  • Connection의 items에는 "무엇이 담기는가"를 되풀이하는 대신 정렬 기준을 적었다(예: "최근 찜한 순으로 온다") — 프론트가 실제로 모르는 정보가 그쪽이다

기준선 100% 상향의 부수 효과

docs:check 기준선을 달성치인 100%로 올린다. 미기재 건수 기준선이 0이 되면서, PR #281 리뷰에서 "기존 미기재를 채우면서 새 미기재를 추가하면 건수·비율 모두 통과한다" 고 지적받아 유예했던 우회 경로가 함께 닫힌다. 이제 설명 없는 요소를 하나라도 추가하면 그 자리에서 실패한다.

검증: root.graphql에 설명 없는 타입 1개를 넣으면 출력 type 선언: 미기재 1건 > 기준선 0건으로 걸리는 것을 확인했다.

정렬 단정 전수 검증

items 계열에 적은 정렬 기준 13건을 repository orderBy와 대조했다. 찜 매장·찜 상품 created_at desc, 내 리뷰·주문 created_at desc, 최근 본 상품 viewed_at desc, 구매자 대화 last_message_at desc, 리뷰 작성 가능 picked_up_at desc, 매장 상품 id desc, 찜 매장 그룹 count desc.

이 과정에서 매장 검색이 인기순만 쓰고 검색어 관련도를 반영하지 않는다는 걸 확인해 설명을 고쳤다(scoreAndSortByPopularity — 찜 수·리뷰 통계·최근 주문 수). "관련도·인기 기준"이라 적었던 건 추론이었다.

검증

전체 225 suites / 1,869건 통과. tsc·dto:check·arch:check·docs:check·test:scripts(42건) 통과.

seller 외 도메인의 남은 설명을 채워 전 카테고리 커버리지를 100%로 올린다.

주요 보강:
- user-order(74) · user-review(49) · product-reviews(50) · product-search(35) 등
- region·pickup·store-pickup-schedule 공용 타입(커버리지 10% 미만이던 것들)
- 커서·페이지네이션 필드 전건: nextCursor가 불투명 토큰이고 정렬을 바꾸면
  무효라는 규약이 CLAUDE.md에만 있고 SDL에는 한 번도 없었다
- Connection의 items에는 "무엇이 담기는가"를 되풀이하는 대신 **정렬 기준**을 적었다
  (예: "최근 찜한 순으로 온다") — 프론트가 실제로 모르는 정보가 그쪽이다

기준선을 달성치인 100%로 올린다. 이 상향에는 부수 효과가 있다 — 미기재 건수
기준선이 0이 되면서, 리뷰에서 "기존 미기재를 채우면서 새 미기재를 추가하면
건수·비율 모두 통과한다"고 지적받아 유예했던 우회 경로가 함께 닫힌다.
이제 설명 없는 요소를 하나라도 추가하면 그 자리에서 실패한다.

검증: root.graphql에 설명 없는 타입 1개를 넣으면
"출력 type 선언: 미기재 1건 > 기준선 0건"으로 걸리는 것을 확인했다.

최종 커버리지 (전 항목 100%):
  Query/Mutation 필드   130/130     필드 인자(비 input)  6/6
  input 타입 선언        72/72      input 필드         227/227
  출력 type 선언        134/134     출력 type 필드     603/603
  enum 선언              17/17      enum 값             61/61
@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: bb79351b-1926-4d45-a34e-ed2fa87b8eee

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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 commented Sep 9, 2026

Copy link
Copy Markdown

🧹 knip — dead-code 리포트

Unused dependencies (1)
Duplicate exports (1)
전체 리포트
Unused dependencies (1)
graphql-ws  package.json:65:6
Duplicate exports (1)
KEYWORD_RANK_SNAPSHOT_SIZE|MAX_POPULAR_KEYWORDS_LIMIT  src/features/search/constants/search.constants.ts

청소 후보(오탐 가능) · 기준 docs/guide/architecture-conventions.md

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

🩺 NestJS Doctor — 90/100 (Excellent)

진단 306건 (error 0).

Category error warning info
architecture 0 0 9
correctness 0 154 0
performance 0 27 17
schema 0 0 86
security 0 13 0
architecture / security 상위 항목
  • info architecture/architecture/no-barrel-export-internals: Barrel file re-exports internal type 'IAuditLogRepository'.
  • warning security/security/no-exposed-env-vars: Direct 'process.env.NODE_ENV' access in 'AuthController'. Use ConfigService instead.
  • warning security/security/require-guards-on-endpoints: Endpoint 'start' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'callback' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'refresh' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'logout' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'sellerLogin' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'sellerRefresh' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'sellerLogout' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'devIssueToken' has no @UseGuards() at class or method level.
  • info architecture/architecture/no-barrel-export-internals: Barrel file re-exports internal module '@/features/conversation/repositories/conversation.repository'.
  • info architecture/architecture/no-barrel-export-internals: Barrel file re-exports internal type 'ConversationRepository'.
  • info architecture/architecture/no-barrel-export-internals: Barrel file re-exports internal module '@/features/order/repositories/order.repository'.
  • info architecture/architecture/no-barrel-export-internals: Barrel file re-exports internal type 'OrderRepository'.
  • info architecture/architecture/no-barrel-export-internals: Barrel file re-exports internal module '@/features/product/repositories/product.repository'.

오탐 포함 가능 · 기준 docs/guide/architecture-conventions.md

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Coverage report

St.
Category Percentage Covered / Total
🟢 Statements 97.68% 5895/6035
🟢 Branches 93.12% 2316/2487
🟢 Functions 96.44% 1165/1208
🟢 Lines 98.26% 5368/5463

Test suite run success

1869 tests passing in 225 suites.

Report generated by 🧪jest coverage report action from bd0872a

@chanwoo7
chanwoo7 merged commit 2c74950 into develop Sep 9, 2026
11 checks passed
@chanwoo7
chanwoo7 deleted the docs/sdl-buyer-descriptions branch September 9, 2026 17:09
@codecov

codecov Bot commented Sep 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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.

1 participant