✅ 각 Microservice에 해당하는 DB 서버 띄우기 아래 아키텍처 구조에 맞게 Docker로 MySQL 서버 2대를 띄워주자. MySQL 서버 2대 띄우기 GUI 툴로 MySQL 접근되는 지 확인하기 데이터베이스 생성하기
✅ 많은 사람들이 MSA가 어렵다고 착각하는 이유 많은 분들이 MSA를 잘못 오해하고 있는 경우가 너무 많다. 가장 대표적으로 오해하는 게 MSA 구조로 구축하려면 거창하고 복잡한 무언가를 도입해야 한다고 잘못 알고 있다. 구체적인 Case를 살펴보자
✅ 구현할 기능 회원가입 API 게시글 작성 API ✅ 프로젝트 아키텍처 ✅ DB 설계
✅ 회원 가입 비즈니스 로직 짜기 회원 가입한 사용자 정보 DB에 저장하기 Kafka에 전송할 메시지 객체 만들기 Json 형태의 String으로 만들어 주는 함수 추가하기 Kafka에 메시지 보내는 로직 추가하기 ✅ 중간 체크 전체 프로젝트 구조에서
✅ User Microservice 만들기 DB까지는 셋팅을 했으니 아래 구조에 맞게 User Service를 만들어보자. ✅ Spring Boot 프로젝트 셋팅 & DB 연결 Spring Boot 프로젝트 셋팅 application.yml 작성하기
✅ 회원가입 API 만들기 User 엔티티 생성하기 UserRepository 만들기 Controller 만들기 RequestDto 만들기 Service 만들기
✅ MSA의 핵심 특징 MSA는 다양한 특징을 가지고 있다. 그 중에서 가장 핵심 특징은 독립성이다. 아래 그림을 보면 결제에 관련된 기능, 인증에 관련된 기능, 상품에 관련된 기능을 독립적으로 분리해서 프로젝트를 구성했다. 이게 바로 MSA의 방식대
✅ MSA인지 아닌지를 판단하는 기준 MSA인지 아닌지를 판단하는 ‘명확한’ 기준이라는 게 없다. 왜냐하면 MSA라는 개념이 어떤 개인이나 단체가 정의한 개념이 아니다. 그냥 서로 입소문으로 퍼진 개념 중 하나이다. 한 마디로 ‘특정 기준을 만족시켜야
✅ 이메일 발송을 처리할 Consumer 로직 짜기 Kafka의 메시지를 가져와 담을 객체 만들기 Consumer 로직 작성하기 이메일 발송 로그를 남기기 위한 엔티티, 레포지토리 생성하기 Consumer 로직 보완하기 DLT로 빠지는 메시지 처리하는
✅ Spring Boot로 UserService 서버 초기 환경 설정하기 Spring Boot 프로젝트 셋팅 application.yml에 Kafka 연결을 위한 정보 작성하기 application.yml에 H2 데이터베이스 연결을 위한 정보 작성하기