나 혼자 스프링부트!

    Kafka를 이용해 Producer/Consumer 맛보기! -  Producer/Consumer

    Kafka를 이용해 Producer/Consumer 맛보기! - Producer/Consumer

    ⛳ 로드맵 Kafka 의존성 추가 및 Producer/Consumer Java Configuration 설정 Producer/Consumer 구현 및 기존 로직과 비교 이전 Configuration 설정에 이어서 Producer/Consumer를 구현 후 기존 프로젝트에서 사용한 로직과 Kafka 도입 후 로직의 간단한 차이를 확인해 볼 예정이다. 기존 회원가입 프로세스 로직 현재 프로젝트에서 회원가입 프로세스는 아래와 같다. 이미 가입된 회원인지 확인한다. 회원 아이디, 닉네임이 들어간 회원정보, 추천인 아이디, 관심 OTT 서비스 아이디 리스트를 파라미터로 받는다. 회원 정보를 저장한다. ( 저장한 회원 정보를 리턴한다.) 관심 OTT 플랫폼 아이디 리스트 저장(Optional) OTT 플랫폼 아이디..

    Kafka를 이용해 Producer/Consumer 맛보기! - Configuration

    Kafka를 이용해 Producer/Consumer 맛보기! - Configuration

    토이 프로젝트를 진행하던 도중 API Gateway를 도입하게 되면서 기존 회원 API 서버 내 회원 서비스에 구현되있는 소셜 로그인 및 회원 가입 기능과 JWT 엑세스 토큰 및 리프레시 토큰을 발급해주는 기능을 인증 서버내 회원 서비스로 따로 빼게 되었다. 이 때, 발생한 문제점이 있다. 현재 토이 프로젝트는 소셜 로그인을 이용하지만 추가적인 정보가 필요하기 때문에 소셜 로그인 이후 해당 서비스에 처음 로그인 한 경우 (서비스에 가입되지 않은 상태)라면 추가적인 회원 정보 및 추천인과 관심 OTT 서비스를 등록해야 한다. 여기서 추가적인 회원 정보는 인증 서버 내 회원 서비스에서 사용하는 간단한 회원 가입 로직을 이용하면 되지만, 가입 시 입력한 추천인에게 포인트를 적립(Optional)해주거나 회원이..

    Spring Data JPA를 이용해 커서 페이징 구현하기

    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를 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/Client 설정

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