-
Notifications
You must be signed in to change notification settings - Fork 0
현재 인증된 사용자 조회 및 비밀번호 변경 API 구현 #15
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
Merged
Merged
Conversation
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
Member의 컨트롤러 클래스를 선언하였습니다
아직 구현은 하지 않았지만 API 명세서에 따라 엔드포인트들을 선언하였습니다
2개의 Request DTO를 정의하여 값 전달용과 외부 Request Body 형식 지정용으로 구분하였습니다
사용자의 권한을 지정하는 Enum 클래스를 GrantedAuthority를 상속받아 구현하였습니다
사용자의 정보를 조회하는 API의 응답 형식을 지정하는 DTO를 정의하였습니다
사용자 계정 정보를 관리하는 도메인 객체를 추가하였습니다
확장하여 사용하는 Entity 클래스 2종에 Getter 메서드와 public 접근 제어자를 추가하였습니다
실제 DB 테이블과 대응되는 Entity 클래스를 정의하였습니다
전 프로젝트에 걸쳐 사용될 Mapper 인터페이스를 구현하였고 도메인 객체와 JPA Entity 객체 간 Mapper 클래스를 구현하였습니다
ERD를 표현하는 임베드를 README에 추가하였습니다
브랜치 규칙을 포함하던 테이블에 다른 요소가 포함되었던 문제를 수정하였습니다
UUID를 기본 키로 가져가는 Entity가 요구사항의 변화로 더 이상 없다고 판단되어 관련 클래스를 삭제하였습니다
필드의 접근 제어가가 private 이던 것을 protected로 변경하여 상속받아 사용하는 하위 클래스에서 필드에 접근 가능하도록 조정하였습니다
UUID 기반 PK에서 정수형으로 자동 증분되는 형식의 PK로 변경하였습니다
UUID이던 id 필드가 Long 형으로 변경됨에 따라 필드의 자료형을 변경하였습니다
Ascildoc을 이용하던 README를 마크다운 파일로 변경하였습니다
Spring Bean에 등록하여 주고 인바운드,아웃바운드 Adapter를 구분해주는 어노테이션을 정의하였습니다
DTO 클래스를 Record로 변경하였습니다
Application 계층에 접근할 수 있는 Port와 그 구현체 Adapter를 구현하였습니다
Member 객체를 받아 GetMemberResponse 객체로 변환해주는 메서드를 추가하였습니다
읽기 Port와 쓰기(수정) Port를 각각 정의하여 책임을 분리하고 Application 계층에서 하위 Persistence 계층으로 접근할 수 있도록 하였습니다
Persistence 계층으로 접근하는 Adapter를 구현하였습니다
기본적인 쿼리와 QueryDSL을 이용하여 조금 더 복잡한 쿼리를 수행하는 Repository들을 구현하였습니다
Use Case 클래스에 사용되어 트랜젝션을 설정하고 Spring Bean으로 등록하는 어노테이션을 정의하였습니다
모든 Member 데이터를 조회하는 UseCase를 구현하였습니다
다양한 조건에 따라 Member를 검색하여 결과를 반환하는 UseCase 클래스를 구현하였습니다
애플리케이션 전역에서 발행되는 예외를 처리하고 클라이언트에 알맞은 응답을 반환해주는 클래스와 그를 위하여 필요한 클래스를 추가적으로 정의 및 구현하였습니다
Member 데이터가 null일시 발행될 MemberNotFoundException 클래스를 선언하였습니다
실제 비즈니스 로직과 연결하여 전체 사용자를 조회하고 사용자를 검색할 수 있는 엔드포인트를 구현하였습니다
다른 기능과 함께 구현되어야 할 기능에 TODO 주석을 추가하였습니다
인증 코드과 관련된 정보를 저장하고 관리하는 기능들의 영속(Persistence) 계층을 정의하고 구현하였습니다
인증 관련 정보를 저장 및 관리하는 영속,도메인 계층을 정의하고 구현하였습니다
단기간에 E-메일 인증을 5회 초과하여 요청할 시 발행될 예외 클래스와 인증 객체를 찾지 못하였을 시 발행될 예외 클래스를 구현하였습니다
엔드포인트 설정을 추가하고 불필요하고 알맞지 않은 응답을 반환하던 조건절을 제거하였습니다
대규모 리팩터링 전 MVP 구현을 위하여 기존 인터페이스의 DI를 제거하고 새로 생성한 인터페이스를 이용하도록 변경하였습니다
이메일 발송 기능은 존재하였지만 실제로 동작은 하지 않았던 이메일 인증 서비스를 실제로 구현하였습니다
비밀번호를 변경하는 클래스를 구현하였습니다
선언만 진행되고 미구현되었던 엔드포인트를 실제로 정의하였습니다
Google SMTP를 이용하기 위한 설정을 추가하였습니다
비밀번호 변경 엔드포인트에 대한 자유 접근을 허용하였습니다
추가적으로 요구되는 환경변수를 추가로 기록하였습니다
들여쓰기가 조금 다르게 적용되어 있던 코드를 변경하였습니다
이메일 인증이 진행되지 않았을 시 회원가입 요청을 반려하도록 수정하였습니다
같은 예외를 throw 하도록 설계된 2개의 if문을 하나의 if문 안에서 처리하도록 변경하였습니다
테스트 코드 작성을 위하여 테스트 클래스를 선언하였습니다
2가지 비즈니스 로직 클래스의 단위 테스트를 실제로 구현하였습니다
올바르지 않던 메서드의 매개변수 주입 순서를 수정하였습니다
이제 의미가 없어진 주석을 제거하였습니다
올바르지 않은 HTTP 상태 코드를 반환하던 문제를 수정하였습니다
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.
💡 PR 요약
Resolves: [Feat]
Member관련 기능 구현 #5, [Feat]email관련 기능 구현 #7📋 작업 내용
🤝 리뷰 시 참고사항
✅ 체크리스트
README,.env.example)