-
Notifications
You must be signed in to change notification settings - Fork 2
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
[Master] 2주차 7팀 Review PR #26
Closed
Closed
+1,475
−310
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
oauth, security와 관련된 dependency를 추가하였습니다. 관련 이슈: #2
UserEntity와 Repository를 추가 하였습니다. 관련 이슈: #2
oauth 로그인을 위해 csrf를 차단 (rest api이기 때문에 jwt로 검증을 함), formlogin을 차단(사용하지 않음), httpBasic을 차단(사용하지 않음) 하였습니다. session에 stateless 속성을 부여하였습니다. 관련 이슈: #2
서브 모듈을 추가하여 민감한 정보를 관리합니다. 관련 이슈:#2
서브 모듈을 최신화 하여 api 키를 업데이트하였습니다 관련 이슈: #2
.gitignore 파일에 application.properties를 넣지안았는데도 추적되지 않음. 그 문제를 해결 관련 이슈: #2
authentication을 구현하였습니다. kakao만 한다는 가정하에 kakao를 직접 넣었습니다. 관련 이슈: #2
더미 데이터여서 그냥 만들었었는데, 피드백에 따라 변경하기로 결정
패키지 명은 모두 소문자로 한다는 컨벤션에 맞추어 소문자로 변경
해당 기능 최초 구현, 구현 방식이나 데이터의 추가가 개선되어야 할 것 같다
- PlaceService 인터페이스 제거, getCategories()에서 List 반환 - Place id의 nullable=false 제거 - CategoryListDTO -> CategoryListResponse로 이름 변경해서 직관화함 관련 이슈: #7
사용 지점과 최대한 가깝게 변수 선언 시점을 변경
메서드 체이닝을 통해 필요 없는 변수를 삭제
PlaceTime VO와 Menu VO를 Place 클래스에 추가후, 테스트 코드까지 수정하였습니다. 관련 이슈: #7
id를 제외한 필드를 사용하여 생성자를 만들고, 이를 통해 테스트를 진행하기 위하여 @nonnull과 @requiredargsconstructor을 사용하여 리펙토링
추후에 통합 테스트 필요 ( + POSTMAN을 이용한 API 테스트도 필요 )
/login 에 authenicated가 적용되어 있어 무한 리다이렉트 되던 문제를 해결하였습니다. 관련 이슈:#2
oauth 로그인 시 유저 정보를 db에 저장 관련 이슈: #2
패키지를 application-domain-persistence-presentaion 구조로 설정하였습니다. List<Category> 대신, CategoryInfo를 구현해서 dto로 적용시켰습니다. 관련 이슈: #7
Place 클래스에서 주소와 위도, 경도를 각각 Address와 Coordinate VO로 추출했습니다. 관련 이슈: #7
추후에 통합 테스트 필요 ( + POSTMAN을 이용한 API 테스트도 필요 )
record 컨벤션, dto 컨벤션 반영 및 패키지 구조 변경
Loading status checks…
…videoAlias # Conflicts: # src/test/java/team7/inplace/VideoTest/domain/VideoTest.java # src/test/java/team7/inplace/VideoTest/repository/VideoRepositoryTest.java # src/test/java/team7/inplace/VideoTest/service/VideoServiceTest.java
submodule이 내 private repository라서 사용하지 않기로 정함 고로 삭제 관련 이슈: #2
…Alias [Feat] #5 videoAlias 정보를 랜덤하게 매핑해주는 기능을 구현했어요!
…tep3/Team7_BE into feat/#2-authentication
…ntication [feat] #2 Oauth2 로그인 authentication을 구현하였습니다.
- PlaceService 인터페이스 제거, getCategories()에서 List 반환 - Place id의 nullable=false 제거 - CategoryListDTO -> CategoryListResponse로 이름 변경해서 직관화함 관련 이슈: #7
PlaceTime VO와 Menu VO를 Place 클래스에 추가후, 테스트 코드까지 수정하였습니다. 관련 이슈: #7
패키지를 application-domain-persistence-presentaion 구조로 설정하였습니다. List<Category> 대신, CategoryInfo를 구현해서 dto로 적용시켰습니다. 관련 이슈: #7
Place 클래스에서 주소와 위도, 경도를 각각 Address와 Coordinate VO로 추출했습니다. 관련 이슈: #7
- DataLoader로 더미데이터 저장 - Controller: 사용자 위치 기준으로 장소 조회 - Service, Repo: 가까운순으로 장소 조회 로직 구현 - PlaceComm: 위도 경도, page 정보를 service단으로 전송하는 dto - PlaceInfo: 조회된 장소 정보를 controller 단으로 전송하는 dto 관련 이슈: #7
- Place의 id를 placeId -> id로 변경 - getCategories() 로직을 CategoryService구현해서 분리 관련 이슈: #7
- PlaceInfo 생성자를 Entity말고 PlaceInfo 생성자로 이동시킴 - PlaceService: getPlacesWithinRadius에서 return값 단순화했습니다. 관련 이슈: #7
- PlaceInfo 생성자를 Place에서 생성하도록 변경하였습니다. 관련 이슈: #7
- PlaceInfo 팩토리메서드 이름을 of로 변경함 - 그 후 static 메서드로 지정 관련 이슈: #7
- PlaceController: getPlaces() 파라미터를 클래스로 만들고 ModelAttribute로 받도록 하였습니다. - Address: AddressInfo 생성 메서드를 AddressInfo 자체 메서드로 이동하였습니다. - 그외: 포메팅 일치 관련 이슈: #7
[Feat] #7 place 사용자 위치 기준으로 조회하는 기능을 구현했어요
Loading status checks…
[Weekly] 2주차 과제 PR
Loading status checks…
[develop] 2주차 Master PR
Loading status checks…
[Weekly] 2주차 Weekly 수정 PR
Loading status checks…
[develop] 2주차 Master PR
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.
✨ 작업 내용
✨ 질문사항
Video 엔티티 조회를 위해 findByInfluencerIdIn 이라는 메서드를 사용했는데, 이 방식으로 조회를 하면 Video와 다른 연관관계를 맺고 있는 Place를 지연로딩 방식으로 호출하기 때문에 이후에 N+1 문제가 발생해 성능이 저하될 수 있다는 글을 보게 되었습니다, 이를 해결하기 위해 Jsql 쿼리 어노테이션 사용 이외에도 다른 해결 방법이 있는지 궁금합니다!
PlaceRepo에서 사용자랑 거리상 가까운 place를 조회하는걸 sql문으로 짰는데, 이렇게하면 db에서 거리 연산문제로 성능저하나 동시성문제가 발생할까 우려됩니다. 만약 문제가 발생할 가능성이 있다면 이를 해결하기위한 방법이 있을지 궁금합니다
지난주에 말씀하신 "Response로 매핑하는 것 까지 Service 쪽에서 담당하면 좋겠네요!" 라는 부분에 질문드립니다.
Api스팩의 변경으로 인해 Service 레이어가 변경되지 않도록 하기위해 Service와 Controller에 dto를 각각 만들게 되었습니다.
만약 Service 레이어에서 Controller에 있는 DTO를 알게된다면 이는 의존관계가 맞지 않는 것 같습니다. 의견 부탁드립니다!
현재 개발중인 기능 중 매일 유튜브 채널의 특정 플레이리스트를 가져와서 포함되어 있는 영상들에 대해 새 영상은 DB에 저장하고 이미 존재하는 영상들의 조회수 변화량을 측정하는 기능이 있습니다.
현재 스프링 스케줄러로 기능을 개발하고 있는데, 현재는 단순 Api 호출 기능이기 때문에 괜찮을 것으로 예상 되지만 추후 영상 내용에 포함된 정보 추출로 인해 AI 호출 등이 필요해 미리 배치로 마이그레이션 할지 고민중입니다.
스케줄러와 배치의 가장 큰 차이가 무엇이고, 어느정도 규모의 처리일 때 배치로 마이그레이션 하는것이 이득인지 궁금합니다.
리뷰 잘 부탁드립니다. 감사합니다!