Skip to content
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

Feat: 팔로우 관련 기능 개발 #234

Merged
merged 6 commits into from
Oct 3, 2024
Merged

Conversation

yumzen
Copy link
Member

@yumzen yumzen commented Sep 30, 2024

#️⃣연관된 이슈

📝작업 내용

  • 팔로우 및 취소 기능
  • 팔로우 여부 조회 기능
  • 팔로잉 목록 조회
  • 팔로워 목록 조회

🔎코드 설명 및 참고 사항

이전 pr에서는 QueryDsl 쿼리 작성 시 Qclass를 import 해왔는데, Qclass를 static import 하도록 수정했습니다~

💬리뷰 요구사항

@yumzen yumzen added the ✨ Feature 기능 개발 label Sep 30, 2024
@yumzen yumzen self-assigned this Sep 30, 2024
@ParkJh38
Copy link
Contributor

ParkJh38 commented Oct 2, 2024

파일명이랑 디렉토리 구조를 통일해야 될것 같습니다!
그리고 MemberRepositoryCustom.java, MemberRepository.java를 상속관계로 설정했던데 혹시 이유가 있나요??

repository > MemberRepository.java / MemberRepositoryCustom.java / MemberRepositoryImpl.java
service > FollowService.java / MemberQueryService.java

  1. service에서 Service / ServiceImpl 으로 나누지 않고 Service 하나로 하기로 했으므로 _____Service.java로 하거나, _____ServiceImpl.java로 설정
  2. repository에서는 MemberRepository.java만 놔두고 MemberRepositoryImpl.java가 기존 Codiary (ver 1.0)에서는 MemberCommandServiceImpl.java에 구현됐었던것 같은데, 이것도 결정 필요
  3. repository > MemberRepositoryCustom.java / MemberRepositoryImpl.java 도 기존 Codiary (ver 1.0)에서는 MemberCommandService.java / MemberCommandServiceImpl.java로 repository가 아닌 service에 있어서 해당 파일도 디렉토리 위치 결정 필요

(개선 방향 의견)
repository > MemberRepository.java (변동 X) / MemberRepositoryCustom.java (작성 의도 확인 필요) / MemberRepositoryImpl.java (service로 이동 CommandService)

service > FollowService.java (변동 X) / MemberQueryService.java (변동 X)

@yumzen
Copy link
Member Author

yumzen commented Oct 2, 2024

@ParkJh38
repositoryCustom, repositoryImpl은 JpaRepository에서 Querydsl 사용 가능하게 설정하기 위해서 만든 파일입니다!
Querydsl을 적용할 더 좋은 방법이 있을까요.??

@ParkJh38
Copy link
Contributor

ParkJh38 commented Oct 2, 2024

@yumzen
확인했습니다! 이대로 진행하면 될것 같아요
추가적으로, 그러면 기존에 CommandService.java에서 구현한 부분들은 RepositoryImpl.java에서 작성하면 될까요?

@ParkJh38 ParkJh38 merged commit 03cca29 into develop Oct 3, 2024
1 check passed
@yumzen
Copy link
Member Author

yumzen commented Oct 3, 2024

@ParkJh38 @lee-haeseung
RepositoryImpl 파일은 Querydsl을 이용해 커스텀 쿼리를 작성하는 구현체입니다.
RepositoryCustom 인터페이스는 커스텀 쿼리 메서드를 선언하는 곳이고, RepositoryImpl 클래스는 RepositoryCustom 인터페이스를 구현하여 해당 메서드를 오버라이드합니다! 그리고 Repository가 RepositoryCustom을 상속하게 되면, Repository를 통해 호출할 때 RepositoryImpl에 구현된 커스텀 메서드가 실행되는 겁니다

즉 Querydsl을 사용하면 Repository는 기존 Repository, RepositoryCustom, RepositoryImpl 세가지 파일로 관리가 되는 것이고 Service와는 별개입니다~!

@yumzen yumzen deleted the feature/#233-follow branch October 6, 2024 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature 기능 개발
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants