Backend/Spring Boot

Spring Data JPA를 이용해 커서 페이징 구현하기
프로젝트를 진행하면서 회원의 포인트 적립 및 사용 상세 이력을 조회하는 요구사항을 개발하기 위해서 Spring Data JPA를 이용한 페이징 처리를 구현했다. 화면에서 커서 스크롤시 데이터를 호출해오는 무한 스크롤 방식의 페이징을 위해 커서 페이징 방식으로 구현을 진행했다. 동작 방식을 간단히 정리하면, 프론트에서 URI로 회원의 최신 포인트 상세 이력 아이디와 조회 건수를 담아 호출한다. 헤더에 담겨진 JWT 토큰을 파싱해 회원 아이디를 추출한다. 회원 아이디를 통해 포인트 상세이력을 페이징 해서 조회한 후 가공해 반환한다. Controller 코드를 확인해보자. // PointController @GetMapping(value = "/details") @Operation(summary = "포인트 ..

Spring Cloud Config Server를 Private Repository와 연동
Spring Cloud Config Server와 GitHub 레포지토리를 연동하는 과정에서 추가적으로 Private 레포지토리는 SSH 키 등록 및 등록 과정에서 이슈가 있어서 해결법을 정리하고자 한다. Private 레포지토리를 연동하는 방법은 SSH 키 등록 및 GitHub 계정 자체를 연동하는 방법이 있다. 📌 GitHub 계정 자체를 연동하기 Spring Cloud Config Server의 application.yml 파일에 GitHub 계정 아이디 및 계정 패스워드를 작성한다. server: port: 8088 # Spring Cloud Config Server 포트 spring: application: name: config-server cloud: config: server: git: u..

Spring Cloud Config Server/Client 설정
프로젝트를 진행하면서 다양한 서비스의 프로젝트 환경 설정 정보를 Spring Cloud Config Server와 GitHub Repository를 이용해 중앙에서 관리하면 클라이언트의 환경설정 정보를 따로 수정할 필요 없이 한 번의 수정만 가능할 것 같아 도입하기로 결정했다. 🥇 Spring Cloud Config Repository 각 서비스 환경과 서비스 별 개발, 테스트, 로컬 환경을 구분해 파일을 관리하기 위해서 GitHub Repository를 하나 생성한다. 해당 레포지토리에는 Yaml파일만 관리하는 용도로 사용한다. 각각의 환경 별 설정 파일을 구성해 업로드한다. # 로컬 환경 DB 설정 spring: datasource: driver-class-name: com.mysql.cj.jdbc...

Swagger를 이용한 API 문서화
❓Swagger란? Swagger는 Open API를 명세하기 위한 Open Api Specification(OAS) 프레임워크이다. API들이 가진 스펙을 명세하고, 관리하여 문서화 해주는 기능을 가지고 있다. Swagger를 이용해 다른 개발팀과 협업, 프로젝트의 유지보수 , 백엔드 API 명세서를 작성해 보다 편리하게 관리하는 것이 가능하다. ⚙️ Spring Boot Swagger 설정 Spring Boot 프로젝트에 의존성 추가를 한다. implementation 'io.springfox:springfox-swagger2:2.9.2' #Swagger 애노테이션 사용가능 implementation 'io.springfox:springfox-swagger-ui:2.9.2' #Swagger UI 사용..