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] 모임 상세 조회 API 마이그레이션 #326

Merged
merged 7 commits into from
Aug 24, 2024
Merged

Conversation

mikekks
Copy link
Member

@mikekks mikekks commented Aug 24, 2024

👩‍💻 Contents

  • 모임 상세 조회 API를 마이그레이션 했습니다.
스크린샷 2024-08-24 오후 9 51 00

📝 Review Note

일급컬렉션

  • List<Apply> 부분을 Applies 라는 일급컬렉션을 만들어 관련 로직을 해당 클래스 내에 넣었습니다. 개인적으로 이런식으로 하는게 객체지향적이다 싶어서 추가해봤는데요! 변수명부터 시작해서 더 좋은 의견있으시면 말씀주세요!
  • 참고링크 : https://jojoldu.tistory.com/412

서비스레이어에 Time 클래스 추가

  • now() 라는 값이 Testability 를 많이 낮춘다고 생각했습니다!
  • 그래서 의존성 주입으로 풀어내봤습니다. 테스트 코드 작성시에는 MockTime 클래스를 만들어서 테스트 코드를 작성했습니다!
  • 참고링크 : https://jojoldu.tistory.com/676?category=1036934

API 응답값

  • 현재 FE 의 마이그레이션 부담이 크기 때문에 이전 응답값과 동일하게 유지하기로 했습니다!

양방향 연관관계 제거 -> 적용완료

  • 논의하게된 계기
    • 서비스 레이어쪽 테스트코드를 작성하려고 했었는데 알 수 없는 쿼리가 계속 발생하고, 이로 인해 테스트가 자꾸 실패했습니다..!
    • 조회임에도 불구하고 계속 user쪽에서 update문이 발생하고, 이로 인해 충돌이 발생하더라고요..
    • 원인찾는게 어려울것 같아서 일단 제외하고 PR 올렸는데요! 개인적인 생각으론 양방향 매핑이 문제라는 생각이 들더라고요..!
  • 제안
    • 그래서 앞으로 연관관계 사용을 지양하고, 제가 필요하지 않는 연관관계 끊는 작업을 해도 괜찮을지 여쭤보고 싶었습니다!
    • 예를 들어, User 엔티티의 @OneToMany 는 모두 다 필요하지 않다고 생각했습니다!
    • 사실 테스트 코드를 떠나서 저는 양방향 매핑을 지양하자는 주의여서 말씀드린 맥락이기도 합니다...!
    • 참고 링크1 : https://www.youtube.com/watch?v=vgNHW_nb2mg
    • 참고 링크2 : https://www.youtube.com/watch?v=dJ5C4qRqAgA&t=1398s (8분 1초)

📣 Related Issue

✅ 점검사항

  • docker-compose.yml 파일에 마이그레이션 한 API의 포워딩을 변경해줬나요?
  • Spring Secret 값을 수정하거나 추가했다면 Github Secret에서 수정을 해줬나요?
  • Nestjs Secret 값을 수정하거나 추가했다면 Docker-Compose.yml 파일 및 인스턴스 내부의 .env 파일을 수정했나요?

@mikekks mikekks added the 🎁 feature 새로운 기능 label Aug 24, 2024
@mikekks mikekks requested review from sgh002400 and yeseul106 August 24, 2024 13:04
@mikekks mikekks self-assigned this Aug 24, 2024
Copy link

height bot commented Aug 24, 2024

Link Height tasks by mentioning a task ID in the pull request title or commit messages, or description and comments with the keyword link (e.g. "Link T-123").

💡Tip: You can also use "Close T-X" to automatically close a task when the pull request is merged.

