Skip to content

⚙️ [기능추가][Keyword] /api/keyword/daily 응답 확장 및 7일치 조회 기능 추가 #96

@Chuseok22

Description

@Chuseok22

⚙️ [기능추가][Keyword] /api/keyword/daily 응답 확장 및 7일치 조회 기능 추가

📝 현재 문제점

  • /api/keyword/daily 에서 오늘의 키워드만 단일 문자열로 반환되어, 한국어/영어 구분이 없음.
  • 홈 화면에서 ‘오늘부터 그 전까지 총 7일’ 분량의 키워드를 불러올 수 없음.
  • 각 일자별 이미지와 이미지 업로더 정보가 API 스펙에 포함되어 있지 않음.
  • 게시글 필터링 기능은 구현되어 있으나, 키워드별 게시글을 뽑아내는 과정에서 필요한 추가 데이터가 누락됨.

🛠️ 해결 방안 / 제안 기능

  1. DTO 및 API 스펙 수정

    • DailyKeywordResponse 를 확장하여 아래 필드 추가
      • koreanKeyword: String
      • englishKeyword: String
      • imageUrl: String
      • uploaderNickname: String
    • 새로운 엔드포인트 GET /api/keyword/daily?days=7 추가
      • 기본값: days=1 (오늘 한 건)
      • days 값만큼 과거 일자별 리스트로 반환
  2. DB 모델 및 매퍼 변경

    • Keyword 엔티티에 englishKeyword 컬럼 확인 및, 없으면 추가
    • Image 엔티티(또는 Post → Image 관계)에서 대표 이미지 URL 및 업로더 정보 조회 로직 구현
    • EntityMapper 에 toDailyKeywordResponseList(List<Keyword>) 등 신규 매핑 메서드 추가
  3. Service 로직 보강

    • 기존 getDailyKeyword() 개선: Redis 캐시에 오늘 키워드 ID만 저장 → 7일치 캐싱 전략 고민
    • KeywordServicegetDailyKeywords(int days) 메서드 추가
    • 내부적으로 keywordRepository.findByProvidedDateBetween(...)postRepository.filterPosts(...) 조합
    • 필터링된 게시글에서 이미지와 업로더 정보 추출
  4. Repository 메서드 추가

    • KeywordRepository
      List<Keyword> findAllByProvidedDateBetween(LocalDate start, LocalDate end);
    • PostRepository
      • 키워드별 최신 대표 이미지 조회용 쿼리 (예: @Query 를 이용해 날짜별 첫 번째 이미지 및 작성자 가져오기)
  5. 테스트 및 문서화

    • 단위 테스트: KeywordService.getDailyKeywords(7)
    • 통합 테스트: 실제 Redis 캐시, DB 샘플 데이터 이용
    • API 명세서(README / Swagger) 업데이트
  6. 추가 확인 요청

    • Keyword 테이블에 english_keyword 컬럼이 존재하는지 확인 필요
    • 대표 이미지를 결정하는 기준 (최신 업로드, 좋아요 수 등) 협의 부탁드립니다.

🙋‍♂️ 담당자

  • 백엔드: @Chuseok22
  • 프론트엔드: 이름
  • 디자인: 이름

Metadata

Metadata

Assignees

Labels

작업중작업이 진행중인 상태

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions