⚙️ [기능추가][Keyword] /api/keyword/daily 응답 확장 및 7일치 조회 기능 추가
📝 현재 문제점
/api/keyword/daily 에서 오늘의 키워드만 단일 문자열로 반환되어, 한국어/영어 구분이 없음.
- 홈 화면에서 ‘오늘부터 그 전까지 총 7일’ 분량의 키워드를 불러올 수 없음.
- 각 일자별 이미지와 이미지 업로더 정보가 API 스펙에 포함되어 있지 않음.
- 게시글 필터링 기능은 구현되어 있으나, 키워드별 게시글을 뽑아내는 과정에서 필요한 추가 데이터가 누락됨.
🛠️ 해결 방안 / 제안 기능
-
DTO 및 API 스펙 수정
DailyKeywordResponse 를 확장하여 아래 필드 추가
koreanKeyword: String
englishKeyword: String
imageUrl: String
uploaderNickname: String
- 새로운 엔드포인트
GET /api/keyword/daily?days=7 추가
- 기본값:
days=1 (오늘 한 건)
days 값만큼 과거 일자별 리스트로 반환
-
DB 모델 및 매퍼 변경
Keyword 엔티티에 englishKeyword 컬럼 확인 및, 없으면 추가
Image 엔티티(또는 Post → Image 관계)에서 대표 이미지 URL 및 업로더 정보 조회 로직 구현
- EntityMapper 에
toDailyKeywordResponseList(List<Keyword>) 등 신규 매핑 메서드 추가
-
Service 로직 보강
- 기존
getDailyKeyword() 개선: Redis 캐시에 오늘 키워드 ID만 저장 → 7일치 캐싱 전략 고민
KeywordService 에 getDailyKeywords(int days) 메서드 추가
- 내부적으로
keywordRepository.findByProvidedDateBetween(...) 와 postRepository.filterPosts(...) 조합
- 필터링된 게시글에서 이미지와 업로더 정보 추출
-
Repository 메서드 추가
KeywordRepository
List<Keyword> findAllByProvidedDateBetween(LocalDate start, LocalDate end);
PostRepository
- 키워드별 최신 대표 이미지 조회용 쿼리 (예:
@Query 를 이용해 날짜별 첫 번째 이미지 및 작성자 가져오기)
-
테스트 및 문서화
- 단위 테스트:
KeywordService.getDailyKeywords(7)
- 통합 테스트: 실제 Redis 캐시, DB 샘플 데이터 이용
- API 명세서(README / Swagger) 업데이트
-
추가 확인 요청
Keyword 테이블에 english_keyword 컬럼이 존재하는지 확인 필요
- 대표 이미지를 결정하는 기준 (최신 업로드, 좋아요 수 등) 협의 부탁드립니다.
🙋♂️ 담당자
⚙️ [기능추가][Keyword]
/api/keyword/daily응답 확장 및 7일치 조회 기능 추가📝 현재 문제점
/api/keyword/daily에서 오늘의 키워드만 단일 문자열로 반환되어, 한국어/영어 구분이 없음.🛠️ 해결 방안 / 제안 기능
DTO 및 API 스펙 수정
DailyKeywordResponse를 확장하여 아래 필드 추가koreanKeyword: StringenglishKeyword: StringimageUrl: StringuploaderNickname: StringGET /api/keyword/daily?days=7추가days=1(오늘 한 건)days값만큼 과거 일자별 리스트로 반환DB 모델 및 매퍼 변경
Keyword엔티티에englishKeyword컬럼 확인 및, 없으면 추가Image엔티티(또는 Post → Image 관계)에서 대표 이미지 URL 및 업로더 정보 조회 로직 구현toDailyKeywordResponseList(List<Keyword>)등 신규 매핑 메서드 추가Service 로직 보강
getDailyKeyword()개선: Redis 캐시에 오늘 키워드 ID만 저장 → 7일치 캐싱 전략 고민KeywordService에getDailyKeywords(int days)메서드 추가keywordRepository.findByProvidedDateBetween(...)와postRepository.filterPosts(...)조합Repository 메서드 추가
KeywordRepositoryPostRepository@Query를 이용해 날짜별 첫 번째 이미지 및 작성자 가져오기)테스트 및 문서화
KeywordService.getDailyKeywords(7)추가 확인 요청
Keyword테이블에english_keyword컬럼이 존재하는지 확인 필요🙋♂️ 담당자