@mikekks mikekks merged commit de41110 into develop Aug 24, 2024
1 check passed
@mikekks mikekks deleted the feat/#318 branch August 24, 2024 13:05
mikekks added a commit that referenced this pull request Aug 31, 2024
* [FEAT] 모임 게시글 단일 조회 및 모임 게시글 개수 조회 V2 API 구현 (#275)

* [FEAT] 모임 게시글 단건 조회 API 마이그레이션 (#230)

* [FEAT] 모임 게시글 개수 조회 API 마이그레이션 (#230)

* [FEAT] 모임 게시글 개수 조회 API 테스트 코드 작성 (#230)

* [CHORE] nest.js swagger 에서 deprecated 처리 (#230)

* [DOCS] 스웨거 문서 작성 (#277)

* fix: ReplyDto 구현 (#281)

* [DOCS] README 수정

* fix: 스웨거 문서 수정 (#283)

* fix: 좋아요 여부 로직 수정 (#285)

* feat: 임시 API 개발 (#287)

* [FEAT] 모임 게시글 삭제 V2 API 구현 (#279)

* [FEAT] 모임 게시글 삭제 API 마이그레이션 (#278)

* [FIX] 모임 게시글 단건 조회 시, 없는 게시글 id의 경우 예외처리 (#230)

* [CHORE] Nest.js swagger 문서에서 v1 deprecated 처리(#278)

* chore: 댓글, 좋아요 삭제 로직 추가

* fix: delete 순서 변경

---------

Co-authored-by: mikekks <[email protected]>

* �[CHORE] 페이지네이션 메타데이터 추가 (#290)

* chore: 페이지네이션 메타 데이터 추가

* chore: Deprecated 처리

* [FEAT] 게시글 댓글 좋아요 토글 V2 API 구현 (#288)

* [FEAT] 게시글 댓글 좋아요 기능 추가

* [FEAT] 게시글 댓글 좋아요 변경 시 댓글 `likeCount` 변경

* [DOCS] 게시글 댓글 좋아요 V1 API에 Deprecated 주석 추가

* add: 코드 포맷터 적용

---------

Co-authored-by: mikekks <[email protected]>

* fix: 댓글 삭제 후 조회 로직 오류 해결 (#292)

* fix: PUT 메서드 추가 (#294)

* fix: 스웨거 오류 해결 (#297)

* fix: 스웨거 오류 해결 (#299)

* fix: 스웨거 오류 해결

* [FEAT] 광고 조회 API 개발 (#302)

* feat: 광고 조회 dto 정의

* feat: 광고 조회 API 컨트롤러 개발

* feat: 광고 엔티티 추가

* feat: 광고 조회 서비스 로직 구현

* chore: 도커 파일 수정

* fix: 스웨거 오류 해결

* fix: 스웨거 오류 해결

* [CHORE] 업데이트 -> 생성시점으로 변경 (#304)

* chore: 업데이트 -> 생성시점으로 변경

* chore: 업데이트 -> 생성시점으로 변경

* chore: userId -> orgId로 변경

* [FIX] playgroundId -> orgId로 변경

* [ADD] 컬럼 설명 추가

* [CHORE] FE 요청에 맞게 수정 (#306)

* [CHORE] response 응답에 @NotNull 추가

* [CHORE] userId, orgId 주석 추가

* [CHORE] 광고 조회 API에 category 추가

* [CHORE] Enumerate 추가

* [DOCS] 스웨거 설명 추가

* [FEAT] 유저 관련 API 마이그레이션 (#308)

* [CHORE] v2로 이름 변경

* [CHORE] 패키지 위치 수정

* [FEAT] applies 객체 추가

* [ADD] Dto 정의

* [FEAT] 내가 만든 모임 조회 및 내가 신청한 모임 조회 기능 구현

* [DOCS] 내가 만든 모임 조회 및 내가 신청한 모임 조회 스웨거 추가

* [CHORE] deprecated 처리

* feat: 전체모임 검색 및 필터링 마이그레이션 (#310)

* chore: deprecated 처리

* add: Dto 정의

* add: Dto 정의

* feat: 모임 검색 필터링 로직 구현

* docs: 스웨거 추가

* feat: 전체 모임 검색 및 필터링 서비스 로직 구현

* fix: 타임 객체 의존성 수정

* [FEAT] 로그인/회원가입 마이그레이션 (#311)

* chore: deprecated 처리

* add: dto 추가

* feat: 플레이그라운드 서버와의 통신 구현

* feat: 로그인/회원가입 로직 구현

* feat: 로그인/회원가입 엔티티 로직 구현

* chore: jwt 로직 포맷팅 및 클레임 put 로직 수정

* chore: 플레이그라운드 관련 데이터 추가

* chore: ci-cd 시크릿값 통일

* chore: 프록시 루트 변경

* [FEAT] 모임 삭제 API 구현 (#313)

* chore: deprecated 처리

* chore: 패키지 구조 변경

* feat: 모임 삭제 로직 구현

* feat: 모임장 확인 로직 구현

* docs: 모임 삭제 스웨거 추가

* chore: 패키지 구조로 인한 변경

* docs: 주석 수정

* chore: deprecated 처리 (#315)

* [FEAT] 모임 수정 API 마이그레이션 (#317)

* docs: 스웨거 추가

* feat: 모임 수정 로직 구현

* chore: 가독성을 위한 수정

* test: 테스트 코드 수정

* chore: deprecated 처리

* [FEAT] 모임 지원자 상태 변경 API 마이그레이션 (#320)

* chore: deprecated 처리

* docs: 스웨거 추가

* feat: 모임 지원자 상태 변경 로직 구현

* feat: 이미 처리된 경우 검증 로직 추가

* feat: 정원 초과 검증 로직 추가

* [CHORE] 광고 조회 API 수정 (#323)

* chore: 광고 조회 단건 -> 리스트로 수정

* docs: 스웨거 문서 수정

* [FEAT] presignedUrl 생성 로직 구현 (#324)

* chore: yml 데이터 추가

* feat: pre-signed-url 생성 로직 구현

* chore: deprecated 처리

* add: csv 관련 dto 추가

* [FEAT] csv 파일 업로드 및 url 반환 로직 구현 (#325)

* add: notnull 추가

* feat: csv 파일 업로드 및 url 반환 로직 구현

* chore: deprecated 처리

* docs: presignedUrl 관련 스웨거 추가

* feat: 신청자 검색 쿼리 구현

* [FEAT] 모임 상세 조회 API 마이그레이션 (#326)

* chore: 매직 리터럴 -> 상수로 변경

* chore: deprecated 처리

* add: dto 추가

* feat: 모임 상세 조회 구현

* refactor: Time DI를 통한 의존성 최소화

* test: 엔티티 테스트 코드 작성

* fix: 이전 버전과 동일한 응답값으로 변경

* [FEAT] 모임 게시글 수정 V2 API 구현 (#327)

* [FEAT] controller 코드 구현

* [FEAT] 엔티티 내 update 메서드 구현

* [ADD] 관련 dto 추가

* [FEAT] service 단 코드 구현

* [TEST] 테스트 코드 작성

* [CHORE] .gitignore 파일 수정

* [CHORE] nest.js 서버 스웨거 deprecated 처리

* [TEST] 댓글 관련 테스트 코드에서 누락된 meeting 정보 추가

* [CHORE] csv 파일 다운로드 로직 수정 (#330)

* chore: 모임 상태 설명 추가

* chore: 협업을 위한 스웨거 수정

* chore: 신청 상태 컬럼 추가

* chore: temp API 추가

* docs: 스웨거 기존과 동일하게 수정 (#331)

* refactor: 예외 응답 개선 (#335)

* [FEAT] 게시글 좋아요 토글 및 게시글 신고 API V2 구현 (#336)

* [FEAT] 모임 게시글 신고 api Controller 단 코드 구현

* [ADD] 모임 게시글 신고 api 관련 dto 추가

* [FEAT] 모임 게시글 신고 api Controller 단 코드 수정

* [FIX] Report 엔티티 연관관계 수정

* [FIX] 수정된 Report 엔티티에 맞게 댓글 신고 로직 수정

* [FEAT] 모임 게시글 신고 관련 service단 로직 구현

* [ADD] 모임 게시글 신고 관련 에러 메세지 추가

* [TEST] 모임 게시글 수정 테스트 코드 작성 및 댓글 신고 테스트 코드 수정

* [CHORE] 모임 게시글 신고 API nest.js 스웨거 deprecated 처리

* [FEAT] Like 엔티티 연관관계 수정 및 레포지토리 코드 구현

* [FEAT] 모임 게시글 좋아요 토글 api Controller 단 코드 구현

* [ADD] 모임 게시글 좋아요 토글 api 관련 dto 추가

* [FEAT] Post 엔티티 내에 likeCount 컬럼 업데이트 메서드 구현

* [FEAT] 모임 게시글 좋아요 토글 api Service 단 코드 구현

* [FIX] Like 엔티티 변경에 따른 commentService 로직 수정

* [TEST] 모임 게시글 좋아요 토글 api 테스트 코드 구현

* [CHORE] 모임 게시글 좋아요 토글 API nest.js 스웨거 deprecated 처리

* chore: 포맷터 적용

* chore: 포맷터 적용

---------

Co-authored-by: mikekks <[email protected]>

* fix: 트랜잭션 적용

* chore: 하나의 광고 이미지가 하나의 링크에 매핑되도록 수정 (#338)

* chore: 변수명 수정 (#340)

* add: 코드 포맷터 추가 (#342)

* �docs: 리드미 업데이트

* chore: 페이지네이션 방식 변경

* chore: 페이지네이션 방식 변경

* chore: spring validation 추가

* refactor: 모임 배너 조회 로직 개선 (#347)

* feat: Map 방어 코드 작성

* refactor: 배너 조회 로직 쿼리 개선

* setting: 릴리즈 노트 자동화 설정

---------

Co-authored-by: Yeseul Jo <[email protected]>
Co-authored-by: YeongWoooo <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🎁 feature 새로운 기능 size/XL
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEAT] 모임 상세 조회 v2 마이그레이션
1 participant