728x90 320x100 (멋진) 개발자가 목표✨649 Swagger(Web API 문서) 적용 1️⃣ Swagger란?API 명세를 자동으로 문서화해주는 도구.개발자는 API 만들 때 @RestController, @GetMapping 등 스프링 애노테이션만 써도 Swagger가 자동으로 읽어서 정리해줌.API를 테스트/공유/디버그할 때 엄청 편리함 2️⃣ 적용 방법Build.gradle 추가implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:버전'여기까지 해주면 ...별도 설정 없이도 기본으로 API 문서 생성됨 (특별히 API 설명을 더 하고 싶으면 @Operation, @ApiResponses 같은 걸 붙이면 됨.) 3️⃣ 접속 & 확인 방법👉 접속 주소:Swagger UI 페이지:http://localhost:8081/sw.. 2025. 5. 8. 모놀리식 아키텍처 VS MSA 아키텍처 ✅ 모놀리식 아키텍처(Monolithic Architecture)란?애플리케이션의 모든 기능이 하나의 덩어리(프로세스)로 묶여서 돌아가는 구조.특징:단일 코드베이스: 모든 기능(회원, 결제, 주문 등)이 한 프로젝트 안에 있음.단일 데이터베이스: 보통 하나의 DB로 관리.배포도 한 번에: 기능 하나만 바꿔도 전체 애플리케이션을 재배포.간단한 구조: 초기 개발이 빠름, 관리 포인트가 적음.✅ MSA (Microservice Architecture)란?애플리케이션을 여러 개의 독립적인 서비스(마이크로서비스)로 나눠서 운영하는 구조.특징:서비스별 분리: 회원, 게시글, 알림 등 각각 별도 서비스(보통 독립 배포도 가능).독립 데이터베이스: 서비스별로 DB도 따로 가질 수 있음 (DB 분리 권장).독립 배포.. 2025. 5. 8. [개발일지 #034] 팔로우(Follow) 도메인 구현 및 테스트 🎯 오늘 개발 할 기능팔로우(Follow) 도메인 구현팔로우(Follow) 테스트🛠️ 개발내용📌 Follow.java 생성package ddururi.bookbookclub.domain.follow.entity;import ddururi.bookbookclub.domain.user.entity.User;import jakarta.persistence.*;import lombok.AccessLevel;import lombok.AllArgsConstructor;import lombok.Getter;import lombok.NoArgsConstructor;import org.springframework.data.annotation.CreatedDate;import org.springframework.d.. 2025. 5. 2. [개발일지 #033] 책(Book) 중복 등록 시 예외 처리 하기 🎯 오늘 개발 할 기능특정 회원의 피드 목록 조회 구현특정 회원이 좋아요 누른 피드 목록 조회 구현🛠️ 문제상황테스트를 하다보니 책을 중복으로 등록하면 당연히 에러가 발생함. 그런데 에러 메시지가 그냥 500에러로 떨어져 명확하지 않은 상태. 📌 BookRepository.java 수정/** * Book 데이터 액세스 레포지토리 */public interface BookRepository extends JpaRepository { //코드생략// boolean existsByIsbn(String isbn);} 📌 BookService.java 수정package ddururi.bookbookclub.domain.book.service;/** * 책 관련 비즈니스 로직 처리 */@Se.. 2025. 5. 2. [개발일지 #032] 각종 피드 조회 (특정 회원의 피드 목록 조회, 특정 회원이 좋아요 누른 피드 목록 조회) 🎯 오늘 개발 할 기능특정 회원의 피드 목록 조회 구현특정 회원이 좋아요 누른 피드 목록 조회 구현🛠️ 개발내용📌 특정 회원의 피드 목록 조회 구현마이페이지 → “나의 피드”타인 프로필 → “이 사용자의 피드” 📦 FeedRepositoryCustom.javaList findFeedsByUserId(Long userId, Pageable pageable); 📦 FeedRepositoryImpl.java@Overridepublic List findFeedsByUserId(Long userId, Pageable pageable) { return queryFactory.selectFrom(feed) .where(feed.user.id.eq(userId).and(feed.isBlin.. 2025. 5. 2. [개발일지 #031] 피드 검색 조회 🎯 오늘의 목표피드 검색 조회⚙️ 진행한 작업피드 검색 조회🛠️ 개발내용📌 QueryDSL 적용법아래의 포스팅 참고! [JPA/QueryDSL] 적용하기은근히 적용하기 빡센 쿼리 데셀....정리해놓자 📌 build.gradle 추가dependencies { implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'}def generated = "build/generated"soddururiiiiiii.tistory.com 📌 FeedRepositoryCustom.java 생성package ddururi.bookbookclub.domai.. 2025. 5. 2. 이전 1 2 3 4 5 6 7 8 ··· 109 다음 728x90 320x100