-
Notifications
You must be signed in to change notification settings - Fork 113
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_문성민 3주차 과제 (3단계) #404
Open
Dalsungmin
wants to merge
59
commits into
kakao-tech-campus-2nd-step2:dalsungmin
Choose a base branch
from
Dalsungmin:step3
base: dalsungmin
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_문성민 3주차 과제 (3단계) #404
Dalsungmin
wants to merge
59
commits into
kakao-tech-campus-2nd-step2:dalsungmin
from
Dalsungmin:step3
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
2주차 3단계 그대로 옮겨왔습니다!
말씀해주신대로 try catch문에서 GlobalExceptionHandler로 처리하도록 변경 했습니다!
말씀해주신대로 NULL 상황을 생각하는 코드로 수정했습니다. 그런데 여기서 '카카오'가 들어가면 에러가 정상적으로 발생하나 '카'만 들어가도 에러가 발생 하는데 어떻게 수정해야 할지 모르겠습니다!
미리 기본적으로 DB에 넣을 정보를 담은 data.sql과 테이블 형식을 담은 schema.sql 생성 model에서 테이블을 생성해서 여기서는 일단 schema파일은 주석 처리 했습니다!
빌드 파일과 프로퍼티 파일에 JPA구현에 필요한 내용들 추가
주어진 예시에 맞게 클래스들을 다시 구성하고 엔티티로 변환
인터페이스 구현을 위해 기존 레포지토리 클래스를 삭제하고 인터페이스 파일로 재생성
인터페이스 구현을 위해 기존 멤버 레포지토리 클래스를 삭제하고 멤버 인터페이스 파일로 재생성 findByEmail, existsEmail 메서드는 인터페이스의 기본 메서드에 없는 기능이므로 추가로 메서드 작성
인터페이스 구현을 위해 기존 위시리스트 레포지토리 클래스를 삭제하고 위시리스트 인터페이스 파일로 재생성 findByMemberId 메서드는 인터페이스의 기본 메서드에 없는 기능이므로 추가로 메서드 작성
인터페이스와 연결하며 자료형 Optional로 변경
인터페이스와 연결하면서 자료형 수정하고 메서드들 인터페이스에 맞게 수정
인터페이스와 연결하면서 메서드들 인터페이스에 맞게 수정
서비스와 연결하면서 자료형 엔티티로 변환하고 html 링크로 반환하던 리턴 값을 엔티티로 변경
서비스와 연결하면서 매개변수들 알맞게 수정
반환되는 엔티티에 들어갈 자료형 고정하고 delete 메서드 반환 엔티티 수정
try catch문에 있던 내용 가져오면서 추가
일부 메서드들이 deprecated 경고가 나와서 최신 버전에 맞는 메서드들로 수정
Product 인터페이스의 testFindById() 메서드 테스트
상품을 추가하는 save() 메서드 테스트
ID를 조회해 상품을 삭제하는 deleteById() 메서드 테스트
회원가입하는 save() 메서드 테스트
로그인 하기 위해 저장된 내용과 입력한 내용을 비교하는 메서드 테스트
존재하는 이메일인지 검증하는 existsByEmail() 메서드 테스트
위시리스트에 사용자ID, 상품ID를 입력받아 상품을 추가하는 메서드 테스트
아이디로 조회하는 getMemberId() 메서드 테스트
아이디로 조회해서 해당 상품 삭제하는 기능 테스트
mySQL 관련 내용들이 들어있으면 주석처리되어있는 schema.sql의 내용들이 SQL문법상 오류라는 에러와 WISH 테이블이 생성되지 않아 비었다는 에러가 자꾸 생겼습니다. 제가 만든 테이블은 wish 였는데 왜 대문자로만 받아들여 인식해서 방법을 찾다가 일단 이렇게 하니 테스트 코드들이 정상 작동 했습니다. 이 내용들 주석 처리 하지 않아도 appication은 잘 동작했습니다!
멤버ID와 위시리스트의 OneToMany 구현을 위해 어노테이션 추가
멤버ID와 위시리스트의 OneToMany 구현을 위해 어노테이션 추가 멤버 ID를 멤버 객체로 교환한 뒤 getter, setter자료형에 맞게 수정
위시리스트를 조회 할 때 이제 멤버ID가 아닌 멤버를 통해 조회하므로 메스드에 넣을 매개변수 자료형 멤버로 수정
위시리스트에 상품을 추가할 때 상품에 대한 정보만 필요한게 아니고 멤버ID를 통해 멤버를 찾은 다음 그 멤버에 상품을 추가하도록 메서드 수정
위시리스트 상품을 조회 할 때 멤버 ID를 통해 바로 조회 했었지만 이제 멤버ID를 통해 멤버를 구하고 그 멤버를 통해 위시리스트 상품을 조회 하도록 수정
상품을 추가 할 때 이전에는 멤버ID와 상품ID를 직접 입력해서 추가했었는데 이제 멤버ID는 회원 가입이나 로그인한 뒤 받은 인증 토큰에서 받아오기 때문에 상품 ID만 입력하여 상품을 추가하도록 수정
상품을 조회 할 때 이전에는 멤버ID를 통해 조회 했었지만 이제는 멤버ID를 전달하면 그 멤버ID로 등록된 멤버를 찾는다. 찾은 멤버로 다시 위시리스트로 조회하기 때문에 이 로직으로 동작하도록 수정
상품을 추가 할 때 이전에는 직접 멤버와 상품 ID를 입력해서 저장한 뒤 조회한 멤버 ID와 입력 멤버 ID가 동일한지 비교 했었다. 이제는 멤버를 저장한 뒤 생성되는 멤버와 상품 ID를 직접 입력한 뒤 저장된 위시리스트 상품 ID와 입력한 상품ID가 동일한지 테스트 하도록 수정
위시리스트 상품을 조회 할 때 이전에는 멤버와 상품 ID를 입력해서 위시리스트 상품을 생성하고 멤버 ID를 불러왔을때 입력한 ID와 같은지 비교했었다. 변경한 뒤 이메일과 비밀번호를 입력해 멤버를 생성한뒤 저장한다. 이 멤버와 상품 ID를 입력해 위시리스트 상품을 만들고 findByMember로 조회 했을때 넣어줬던 멤버가 있는지 테스트 하도록 수정
위시리스트 상품을 삭제 할 때 전에는 멤버와 상품 ID를 입력해 상품을 저장한다. 그리고 삭제 한 뒤 전에 입력했던 멤버ID로 조회 했을 때 존재하는지 테스트 했었다. 변경 한 뒤 이메일과 비밀번호로 멤버를 생성한 뒤 이 멤버와 상품 ID로 상품을 생성한다. 다시 삭제한 뒤 상품 ID로 조회 했을 때 상품이 존재하는지 조회해서 테스트한다.
상품관리 페이지가 동작하도록 컨트롤러와 product-list와 product-detail을 수정
productId와 product_id가 혼용되어 통일하기 위해 수정
페이지의 디폴트 값 0, 사이즈 디폴트 값 5로 설정 하고 페이지네이션 구현위해 서비스로 넘겨줄 매개변수에 pageable로 변경
반환하는 자료형을 리스트에서 페이지로 수정하고 레포지토리로 넘겨주는 변수도 pageable로 수정
페이지의 디폴트 값 0, 사이즈 디폴트 값 5로 설정 하고 페이지네이션 구현위해 서비스로 넘겨줄 매개변수에 페이지값과 사이즈 추가
삭제 후 위시리스트 페이지에 그대로 있어야 하므로 반환 값을 삭제된 위시리스트 페이지로 변경
컨트롤러로부터 페이지 값과 사이즈 받아서 pageable 생성 후 레포지토리로 전달하도록 수정
pageable까지 받아서 리스트가 아닌 Page형으로 반환
상품관리 페이지와 같은 포맷으로 삭제 기능을 추가해 특정 상품을 삭제 할 수 있도록 구현
pageable까지 같이 받아서 생성된 products가 존재하는지 테스트
토큰의 memberId가 같은지 만료시간은 안지났는지 검증하는 과정 추가 만약 틀리다면 Token is invalid! 메시지 반환
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.
이번주도 에러들을 헤쳐나가다보니 너무 늦어진거 같습니다...
찾아보니 ProductService에서 보통 setter를 쓰면 안좋다고 들었는데 그럼 어떤식으로 구현해야 할지 잘 모르겠습니다... 그래서 일단 원래 하던대로 유지했습니다.
PR이 너무 늦은 감이 있지만 다음주에는 더 노력해서 당겨보겠습니다..