✅ MSA 환경에서의 트랜잭션 처리 방법 모놀리식 아키텍처와 달리 MSA 환경에서는 서비스마다 DB가 분리되어 있다. 그래서 서로 다른 DB에서 처리하는 여러 작업을 하나의 트랜잭션으로 묶을 수 없다. 그래서 MSA 환경에서는 이런 문제점을 해결하기
요구사항에 따르면 게시글 조회 API를 아래와 같이 응답하게 구현해야 한다. ✅ ’모놀리식 아키텍처’에서 데이터 조회 기능 구현 방식 모놀리식 아키텍처에서는 하나의 DB에 사용자 정보와 게시글 정보가 한꺼번에 저장되어 있기 때문에 아래와 같이 SQL문
✅ 게시글 작성 로직 수정하기 현재 게시글 작성 API는 Request Body에 포함된 userId 값을 기반으로 로직을 처리하고 있다. 하지만 이 방식은 클라이언트가 임의로 다른 사용자의 userId를 입력해 악의적인 요청을 보낼 수 있다는 보안
✅ Eventual Consistency(최종적 일관성)이란? MSA 환경에서 Saga 패턴을 기반으로 로직을 처리하다보면 어쩔 수 없이 데이터 일관성이 잠깐동안 깨지는 순간이 발생한다. 이 현상을 눈으로 확인하기 위해 코드를 일부 수정해보자. 활동
✅ Board Microservice 만들기 User Service는 만들었으니 마지막으로 남은 Board Service를 만들어보자. ✅ Spring Boot 프로젝트 셋팅 & DB 연결 Spring Boot 프로젝트 셋팅 application.ym
✅ 각 Microservice에 해당하는 DB 서버 띄우기 아래 아키텍처 구조에 맞게 Docker로 MySQL 서버 2대를 띄워주자. MySQL 서버 2대 띄우기 GUI 툴로 MySQL 접근되는 지 확인하기 데이터베이스 생성하기
✅ 많은 사람들이 MSA가 어렵다고 착각하는 이유 많은 분들이 MSA를 잘못 오해하고 있는 경우가 너무 많다. 가장 대표적으로 오해하는 게 MSA 구조로 구축하려면 거창하고 복잡한 무언가를 도입해야 한다고 잘못 알고 있다. 구체적인 Case를 살펴보자
✅ 구현할 기능 회원가입 API 게시글 작성 API ✅ 프로젝트 아키텍처 ✅ DB 설계
✅ User Microservice 만들기 DB까지는 셋팅을 했으니 아래 구조에 맞게 User Service를 만들어보자. ✅ Spring Boot 프로젝트 셋팅 & DB 연결 Spring Boot 프로젝트 셋팅 application.yml 작성하기
✅ MSA의 핵심 특징 MSA는 다양한 특징을 가지고 있다. 그 중에서 가장 핵심 특징은 독립성이다. 아래 그림을 보면 결제에 관련된 기능, 인증에 관련된 기능, 상품에 관련된 기능을 독립적으로 분리해서 프로젝트를 구성했다. 이게 바로 MSA의 방식대