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 : 댓글 조회 페이지네이션 적용 및 검증 로직 추가 #183

Merged
merged 3 commits into from
Aug 11, 2022

Conversation

zxcv9203
Copy link
Collaborator

@zxcv9203 zxcv9203 commented Aug 10, 2022

작업사항

  • 댓글 조회시 페이지네이션 적용 (기본 사이즈 10)
  • 댓글 검증 로직 추가 (Post 존재 여부 및 해당 유저가 스터디를 가입하고 있는지 확인)
  • 댓글 이외의 부분의 검증로직에 대해서 책임을 넘기기 위해 Facade 패턴 적용
  • 커스텀 PageRequest VO가 두개 존재해 합치는 작업 완료(네이밍도 SimplePage로 변경)

image

중점적으로 봐야할 부분

PageRequest를 어떻게 작성해야 좋은 커스텀 PageRequest가 될까요 🤔

댓글 조회시 페이지네이션 적용 (기본 사이즈 10)
댓글 검증 로직 추가 (Post 존재 여부 및 해당 유저가 스터디를 가입하고 있는지 확인)
댓글 이외의 부분의 검증로직에 대해서 책임을 넘기기 위해 Facade 패턴 적용
커스텀 PageRequest VO가 두개 존재해 합치는 작업 완료
ynoolee
ynoolee previously approved these changes Aug 10, 2022
Copy link
Collaborator

@ynoolee ynoolee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니🐳 코멘트 확인 부탁드려요~

kimziou77
kimziou77 previously approved these changes Aug 10, 2022
Copy link
Member

@kimziou77 kimziou77 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다 용철님 😺 !!

@zxcv9203 zxcv9203 dismissed stale reviews from kimziou77 and ynoolee via 45a8b0b August 11, 2022 05:24
@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 6 Code Smells

100.0% 100.0% Coverage
0.0% 0.0% Duplication

