Open
Conversation
근거 Spring Framework 4.3 이상 해당 클래스에 생성자가 1개만 존재 필드 주입이 아니라 생성자 주입 방식
근거
Spring Framework 4.3 이상
해당 클래스에 생성자가 1개만 존재
필드 주입이 아니라 생성자 주입 방식
근거
Spring Framework 4.3 이상
해당 클래스에 생성자가 1개만 존재
필드 주입이 아니라 생성자 주입 방식
근거 Spring Framework 4.3 이상 해당 클래스에 생성자가 1개만 존재 필드 주입이 아니라 생성자 주입 방식
- WishRepository 필드, 생성자 파라미터, import 삭제 - wish cleanup 기능은 미구현 상태로, 향후 별도 이슈로 추적 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Auth/Member: Javadoc 추가/변환, 에러 메시지 한국어 통일, 불필요한 주석 제거 - Category: @column 어노테이션 보강 (nullable, unique, length) - Product/Option: OptionRequest.toEntity() 팩토리 메서드 추가, import 정렬, 블록 주석 Javadoc 전환 - Order: import 순서 정렬 (java → jakarta → org → gift) - Wish: 기존 스타일 준수 확인 - 미사용 import 제거 (AdminProductController의 Category import) - README 체크리스트 21개 항목 완료 표시 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rkflow 4단계(문제 발견 → 수정 범위 설명 → 테스트 전략 → 수행 계획) 기반의 안전한 코드 변경 워크플로우 커맨드를 추가한다. 구조 변경과 작동 변경의 커밋 분리, ADR 기반 설계 결정, 관찰 가능한 검증을 강제하는 프롬프트를 포함한다. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
포인트 차감도 MemberService를 통해 수행할 수 있도록 chargePoint와 동일한 패턴의 deductPoint 메서드 준비 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
주문 생성 후 회원 포인트가 정확히 차감되었는지 상태 재조회로 검증하여 포인트 차감 경로 변경의 기준선 확보 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
OrderService가 MemberRepository를 직접 사용하던 포인트 차감 로직을 MemberService.deductPoint()로 위임하여 도메인 책임 일관성 확보 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
AngularJS 커밋 컨벤션 기반의 한글 커밋 메시지 규칙을 정의하고, 각 작업 단위(테스트/구조 변경/작동 변경/설정)별로 자동 커밋하는 5단계(실행 및 커밋)를 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
기존에는 update()에서 이메일 중복 검사가 없어 다른 회원의 이메일로 변경 시 DB 제약 조건 위반(DataIntegrityViolationException)이 발생했음. create()와 동일하게 애플리케이션 레벨에서 IllegalArgumentException으로 검증하여 에러 처리 일관성을 확보 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MemberService.update()의 이메일 중복 검증을 증명하는 서비스 레벨 테스트: - 다른 회원의 이메일로 변경 시 IllegalArgumentException 발생 + 상태 불변 재조회 - 자기 이메일 유지하며 비밀번호 변경 시 성공 + 상태 반영 재조회 - 미사용 이메일로 변경 시 성공 + 상태 반영 재조회 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
DB 스키마에는 이미 unique 제약이 있으나 JPA 엔티티에 반영되지 않아 불일치가 존재했음 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…메서드 추가 카카오 로그인과 같이 비밀번호 없이 이메일만으로 회원을 생성하는 경로가 MemberService를 거치지 않고 MemberRepository를 직접 사용하고 있었음. 외부 패키지가 MemberService를 통해 회원 조회/생성/토큰 업데이트를 수행할 수 있도록 메서드 승격 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 존재/미존재 이메일 조회 검증 - 이메일만으로 회원 생성 시 비밀번호 null 확인 - 중복 이메일 생성 시 DB unique 제약에 의한 예외 검증 - 카카오 토큰 업데이트 후 재조회 검증 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MemberRepository 직접 사용을 제거하고 MemberService.findByEmail, create, updateKakaoAccessToken을 사용하도록 변경 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MemberRepository 직접 사용을 제거하고 MemberService.findByEmail을 사용하도록 변경 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
create(email) 오버로드가 중복 이메일에 대해 IllegalArgumentException을 던지는지 검증하는 테스트 추가 현재는 DB 제약 위반 예외가 발생하여 실패함 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
기존 create(email, password)와 달리 create(email)은 중복 이메일 검사 없이 바로 저장하여 DB 유니크 제약 예외가 노출될 수 있었음 두 오버로드의 검증 동작을 일관되게 통일 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
존재하는 회원 삭제 후 재조회 시 부재 확인 테스트와 존재하지 않는 회원 삭제 시 예외 발생 검증 테스트를 추가 현재 delete()에 존재 확인 로직이 없어 두 번째 테스트는 실패함 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
기존에는 deleteById로 존재하지 않는 ID를 삭제해도 예외 없이 정상 종료되어 호출부가 실패를 인지할 수 없었음 findById로 존재 확인 후 삭제하도록 변경하여 다른 메서드(update, chargePoint 등)와 일관된 패턴을 적용 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
존재하는 ID로 조회 시 엔티티 필드값 검증과 존재하지 않는 ID로 조회 시 예외 메시지 검증을 포함 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
기존 findById가 내부적으로 findEntityById를 재사용하도록 변경 외부 서비스에서 Category 엔티티가 필요할 때 사용할 수 있는 public 메서드를 제공 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ProductService가 CategoryRepository를 직접 사용하던 4곳을 CategoryService.findEntityById()로 통합하여 도메인 책임 누수를 해소 CategoryService.update()도 findEntityById를 재사용하도록 변경 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ProductService.findAllCategories()를 제거하고 AdminProductController가 CategoryService.findAll()을 직접 사용 ProductService에서 불필요해진 findAllEntities()도 함께 제거 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
삭제 응답(204)만 확인하던 테스트에 GET /api/categories 재조회를 추가하여 실제로 삭제되었는지 상태 검증 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
existsById + deleteById 이중 조회를 제거하고 update()와 동일한 findEntityById 재사용 패턴으로 변경 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
잘못된 토큰, 회원 미존재, 정상 인증 3가지 시나리오를 HTTP 응답 상태 코드로 검증하는 통합 테스트 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
인증 실패 시 사용할 커스텀 예외 클래스와 해당 예외를 401 응답으로 변환하는 @RestControllerAdvice 핸들러 생성 아직 사용하는 곳이 없으므로 기존 작동에 영향 없음 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
AuthenticationResolver.extractMember()가 null을 반환하던 것을 UnauthorizedException을 던지도록 변경하고, 컨트롤러 5곳의 null 체크 + 401 응답 중복 코드를 제거 인증 판단 책임이 컨트롤러에서 AuthenticationResolver로 이동 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
vsh123
requested changes
Mar 6, 2026
vsh123
left a comment
There was a problem hiding this comment.
안녕하세요!
step2도 구현 잘해주셨네요 :) 코멘트 남겨놓았으니 확인부탁드립니다!
| return memberService.findByEmail(email).orElse(null); | ||
| } catch (Exception e) { | ||
| return null; | ||
| throw new UnauthorizedException("유효하지 않은 토큰입니다"); |
There was a problem hiding this comment.
작동 변경은 반드시 증거와 함께 제출한다.
라는 요구사항에 맞게 근거를 추가해주시면 어떨까요?
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.
No description provided.