블로그 글
박재성 선생님이 개발 블로그에 쓴 글입니다.
![[실습] 사용자 서비스에서 Kafka로부터 ‘게시글 작성 완료 이벤트’ 구독하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-809a-bbbc-dc9e1975f1e9-c50efd403f29cd33.webp&w=3840&q=75)
[실습] 사용자 서비스에서 Kafka로부터 ‘게시글 작성 완료 이벤트’ 구독하기
✅ 사용자 서비스에서 Kafka로부터 ‘게시글 작성 완료 이벤트’ 구독하기 사용자 서비스에 Kafka 의존성 추가하기 application.yml에 Kafka 연결을 위한 정보 작성하기 Kafka로부터 전달받을 메시지 객체 만들기 Kafka에 있는 메
사전 필요 지식
✅ 참고 이전 섹션에서 데이터 생성 및 변경을 처리할 때, 여러 마이크로 서비스를 거쳐서 통신을 해야 하는 Case를 경험했다. 그리고 여러 마이크로 서비스를 거쳐서 처리하는 여러 작업을 하나의 트랜잭션처럼 묶기 위해서 Saga 패턴을 활용해서 코드를
![[실습] ‘외부용 API’와 ‘마이크로서비스간 통신용 API’ 구분하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-808e-b2ab-c9d25307e9a8-065736ef4cec2eba.webp&w=3840&q=75)
[실습] ‘외부용 API’와 ‘마이크로서비스간 통신용 API’ 구분하기
✅ ‘외부용 API’와 ‘마이크로서비스간 통신용 API’ 구분하기 현재까지 프로젝트에서 아래의 API를 구현했다. [사용자 서비스] 회원가입 (POST /users/sign-up) - 외부용 API 특정 사용자 정보 조회 (GET /users/{use
![[실습] 잘 작동하는 지 테스트하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-808e-a632-f82cb6ef93ab-4a2b1dcd0a7597bc.webp&w=3840&q=75)
[실습] 잘 작동하는 지 테스트하기
✅ 잘 작동하는 지 테스트하기 테스트 전에 DB 데이터 정리하기 API 요청 보내기 성공적으로 잘 처리했는 지 DB 확인하기 ✅ 정리하기 설계했던 대로 사용자가 게시글 작성 API에 요청을 보냈을 때 ‘포인트 차감 → 게시글 작성’ 로직까지만 처리하고
추가 요구사항
✅ 구현할 기능 특정 게시글 조회 API 게시글 전체 조회 API
![[실습] 게시글 서비스에서 Kafka로부터 ‘회원가입 완료 이벤트’ 구독하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-8084-b888-e0fd5e3a12cd-5afae95f91fbece3.webp&w=3840&q=75)
[실습] 게시글 서비스에서 Kafka로부터 ‘회원가입 완료 이벤트’ 구독하기
✅ 게시글 서비스에서 Kafka로부터 ‘회원가입 완료 이벤트’ 구독하기 board-service에서 아래 코드 작성하기 User 엔티티 만들기 UserRepository 만들기 사용자 정보 저장 Service 로직 만들기 application.yml에

‘데이터 동기화’를 활용한 게시글 조회 API 최적화하기
✅ ‘데이터 동기화’를 활용한 게시글 조회 API 최적화하기 ‘게시글 조회 로직’을 구현할 때 위의 방식처럼 구현했었다. 위의 방식도 충분히 괜찮은 방식이지만, 게시글 조회 로직의 트래픽이 점차 증가하면서 사용자 서비스의 ‘사용자 DB’에 부담을 줄

어떻게 구현할 지 설계하기
✅ 어떻게 구현할 지 설계하기 이전 강의에서 아래와 같이 메시징 기반의 비동기 방식으로 통신을 해도 괜찮다고 설명을 했었다. 사용자가 게시글 작성 API에 요청을 보냈을 때, ‘포인트 차감 → 게시글 작성’ 로직까지만 확실하게 작동한 걸 확인하고 성공

프로젝트의 모든 API 잘 작동하는 지 테스트하기
✅ 프로젝트의 모든 API 잘 작동하는 지 테스트하기 현재까지 아래의 기능들을 구현해왔다. 잘 작동하는 지 전부 테스트해보자. 회원가입 API → 포인트 적립 로그인 API → JWT 토큰 발급 게시글 작성 API (JWT 토큰 검증) → 포인트 차감
![[실습] 게시글 작성 API에 Saga 패턴 적용시키기 - 1](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-806d-8af5-cb2e35731903-09680dbf65442481.webp&w=3840&q=75)
[실습] 게시글 작성 API에 Saga 패턴 적용시키기 - 1
✅ 게시글 작성 API에 Saga 패턴 적용시키기 아래 구조처럼 기존 게시글 작성 API에 Saga 패턴을 적용시켜보자. ‘게시글 작성 API’ 기존 로직의 문제점 확인하기 @Transactional 코드 제거하고, ‘게시글 저장’에 대한 보상 트랜잭
![[실습] 회원 가입하면 포인트가 적립되도록 만들기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-806a-b9df-f4458f081423-64aa8b7f8a90f6e8.webp&w=3840&q=75)
[실습] 회원 가입하면 포인트가 적립되도록 만들기
✅ 구조 아래 그림과 같이 회원 가입을 하면 포인트가 적립되도록 코드를 작성해보자. ✅ 코드 작성하기 user-service에서 아래 코드 작성하기 PointClient 코드 작성하기 Service 코드 작성하기 서버 다시 실행시키기 서버 실행시켜서
![[실습] 게시글 서비스에서 Kafka로 ‘게시글 작성 완료 이벤트’ 발행하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-8063-879c-ea1f7e2b5790-642f20fd33fa025a.webp&w=3840&q=75)
[실습] 게시글 서비스에서 Kafka로 ‘게시글 작성 완료 이벤트’ 발행하기
✅ 게시글 서비스에 Kafka 연결하기 Docker로 Kafka 띄우기 게시글 서비스에 Kafka 의존성 추가하기 application.yml에 Kafka 연결을 위한 정보 작성하기 Kafka로 전달할 메시지 객체 만들기 게시글 작성을 완료하는 대로