Conversation
- 회원가입 기능 (검증 + 암호화 + 저장) - 내 정보 조회 기능 (인증 + 마스킹) - 비밀번호 변경 기능 (인증 + 검증 + 변경) - 컨트롤러 구현 (REST API 엔드포인트) - 단위 테스트, 통합 테스트, E2E 테스트 작성 - 예외 처리 (ErrorType + CoreException)
- 01. 요구사항 문서 - 02. 시퀀스 다이어그램 - 03. 클래스 다이어그램 - 04. ERD - 구조 리팩토링 계획서 - 아키텍처 논의 기록
- domain/ 모듈 신설 (루트 레벨) - application/commerce-service 모듈 신설 - presentation/commerce-api 모듈 신설 (bootJar) - 도메인 코드 이동 (modules/jpa → domain) - MemberRepository DIP 분리 (Port + Adapter) - batch/streamer 이동 (apps → presentation) - apps/ 디렉토리 삭제 - Spring Boot 플러그인 적용 범위 축소 - Kafka 패키지 오타 수정 (confg → config) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- ErrorType: pure enum (HttpStatus 제거), domain 레이어로 이동 - CoreException: domain 레이어로 이동 - BaseTimeEntity 신설, BaseEntity 상속 구조 변경 - MemberPolicy → VO 4개 전환 (LoginId, Password, MemberName, Email) - Member: @Builder/@AllArgsConstructor 제거, 정적 팩토리 메서드 - IllegalArgumentException → CoreException 전면 교체 - 마스킹 로직: Presentation 레이어로 이동 - DTO 네이밍 통일 (action-first) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- MemberTest: .isInstanceOf 제거, 빈/중복 테스트 삭제 (21→20개) - MemberServiceTest: mock capture 제거, 단언문 분리 (5→6개) - MemberServiceIntegrationTest: 단언문 분리, 마스킹 버그 수정 (9→11개) - MemberE2ETest: 시나리오 분리 (1→5개 독립 테스트) - Squash 잔류 파일 6개 정리 - CLAUDE.md: 테스트 단위 원칙 추가 (1 테스트 = 1 단언문) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Like 일반화: ProductLike → Like(subjectType, subjectId) enum 패턴 (02/03/04 설계 문서 반영) - ERD 보강: 무FK 운영 규약(참조 무결성 매트릭스) + 인덱스 전략 추가 - 잔존 코드 삭제: modules/jpa 도메인 중복 6개, modules/kafka confg 오타 1개 - 구 문서 ARCHIVE 마커 추가 (14개), SoT를 docs/design/01~04로 지정 - 중복 문서 삭제 (docs/temp/refactoring-plan.md) - .gitignore에 .DS_Store 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 도메인 모델 정의서(05) 작성: BC 경계, 레이어 책임, Aggregate 규칙 - 아키텍처 설계서(06) 작성: 레이어 상세, 의존 방향, 의사결정 프레임워크, ADR - Brand/Product TDD 구현 계획서 작성 - Facade → CatalogDomainService 전환 반영 (시퀀스/클래스 다이어그램) - Volume 3 전체 논의 기록 문서화 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- modules/ → infrastructure/ 디렉토리 이동 (jpa, redis, kafka) - supports/error/ 모듈 분리 (CoreException, ErrorType) - infrastructure/security/ 신규 모듈 (BCryptPasswordEncryptor) - Password DIP: PasswordEncryptor 인터페이스 domain에, BCrypt 구현 infrastructure에 - Password changeTo 패턴 도입 (validate + create 통합) - MemberId VO 생성 (Long 래퍼, 타입 안전성) - Member equals/hashCode 추가 (id 기반, Hibernate 권장) - DTO 네이밍 통일: Command/Info/ApiRequest/ApiResponse 체계 - Presentation DTO 분리: MemberApiResponse (마스킹 포함) - VO 단위 테스트 분리 (Email, LoginId, MemberName, Password, MemberId) - testFixtures: FakePasswordEncryptor 추가 - 설계 문서 및 논의 기록 업데이트 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Catalog BC 전체 구현: Brand, Product CRUD (Domain~Presentation) - BrandDeleteService: Brand 삭제 시 Product 연쇄 soft-delete - VO: Name(공유), Money, Stock, Quantity 도입 - Member 리팩토링: DTO 네이밍 통일, MemberInfo에 memberId 추가 - Order 설계 변경: OrderLine(Entity) + OrderLineSnapshot(VO, @entity) 분리 - 설계 문서 6종 OrderLine/OrderLineSnapshot 반영 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Entity 행위 메서드 추가: Brand.hasName(), hasNameStartingWith(), Product.hasName(), belongsToBrand(), hasDescription(), hasStock() - VO 비교 메서드 추가: Name.startsWith(), Quantity.isEqualTo(), Stock.isEqualTo() - 전체 테스트에서 getter 단언문을 boolean 행위 메서드로 변경 - 프로덕션 미사용 테스트 삭제 (MemberIdTest, ProductTest likesCount) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Order Entity: place(), isAccepted(), isOwnedBy(), assignOrderLines() - OrderLine Entity: Quantity VO 포함, OrderLineSnapshot 생성 위임 - OrderLineSnapshot Entity: 주문 시점 상품 스냅샷 보존 - OrderStatus enum: ACCEPTED, REJECTED - Repository Port: Order, OrderLine, OrderLineSnapshot 인터페이스 - ProductRepository.findAllByIdIn() 추가 - ErrorType.FORBIDDEN 추가 - 도메인 단위 테스트: OrderTest, OrderLineTest, OrderLineSnapshotTest Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- OrderService: 주문 생성(재고 확인/차감), 내역 조회, 상세 조회, 관리자 조회 - 재고 충분 → ACCEPTED + 차감, 부족 → REJECTED + 미차감 (전부 아니면 전무) - DTOs: OrderCreateCommand, OrderLineRequest, OrderInfo, OrderLineInfo - 단위 테스트 13개: 정상/거절/예외 흐름 전체 검증 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- OrderRepositoryImpl, OrderLineRepositoryImpl, OrderLineSnapshotRepositoryImpl - 각 JpaRepository 인터페이스 구현 - ProductJpaRepository/ProductRepositoryImpl에 findAllByIdIn 누락분 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- OrderController: 주문 생성(201), 내역 조회, 상세 조회 (헤더 인증) - AdminOrderController: 전체 목록, 상세 조회 - Presentation DTOs: OrderCreateApiRequest, OrderApiResponse 등 - ApiControllerAdvice에 FORBIDDEN → 403 매핑 추가 - E2E 테스트 7개: 생성/거절/스냅샷/내역/상세/관리자 조회 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
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 You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Tip Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs). 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 |
…-pack-be-l2-vol3-java into volume-3 # Conflicts: # .gitignore # docs/analysis/class-diagram-analysis.md # docs/analysis/erd-analysis.md # docs/analysis/prompt-design-process-analysis.md # docs/analysis/requirements-gathering-analysis.md # docs/analysis/sequence-diagram-analysis.md # docs/design/02-sequence-diagrams.md # docs/design/03-class-diagram.md # docs/design/04-erd.md # docs/design/base/class-diagram-erd.md # docs/design/base/domain-definition-v2.md # docs/design/base/member-class-diagram.md # docs/design/base/requirements-input.md # docs/design/base/sequence-diagrams.md # docs/design/base/ubiquitous-language.md # docs/design/base/user-story.md
📌 Summary
🧭 Context & Decision
문제 정의
선택지와 결정
🏗️ Design Overview
변경 범위
주요 컴포넌트 책임
ComponentA:ComponentB:ComponentC:🔁 Flow Diagram
Main Flow