@zxcv9203 zxcv9203 merged commit b519d2f into develop-v3 Aug 11, 2022
@zxcv9203 zxcv9203 deleted the feat/178-댓글-조회-페이지네이션 branch August 11, 2022 05:30
@zxcv9203 zxcv9203 restored the feat/178-댓글-조회-페이지네이션 branch August 11, 2022 08:54
@zxcv9203 zxcv9203 deleted the feat/178-댓글-조회-페이지네이션 branch August 11, 2022 08:54
kimziou77 added a commit that referenced this pull request Aug 14, 2022
* ✨ feat : 댓글 조회 페이지네이션 적용 및 검증 로직 추가  (#183)

* ✨ feat : 댓글 조회 페이지네이션 적용 및 검증 로직 추가

댓글 조회시 페이지네이션 적용 (기본 사이즈 10)
댓글 검증 로직 추가 (Post 존재 여부 및 해당 유저가 스터디를 가입하고 있는지 확인)
댓글 이외의 부분의 검증로직에 대해서 책임을 넘기기 위해 Facade 패턴 적용
커스텀 PageRequest VO가 두개 존재해 합치는 작업 완료

* 🔧 chore : 어플리케이션 버전 업 명시

* ♻️ refactor : SimplePage setter제거 및 validation 체크 추가

* ✨ feat : 책검색 API v2 (#186)

* ✨ feat : 조건에 따른 책 검색 API

* ♻️ refactor : 중복되는 책 DTO 제거

* 🐛 fix : 잘못된 에러메시지 수정

* ♻️ refactor : 사용하지 않는 클래스 제거

* 📝 docs : 스웨거 DTO 스키마 추가

* 🧪 test : 책검색 레포지토리 테스트

* 🐛 fix : 이넘 변경에 따른 수정

* ♻️ refactor : 댓글 수정 validate 추가 (#187)

* ♻️ refactor : 댓글 수정 valiate 추가

댓글 수정시 필요한 현재 스터디가 진행중인지, 댓글 수정하려는 사용자가 댓글 작성자와 같은지 체크하는 부분 추가
이에 대한 CustomException 추가
이를 검증하는 테스트 코드 추가

* ♻️ refactor : 파사드 패턴 인터페이스 제거 및 validator 인터페이스 추가 및 테스트 코드 작성

* 🔥 remove : 디버그용 로직 삭제

* ✨ feat : 모집기간이 만료된 스터디 상태를 변경하는 스케줄러 등록 (#188)

* 🔧 chore : 스케줄링 풀 사이즈 설정 (#97)

- 비동기적이며 논블로킹으로 수행이 가능하도록 하기 위해 스레드 풀 사이즈를 2개로 설정한다

* ✨ feat : 스케줄러 및 작업을 제공하는 서비스 인터페이스 등록 (#97)

* ♻️ refactor : 작업 실패 로그 출력 추가 (#97)

* ✨ feat : 스터디 진행기간이 시작된 스터디들의 상태를 변경하는 스케줄러 추가 (#97)

* 🧪 test : 스케줄링 서비스 코드 테스트 추가 (#97)

- 스터디 시작날짜 가 유의미한 테스트이기 때문에 더미 테스트 데이터 생성 팩토리 메소드를 추가하였습니다

* ♻️ refactor : default-package -> private 으로 modifier 변경 (#97)

* ♻️ refactor : ExpiredStudies 데이터타입 디렉토리 변경 -> study-service-dto 내부로 변경 (#97)

* ♻️ refactor : API 문서화 및 enum 소문자로 받도록 구현 (#191)

* 🐛 fix : 유저 정보 조회시 데이터 개수 조절 (#196)

* ♻️ refactor : 댓글 삭제 기능에 대한 validation 추가 (#194)

* ♻️ refactor : 댓글 삭제 기능에 대한 validation 추가

* ♻️ refactor : valiator에서 하나의 상황만 체크하도록 변경

* ✨ feat : 책 조회 api 정렬 추가 (#197)

* ✨ feat : 스터디 기준 정렬된 책 조회 기능 추가

* 📝 docs : API 문서 수정

* ✨ feat : DTO 정렬조건 추가

* 🧪 test : 정렬조건 추가한 테스트 작성

* ♻️ refactor : 인자를 통해 유저 스터디 목록 limit 개수 받기

* 📝 docs : 부하테스트 스크립트

* 🐛 fix : 기존 limit 제거

* ♻️ refactor : 불필요한 메서드 제거 및 쿼리 변경

* 🧪 test : 테스트 케이스 추가

* 🔥 remove : 테스트용 sleep 제거

* ♻️ refactor : 스터디 신청 목록 API에  스터디 존재여부 확인 로직 추가 (#199)

* ♻️ refactor : 스터디신청승인 (#201)

* ✨ feat : QueryDsl Util

* 📝 docs : Study - StudyMember 분리

* ♻️ refactor : 커스텀 레포 리팩토링

* 🎨 style : validate 메서드 네이밍 변경

* ♻️ refactor : 멤버 변경

* ♻️ refactor : 간단한 쿼리 JPQL로 변경

* ♻️ refactor : 스터디 승인/거절 기능 validation 추가 (#203)

다음 기능 validation 추가
스터디 상태는 모집중이어야 한다 ( Study 에서 확인 →IsRecruiting return boolean )
maxParticipant 이상으로 승인할 수 없다
validation에서 사용하는 커스텀 Exception 추가
이에 따른 테스트 코드 추가

* ♻️ refactor : 스터디 생성시 책이 존재하는지 확인하는 로직 추가 (#205)

* ♻️ refactor : 스터디 생성시 책이 존재하는지 확인하는 로직 추가

* ♻️ refactor : 스터디 조회시 전달한 책이 존재하는지 확인하는 로직 추가

* ♻️ refactor : 댓글 목록 조회시 작성자 이름과 프로필 이미지를 포함해서 보내도록 변경 (#207)

* ✨ feat : 게시글 정보 글쓴이 아이디 추가 (#209)

* ✨  feat :  게시글 목록 불러오기 페이지네이션으로 변경 (#206)

* ♻️ refactor : SimplePage 필드들 final 로 변경 (#171)

- 생성자에서 기본값을 갖도록 해 주고 있어 문제되지 않음을 확인하고 변경함

* ♻️ refactor : 게시글 목록 조회, 응답 DTO 데이터 추가 (#171)

* ✨ feat : 동적 쿼리를 통한 게시글 목록 불러오기 구현 (#171)

- 스터디 멤버가 아닌 경우 게시글 목록을 볼 수 없도록 검증 추가함

* ♻️ refactor : 스웨거에 파라미터에 대한 정보 추가 (#171)

* ♻️ refactor : 검증조건에 대한 에러 메시지 추가 (#171)

* 🧪 test : 멤버가 아닌 사람의 게시글 목록 조회 실패 테스트 추가 (#171)

* 📝 docs : restdocs 문서 데이터 필드 추가 (#171)

* ♻️ refactor : 소나클라우드 버그 제거 (#171)

- orElseThrow 가 에러를 위해서 사용되어선 안된다
- 현재로서는 isPresent 로 검증하여 예외를 던지는 것이 적절함

* 🔧 chore : v2 시큐리티 GET 메소드 권한 수정 (#211)

* 🔧 chore : 서버 노캐시 (#213)

* ✨ feat : 토큰 스웨거 문서 추가 (#215)

* ✨ feat : 특정한 문자열을 입출력하는 열거타입 정의 (#202) (#216)

- 현재상황은 열거타입 마다 프론트와 조율한 문자열의 형태가 다른 상황
- 공통적인 처리를 하려면 공통 타입으로 처리할 수 있도록 하는게 좋을 거라 생각함
- 기존의 Enum 타입으로 변환할 문자열들에 대한 검증을 수행하는 검증기도 변경함
- StudyStatus 의 정적 팩토리 메소드 로직을 수정함

* ♻️ refactor : 스터디 신청 validation 추가 (#218)

다음 부분에 대해서 validation 추가
- 스터디 모집중에만 스터디를 신청할 수 있다
- maxParticipant 도달시 신청 못한다

* ✨ feat :  이미지 용량 초과 예외메시지 추가 (#173) (#219)

- 이미지 업로드 시 이미지 용량에 대한 예외메시지를 던지도록 하였음

* ✨ feat : 테스트용 토큰 발급 (#222)

* ✨ feat :  진행기간이 지난 스터디들을 진행완료상태로 변경하는 기능 추가 (#224) (#225)

- 비동기적으로 동작하는 task 를 추가함

* 🔧 chore : 227 토큰관련설정변경 (#228)

* 🔧 chore : 토큰 만료시간 수정

* 📝 docs : 댓글 스웨거 페이징 인자 추가

* 🔧 chore : 227 토큰관련설정변경2 (#229)

* ♻️ refactor : 테스팅용 토큰 메서드 수정

(cherry picked from commit 293db43ab81335d69af9fd8eb3e4ded63ce11f59)

* 🐛 fix : 토큰 null 에러 뜨는 부분 수정

(cherry picked from commit 79539b431e40b37f6c804662aef74c443b2a5a32)

* ♻️ refactor : 스터디 상태 크론 시간 변경 (#232)

* ♻️ refactor : 현재 유저가 스터디에 최대 스터디수 만큼 가입했을 경우 예외 처리 (#230)

* ♻️ refactor : 현재 유저가 스터디에 최대 스터디수 만큼 가입했을 경우 예외 처리

facade 패턴을 적용하여 유저의 스터디 수를 유저 서비스에게 가져오도록 수정
최대 스터디수 (10명) 만큼 가입했을 경우 예외 발생
해당 예외시 발생하는 exception class 추가
이에 따른 테스트 코드 수정

* ♻️ refactor : 신청 후 사용자가 스터디가 10개 넘었을 때 승인시 예외 발생하도록 변경

* ♻️ refactor : 만약 가입한 스터디가 10개 이상이라면 스터디 생성이 불가능하도록 변경

* 🎨 style : 메서드 네이밍 및 테스트 출력 이름 수정

* 🐛 fix : 페이지네이션을 통해 totalPage 가져오는 부분 변경 (#233) (#234)

- 이전의 계산로직이 잘못되어 빠른 반영을 위해 PageImpl 을 사용하여 변경함

* ♻️ refactor : 토큰 타입별 에러메시지 분리 (#236)

(cherry picked from commit 0c1e309fdcff9baa9cb61241d1fa47702c606223)

* 📝 docs : readme 작성 (#238)

* 📝 docs : readme 작성

* 📝 docs : ERD 수정

* 📝 docs : git 브랜치 전략 이미지 변경

* 한줄요약 위치 변경

Co-authored-by: kimyo <41179265+kimziou77@users.noreply.github.com>

* 📝 docs : 피드백 반영

Co-authored-by: kimyo <41179265+kimziou77@users.noreply.github.com>

* 📝 docs : 리드미 수정 (#240)

* 📝 docs : 리드미 수정

* 📝 docs : 리드미 수정

* ♻️ refactor : 내 정보 조회시 스터디를 최근 가입한 순으로 정렬 (#242)

* 🐛 fix : 댓글 조회시 순서가 뒤죽박죽으로 조회되는 현상 해결 (#245)

여러명의 유저가 댓글을 작성시 일정 개수가 넘어져서 결과가 댓글 작성순이 아닌 뒤죽박죽 섞여서 나오는 현상이 발생
값을 DB에 조회할때 orderby를 통해 댓글 최신 작성순으로 정렬하도록 로직 추가

* 📝 docs : 리드미 수정 2 (#248)

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>
Co-authored-by: ynoolee <53856184+ynoolee@users.noreply.github.com>
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.

댓글 조회 페이지네이션
3 participants