Skip to content

리팩토링, 테스트 추가#97

Open
BrownLEE99 wants to merge 2 commits intoback_release_1.0.0from
storeversion2
Open

리팩토링, 테스트 추가#97
BrownLEE99 wants to merge 2 commits intoback_release_1.0.0from
storeversion2

Conversation

@BrownLEE99
Copy link
Contributor

Store 관련 코드를 리팩토링 했습니다.

  1. Store,Address 매핑
  • 원래 OneToOne이 였지만, 일대일 시 lazy fetch가 적용되지 않는 문제가 발생하여 OnetoMany <-> ManyToOne으로 수정했습니다.
  1. 비즈노 API의 호출 서비스를 만듬
  • 비즈노 API 호출 서비스 클래스를 별도로 만들었습니다.
  1. CrnLog의 타입 변경
  • CrnLog의 user_id가 디비에 binary 타입으로 잘못저장되어 user_id 컬럼을 선언하고 해당 타입을 UUID로 설정했습니다.
  1. 400번 에러 삭제(다른 400번대로 변경)
  • 400 Bad Request는 광범위한 에러이기 때문에 다른 400번대로 변경하였습니다. 예를 들어 가게 관련 수정 시 사용자 측에서 잘못 입력했을 시, 인증 관련 오류로 처리했습니다.
  1. 토큰 관련 리팩토링
  • 원래는 서비스 단에서 User 서비스를 호출하여 토큰을 디코딩하여 input id를 받아오고 해당 inputid를 사용하여 User를 가져오는 방식
  • 첫번째 수정: 컨트롤러 단에서 위 과정을 수행한다음에 서비스 호출 시 넘겨주어서 서비스에서 해당 서비스가 다른 서비스를 호출하는 것을 방지
  • 하지만 수정이나 삭제는 jpa가 변경사항을 감지하여 알아서 저장해주는 식인데, user를 파라메터로 받아버리면 해당 user를 추적하지 않아 자동으로 업데이트가 안됐습니다.
  • 두번째 수정: 컨트롤러 단에서 user_id를 찾아서 서비스에 넘기고, 서비스에서 유저 레포(findById)를 통해 user를 받아오는 식으로 수정했습니다.
  1. 전체적인 리펙토링
  • 안쓰는 import 문 삭제, 주석 한글로 추가
  • 아래 코드 db-config에 추가좀 해주세요. 해당 코드가 들어가야 location이 인덱스로 지정됩니다.
spring.jpa.defer-datasource-initialization=true
spring.sql.init.mode=always
  1. 테스트 코드 작성
  • mock 테스트를 통해 단위 테스트를 진행하였습니다.

@BrownLEE99
Copy link
Contributor Author

image

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants