728x90 320x100 (멋진) 개발자가 목표✨617 [개발일지 #029] 책(Book) - Spring WebClient로 외부 API 연동: KakaoBookClient 구현 🎯 오늘의 목표책(Book) - Spring WebClient로 외부 API 연동: KakaoBookClient 구현⚙️ 진행한 작업책(Book) - Spring WebClient로 외부 API 연동: KakaoBookClient 구현📌 build.gradle : 의존성 추가dependencies { implementation 'org.springframework.boot:spring-boot-starter-webflux'}spring-boot-starter-web만으로는 WebClient가 포함되지 않아서, WebClient를 쓰려면 반드시 spring-boot-starter-webflux 의존성을 추가해야 함. ✅ Spring WebClient?WebClient는 Spring에서 제공하는 최신 .. 2025. 5. 1. [개발일지 #028] 좋아요 순 피드 조회 (주간/월간/연간/누적) 🎯 오늘의 목표좋아요 순 피드 조회 (주간/월간/연간/누적)⚙️ 진행한 작업좋아요 순 피드 조회 (주간/월간/연간/누적)📌 좋아요 순 피드 조회하는 방법1️⃣ DB 직접 카운트 + 정렬방식: SELECT * FROM feed ORDER BY like_count DESC장점:간단하고 JPA, QueryDSL로 쉽게 구현 가능별도 인프라(Redis) 없이 DB만으로 해결단점:피드가 많아질수록 ORDER BY like_count DESC 쿼리 부담 커짐실시간으로 TOP N 조회할 때 성능 이슈 발생좋아요수가 자주 변하면 정렬 부담 증가2️⃣ Like 테이블 집계 쿼리 + 정렬방식 : SELECT feed_id, COUNT(*) FROM like GROUP BY feed_id ORDER BY COUNT(*.. 2025. 5. 1. [개발일지 #027] 신고(Report) 누적 시, 블라인드 처리 🎯 오늘의 목표신고(Report) 누적 시, 블라인드 처리⚙️ 진행한 작업신고(Report) 누적 시, 블라인드 처리 🛠️ 개발내용📌 피드(Feed) 엔티티 수정@Column(nullable = false)private boolean isBlinded = false;/** 피드 블라인드 처리 */public void blind() { this.isBlinded = true;}/** 블라인드 해제 (선택적으로 추가) */public void unblind() { this.isBlinded = false;} 📌 ReportRepository 수정long countByFeed(Feed feed); 📌 신고 횟수 관리application.ymlreport: blind-threshol.. 2025. 5. 1. [개발일지 #026] 신고(Report) 도메인 구현 및 단위테스트 🎯 오늘의 목표신고(Report) 도메인 개발⚙️ 진행한 작업신고(Report) 엔티티 생성신고(Report) 레파지토리 생성신고(Report) 서비스 생성신고(Report) 관련 예외 생성신고(Report) 도메인 단위테스트🛠️ 개발내용📌 신고(Report) 엔티티 생성package ddururi.bookbookclub.domain.report.entity;import ddururi.bookbookclub.domain.feed.entity.Feed;import ddururi.bookbookclub.domain.report.enums.ReasonType;import ddururi.bookbookclub.domain.user.entity.User;import jakarta.persistence.*.. 2025. 5. 1. [JPA/QueryDSL] 엔티티가 올바른 경로에 있음에도 자꾸 컴파일 에러가 뜹니다. 🛠️ 문제 상황JPA와 QueryDSL을 사용하는 프로젝트에서 레파지토리나 서비스에서 엔티티를 Import해서 가져다 쓰는데, 소스코드상으로는 빨간줄도 없고, 에러도 없는데 컴파일 시에, 해당 엔티티가 존재하지 않는다고 떠서 미쳐버릴 때. 🛠️ 발생이유QueryDSL을 적용한 상태에서 새로운 엔티티를 만들면 QueryDSL이 자동으로 Q클래스를 생성하는데 엔티티 생성하고 바로 Q클래스 적용이 안되어 있어서 인식을 못해 발생한 문제임. 🛠️ 해결방법./gradlew clean build -x test터미널에서 재 빌드를 시켜줌-x test를 넣은 이유는 test까지 재빌드 하려니까 시간이 오래걸려서 test를 제외 하고함. 2025. 5. 1. [개발일지 #025] 좋아요(Like) 토글 기능으로 변경하기 🎯 오늘의 목표좋아요 기능을 토글기능으로 변경하기⚙️ 진행한 작업LikeService 수정LikeController 수정🛠️ 개발 내용기존 좋아요 누르기/좋아요 취소로 나뉘어져 있던 좋아요 기능을 하나로 합쳐 토글기능으로 변경할 예정왜 변경하나요?기존에는 두 개의 엔드포인트가 필요했는데 토글 방식으로 전환하면 API 인터페이스가 단순해짐기존 방식에는 좋아요 상태를 먼저 조회한 후, 상태에 따라 API 호출이 필요했는데, 토글 방식은 내부에서 상태를 확인하고, 처리하기 때문에 클라이언트가 별도의 상태를 확인없이 호출 할수 있어 로직이 명확함 📌 LikeService 수정 /** * 좋아요 토글 기능 * - 이미 좋아요 되어 있으면 삭제 (취소) * - 좋아요 안 되어 있으면.. 2025. 5. 1. 이전 1 2 3 4 ··· 103 다음 728x90 320x100