-
Notifications
You must be signed in to change notification settings - Fork 118
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
부산대 BE_박민재 2주차 과제(2단계) #340
Open
minjae4650
wants to merge
25
commits into
kakao-tech-campus-2nd-step2:minjae4650
Choose a base branch
from
minjae4650:step2
base: minjae4650
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
부산대 BE_박민재 2주차 과제(2단계) #340
minjae4650
wants to merge
25
commits into
kakao-tech-campus-2nd-step2:minjae4650
from
minjae4650:step2
Conversation
This file contains 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
- 1주차 과제 피드백 반영 - README.md 제목은 이번 과제인 위시리스트로 변경
- ID로 찾을 때, Product Not Found 이면 여러개의 상품을 동시 업데이트 하는 경우 ID가 없는 경우 앞에거는 수정이 완료되고 그 뒤에서부터는 Exception이 발생하여 뒤에거는 Handler가 바로 처리. - 따라서 이 부분만 try catch 로 뒤에 부분도 정상적으로 동작되도록 처리
- Spring Boot 프로젝트에 유효성 검사를 위한 의존성인 'org.springframework.boot:spring-boot-starter-validation'을 추가
- 불필요한 txt 삭제
- 전역 예외 처리 관리를 위해 GlobalExceptionHandler 클래스를 추가 - ProductNotFoundException 예외를 처리하여 404 NOT FOUND 상태 코드를 반환하도록 설정했습니다. - MethodArgumentNotValidException 예외를 처리하여 입력값 유효성 검사 실패 시 400 BAD REQUEST 상태 코드를 반환하도록 설정
- createProduct 메소드에 @Valid 어노테이션을 추가하여 Product 생성 시 입력값에 대한 유효성 검증을 수행
- 반환값을 ResponseEntity<Map<String, Object>> 로 통일
- Put은 모든 속성을 줘야되기 떄문에 @Valid를 통해서 유효성 검사를 하도록 수정
- "카카오" 문구가 들어간 경우 msg로 사용자에게 알림
- ForbiddenWordException 예외를 처리하는 핸들러를 GlobalExceptionHandler에 추가 - 예외 발생 시 400 BAD REQUEST 상태 코드를 반환하고, 예외 메시지를 응답 본문에 포함
- 카카오 문구가 포함된 경우 Exception을 일으킴 - 전역 Exception Handler에서 이를 처리
- 함수 새로 만드는 것 대신 applyUpdate에서 처리
- 여러개 업데이트 할 때, 에러 발생 시 뒤에 객체들은 수정안되는 것 방지
- JWT 처리를 위해 다음과 같은 JJWT 라이브러리 의존성을 Gradle에 추가
- 비밀번호 해싱을 위해 jBCrypt 라이브러리 의존성을 Gradle에 추가
- 회원 정보를 저장하고 조회하기 위한 MemberRepository 인터페이스를 추가 - save 메소드: Member 객체를 저장 - findByEmail 메소드: 이메일을 통해 Member 객체를 조회
- 회원 정보를 데이터베이스에 저장하고 조회하기 위한 MemberRepositoryImpl 클래스를 추가 - JdbcTemplate을 사용하여 데이터베이스 연동 구현 - save 메소드: 회원 정보를 데이터베이스에 저장하고 생성된 ID를 설정 - findByEmail 메소드: 이메일을 통해 회원 정보를 조회 - memberRowMapper를 사용하여 ResultSet을 Member 객체로 매핑
- 회원 정보를 저장하기 위한 members 테이블 생성 스크립트를 추가 - id 필드는 BIGINT 타입의 자동 증가 기본 키로 설정 - email 필드는 VARCHAR(255) 타입으로, NOT NULL 및 UNIQUE 제약 조건 추가 - password 필드는 VARCHAR(255) 타입으로, NOT NULL 제약 조건 추가
- 회원 가입 및 로그인을 위한 MemberService 인터페이스를 추가 - registerMember 메소드: 회원 등록을 처리하고 결과를 Optional<String>으로 반환 - login 메소드: 이메일과 비밀번호를 통해 로그인 처리하고 결과를 Optional<String>으로 반환
- 회원 가입 및 로그인을 처리하기 위한 MemberServiceImpl 클래스를 추가 - registerMember 메소드: 비밀번호를 해싱하고, 회원 정보를 저장하며, JWT 토큰을 생성하여 반환 - login 메소드: 이메일과 비밀번호를 검증하고, 성공 시 JWT 토큰을 생성하여 반환 - BCrypt를 사용하여 비밀번호 해싱 및 검증 - JJWT를 사용하여 JWT 토큰 생성
- 회원 가입 및 로그인을 위한 MemberController 클래스를 추가 - /members/register 엔드포인트: 회원 등록을 처리하고, 성공 시 JWT 토큰을 반환 - /members/login 엔드포인트: 이메일과 비밀번호로 로그인 처리, 성공 시 JWT 토큰을 반환 - 실패 시 적절한 상태 코드와 메시지를 반환
- 구현된 register 기능과 login 기능에 대해서 요청과 응답 예시와 함께 정리
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.
간단한 register과 login 관련해서 기능 구현하였습니다.