Skip to content

feat: 예시 컨트롤러와 테스트 도우미, README 추가 - #47

Merged
d1ng1724 merged 4 commits into
developfrom
feat/25-example-controller-readme
Nov 4, 2026
Merged

d1ng1724 merged 4 commits into
developfrom
feat/25-example-controller-readme

Conversation

@d1ng1724

@d1ng1724 d1ng1724 commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • 예시 컨트롤러: 테스트 소스 example 패키지에 도메인 컨트롤러 본보기를 둔다. {grn}을 Grn으로 받고, @RequirePermission과 같은 Action을 로더에 넘기며, listVisible과 CursorPage로 목록을 돌려주고, service가 BusinessException을 던진다. 계약에 명세가 없는 API라 운영 코드에는 넣지 않는다
  • 테스트 도우미: @ApiWebMvcTest(XController::class)로 실제 인증 필터·오류 형식·요청 id를 켜고, TestTokens.user()/admin()과 bearer()로 토큰을 붙인다. 토큰은 개발용 토큰 API와 같은 AccessTokenProvider.issue로 발급한다
  • 완료 기준 테스트: 토큰 있음 200, 토큰 없음 401, 틀린 GRN 400, 남의 자원 404, 팀원 삭제 시도 403. 목록 커서 페이지, permissions, 도메인 오류 테스트를 함께 둔다
  • README: 로컬 실행·개발용 토큰, 도메인 컨트롤러 만들기(패키지, 엔티티·reader, 어노테이션, 로더 고르기, 로더가 돌려주는 응답, 응답·목록·오류), 컨트롤러 테스트 작성법을 정리한다

팀 도메인이 생기기 전까지 로더가 Spring 빈이 아니어서, 테스트 설정(ExampleTestConfig)에서 직접 만든다.

Test plan

  • ./gradlew ktlintCheck
  • ./gradlew test --tests 'com.gsmsv.api.example.*' --tests 'com.gsmsv.api.global.security.*' --tests 'com.gsmsv.api.global.grn.*' (예시 테스트 8개 포함 통과)
  • CI 전체 테스트
  • README만 보고 도메인 컨트롤러를 만들 수 있는지 리뷰어 확인

관련 이슈

Closes #25

확인

  • 권한 판단을 자원 로더 밖에서 하지 않았다 (22번 권한 판단 Layer)
  • GRN 문자열을 직접 자르지 않고 GRN 파서만 썼다. GRN의 소유자 칸 값을 어떤 판단에도 쓰지 않았다 (23번 자원 이름 규칙)
  • 비밀값·내부 IP·포트·서버 주소 같은 운영 정보를 넣지 않았다 (공개 저장소)

🤖 Generated with Claude Code

d1ng1724 and others added 2 commits November 5, 2026 00:39
도메인 컨트롤러의 본보기와 골격 완료 기준 테스트 5개를 둔다. 계약에 명세가 없는 API라 테스트 소스에만 둔다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@d1ng1724 d1ng1724 added the enhancement New feature or request label Nov 4, 2026
d1ng1724 and others added 2 commits November 5, 2026 00:43
전체 컨텍스트 테스트가 테스트 소스의 예시 컨트롤러를 잡고, 테스트 설정에만 있는 로더를 찾지 못해 뜨지 않았다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@d1ng1724
d1ng1724 merged commit d517d45 into develop Nov 4, 2026
2 checks passed
@d1ng1724
d1ng1724 deleted the feat/25-example-controller-readme branch November 4, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(global): 예시 컨트롤러와 테스트 도우미, README

1 participant