Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

구매자 회원가입 #16

Merged
merged 76 commits into from
Aug 13, 2024
Merged

Conversation

kimhyun5u
Copy link
Member

@kimhyun5u kimhyun5u commented Aug 11, 2024

💡 다음 이슈를 해결했어요.

Issue Link - #4


💡 이슈를 처리하면서 추가된 코드가 있어요.

Customer

  • Vendor 생성과 동일하게 생성 시 검증로직을 통과해야합니다.

SignUpCustomerService

  • Customer 를 생성하는 서비스 입니다.
  • 생성 중 RuntimeException 이 발생하면 롤백 되도록 메소드 단위에서 @Transactional 걸어 주었습니다.

CustomerController

  • Cutomer 컨트롤러입니다.
  • 서비스를 활용해 비즈니스 로직을 수행한 후 유저에게 응답을 전달합니다.

💡 이런 고민을 했어요.

Exception vs RuntimeException

  • Service 에서 @Transactional 로 묶으면 예기치 못한 RuntimeException 도 롤백할 수 있도록 CustomException을 RuntimeException 을 상속하도록함

✅ 셀프 체크리스트

  • 내 코드를 스스로 검토했습니다.
  • 필요한 테스트를 추가했습니다.
  • 모든 테스트를 통과합니다.
  • 브랜치 전략에 맞는 브랜치에 PR을 올리고 있습니다.
  • 커밋 메세지를 컨벤션에 맞추었습니다.
  • wiki를 수정했습니다.

kimhyun5u and others added 27 commits August 10, 2024 19:59
- NoOpPasswordEncoder: 아무런 기능을 제공하지 않는 PasswordEncoder
- DuplicateException: unique 제약조건에 부합하지 않을 때 발생하는 예외
- InvalidCreationException: 기타 제약조건에 부합하지 않는 경우 발생하는 예외
- 구매자 회원가입에 필요해 미리 구현
- 구매자 회원가입 테스트 구현
    - 정상 회원가입 테스트
    - 중복 이메일 회원가입 불가 테스트
- 이름, 이메일, 비밀번호, 전화번호 필드 추가
- 필드 검증 메서드 추가
- 구매자 영속화를 위한 Repository 인터페이스 구현
- SignUpCustomerService.signUp 파라미터 구현
- 구매자 회원가입 구현
`+` AuthController: "/auth" 컨텍스트 처리
`+` ApiResponse: 공통 응답처리를 위한 모델
`+` ErrorCode: 공통 예외처리를 위한 코드
`+` SignUpVendorRequest: POST /auth/vendor 요청을 받는 dto
- 구매자 회원가입 요청 DTO 생성
- 구매자 회원가입 API 구현
- 구매자 회원가입 API 클래스명 변경
- 구매자 제약조건 테스트(점주 제약조건 참조함)
전화번호를 검증하기 위한 어노테이션 및 커스텀 Validator 구현
`~` show-sql: 실행되는 sql 조회
`~` generate-ddl: 테스트시 테이블 자동 생성
`~` ddl-auto: 어플리케이션 생성시 생성, 종료시 삭제
`~` open-in-view: 의도하지 않은 조회 쿼리 발생 방지
- 구매자 API RequestBody 제약조건 테스트
- 이름 길이 1~50
- 이메일
- 비밀번호 8~20
- 전화번호
- Repository 의존성 제거
- 반복되는 생성 추상화
- 파라미터 검증 시 항상 잘못된 전화번호 형식이 들어가는 오류 수정
- 중복 이메일 회원가입 시 롤백 테스트 작성
- RuntimeException 을 사용해 @transactional 내의 예상하지 못한 RuntimeException이 발생해도 트랜잭션이 롤백되도록 수정
- email 필드에 @notblank 추가
- 이메일이 "" 이어도 통과되는 문제 수정
@kimhyun5u kimhyun5u added the ✨ Feature 기능 개발 label Aug 11, 2024
@kimhyun5u kimhyun5u added this to the 프로토타입 만들기 milestone Aug 11, 2024
@kimhyun5u kimhyun5u requested a review from Hyeon-Uk August 11, 2024 05:17
- 중복 이메일 에러 처리 정책 변경으로 인한 테스트 코드 수정
…4_kimhyun5u_구매자_회원가입

# Conflicts:
#	src/main/java/camp/woowak/lab/common/exception/ErrorCode.java
#	src/main/java/camp/woowak/lab/common/exception/HttpStatusException.java
- ErrorCode 삭제 후 CustomerErrorCode 적용
- CustomerController -> CustomerApiController
- camp.woowak.lab.web.dto.request.customer 밑으로 이동
- BadRequestException(ErrorCode, String) 생성자 추가
- 서버에 남기고 싶은 로그는 직접 입력하도록 수정
- 에러코드에 있는 메시지는 클라이언트를 위한 것
- InvalidCreationException(ErrorCode, String) 생성자 추가
- SignUp API 응답의 Response DTO 추가
- 유틸리티 클래스에 private 생성자 추가
@kimhyun5u kimhyun5u requested a review from Hyeon-Uk August 13, 2024 05:38
@kimhyun5u kimhyun5u marked this pull request as ready for review August 13, 2024 05:39
…매자_회원가입

# Conflicts:
#	src/main/java/camp/woowak/lab/customer/domain/Customer.java
#	src/main/java/camp/woowak/lab/payaccount/repository/PayAccountRepository.java
#	src/main/java/camp/woowak/lab/web/authentication/NoOpPasswordEncoder.java
#	src/main/java/camp/woowak/lab/web/authentication/PasswordEncoder.java
#	src/main/java/camp/woowak/lab/web/authentication/config/AuthenticationConfig.java
#	src/test/java/camp/woowak/lab/payaccount/domain/TestPayAccount.java
Copy link
Member

@Dr-KoKo Dr-KoKo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

잘 봤습니다. LGTM!

Copy link
Member

@june-777 june-777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생많으셨습니다 👍

- Validation 실패 시 메시지 명시
- Validate 시 에서 필요한 값을 Validator 의 field 로 추출
- Validation 실패 시 메시지 명시
@kimhyun5u kimhyun5u merged commit 8c3c80d into main Aug 13, 2024
1 check passed
@kimhyun5u kimhyun5u deleted the feature/4_kimhyun5u_구매자_회원가입 branch August 13, 2024 08:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature 기능 개발
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[기능] 구매자 회원가입
4 participants