T-09 기술스택 - #63
Open
ff1451 wants to merge 1 commit into
Open
Conversation
기술스택 마스터 CRUD + 트랙 페이지 부착(전체 교체) + 공개 응답 결합. - TechStack — 마스터, 여러 트랙 페이지가 공유(React, Java 등 재사용) - TrackPageTechStack — (track_page_id, tech_stack_id) 복합키 + display_order. @EmbeddedId + @mapsid로 매핑, 조인 fetch 쿼리로 N+1 방지 - GET/POST /v1/admin/tech-stacks — 마스터 목록/생성(이름 중복 409) - PUT /v1/admin/track-pages/{id}/tech-stacks — 전체 교체. 존재하지 않는 techStackId가 섞여 있으면 삭제를 실행하기 전에 검증해서 404를 던지고 기존 부착을 그대로 둔다(부분 적용 없음) - 공개 응답(TrackDetailResponse)에 techStacks 추가 — id 없는 요약 DTO (TechStackSummaryResponse)를 따로 둬서 관리자 응답과 구분했다 테스트: TechStackIntegrationTest(신규) — - 마스터 생성 + 이름 중복 409 - 전체 교체가 이전 부착을 완전히 대체 - 존재하지 않는 id 포함 시 404이고 기존 부착 유지(검증 우선, delete 전) - 공개 응답에 techStacks가 순서대로 포함 ./gradlew test 3회 연속 전체 통과(59개, 실패 0). Refs #21
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #21
Base:
feat/t08-study-points(#62)P1(트랙)의 마지막 티켓이다.
변경
TechStack— 마스터. 여러 트랙 페이지가 공유한다(React, Java 등 재사용 — 시안에도 여러 트랙이 같은 스택 아이콘을 쓴다).TrackPageTechStack—(track_page_id, tech_stack_id)복합키 +display_order.@EmbeddedId+@MapsId로 매핑했고, 조회는join fetch로 N+1을 피했다.GET/POST /v1/admin/tech-stacks— 마스터 목록/생성(이름 중복 409).PUT /v1/admin/track-pages/{id}/tech-stacks— 전체 교체. 존재하지 않는techStackId가 섞여 있으면 삭제를 실행하기 전에 검증해서 404를 던지고 기존 부착을 그대로 둔다 — study-points(T-08)와 달리 이 엔드포인트는 참조 무결성 검증이 필요해서, "먼저 지우고 나중에 실패"가 아니라 "먼저 검증하고 지운다" 순서로 짰다.TrackDetailResponse)에techStacks추가. 관리자 응답(TechStackResponse, id 포함)과 공개 응답(TechStackSummaryResponse, id 없음)을 분리했다 — 공개 API가 내부 PK를 노출할 이유가 없다.테스트
TechStackIntegrationTest(신규):techStacks가 순서대로 포함./gradlew test를 3회 연속 돌려 전체 통과(59개, 실패 0) 확인.이걸로 P1(트랙) 완료 — T-06
T-09 4개 티켓, PR #60#63. 다음은 P2(커리큘럼, T-10~T-13)로 넘어간다.