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] 인턴 공고 조회 기능에 페이지네이션 기능 추가 #185

Open
11 tasks
jsoonworld opened this issue Dec 20, 2024 · 0 comments
Open
11 tasks
Assignees
Labels
✨ feat 새로운 기능 추가 🦊장순🦊

Comments

@jsoonworld
Copy link
Member


labels: [인턴 공고]

⚙️ ISSUE

  • 인턴 공고 조회 시 대량의 데이터를 효율적으로 처리하기 위한 페이지네이션 기능이 필요합니다.
  • 현재 조회 기능은 모든 데이터를 한 번에 반환하고 있어 성능 저하와 클라이언트 응답 지연이 발생합니다.
  • 클라이언트가 요청하는 페이지와 페이지 크기를 기반으로 데이터를 반환하도록 개선이 필요합니다.

📄 To-Do

  • 페이지네이션 기능 요구사항 분석
    • 클라이언트 요청 파라미터 정의 (page, size 등)
    • 기본 페이지 크기 및 최대 크기 제한 설정
  • 서비스 로직에 페이지네이션 적용
    • 요청된 페이지와 크기에 따라 데이터를 쿼리
    • 응답 데이터에 페이지 정보 추가 (총 페이지 수, 현재 페이지 등)
  • 데이터 검증 및 예외 처리
    • 유효하지 않은 페이지나 크기 요청 시 에러 처리
  • 관련 문서 업데이트
    • API 스펙에 페이지네이션 파라미터 추가
    • 페이지네이션 기능 설명 작성

🎯 목표

  • 데이터 조회 성능 개선 및 클라이언트 응답 시간 최적화
  • 사용자 경험 향상 및 유지 보수성 강화
@jsoonworld jsoonworld added the ✨ feat 새로운 기능 추가 label Dec 20, 2024
@jsoonworld jsoonworld self-assigned this Dec 20, 2024
jsoonworld added a commit that referenced this issue Dec 20, 2024
- 공고 조회 API에 페이징 기능 추가
  - Pageable을 활용한 페이징 처리 구현
  - `@PageableDefault`를 통해 기본 페이지 크기 설정
- DTO 수정
  - HomeAnnouncementsResponseDto에 페이징 관련 필드 추가 (`totalPages`, `hasNext`)
- Repository 수정
  - 페이징 처리된 공고 데이터를 반환하도록 쿼리 수정
  - `Page<Tuple>`를 활용한 페이징 로직 구현
- Service 로직 리팩토링
  - 공통 메서드 분리 (`getUserById`, `createEmptyResponse` 등)
  - Color 값 및 스크랩 여부 처리 메서드 분리 (`isScrapped`, `determineColorValue`)
- Swagger 수정
  - API 문서에 페이징 파라미터 반영
jsoonworld added a commit that referenced this issue Dec 21, 2024
[✨feat/#185]: 공고 조회 페이지네이션 기능 도입 및 서비스 로직 개선
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ feat 새로운 기능 추가 🦊장순🦊
Projects
None yet
Development

No branches or pull requests

1 participant