728x90
320x100
🎯 오늘 개발 할 기능
- 모놀리식 아키텍처를 MSA 아키텍처로 전환하기
🛠️ 개발내용
✅ 모놀리식, MSA 아키텍처가 무엇인지 왜 MSA로 전환하려는지에 대한 내용을 아래의 포스팅을 확인!
모놀리식 아키텍처 VS MSA 아키텍처
✅ 모놀리식 아키텍처(Monolithic Architecture)란?애플리케이션의 모든 기능이 하나의 덩어리(프로세스)로 묶여서 돌아가는 구조.특징:단일 코드베이스: 모든 기능(회원, 결제, 주문 등)이 한 프로젝트
ddururiiiiiii.tistory.com
✅ 현재 북북클럽의 아키텍처는
현재 나의 프로젝트는 위와 같은 구조로 모든 도메인이 한 프로젝트에 위치한 모놀리식 아키텍처임. 이 아키텍처 구조를 bbc-user-service, bbc-post-service, bbc-follow-service등 이런 식으로 전환 해보려고 함!
📌 프로젝트 생성 하기 (bbc-user-service)
- spring initializr (https://start.spring.io/) 에 접속해서 사용자 관련 프로젝트를 생성해준다. 디펜던시는 모놀리식 프로젝트에서 사용했던 그대로를 추가해줬다. 나중에 사용하지 않는다면 빼면 되니까...!
📌 관련 코드 옮기기
com.bookbookclub.bbc_user_service
├── global
│
├── user
│ ├── controller
│ ├── domain
│ ├── dto
│ ├── enums
│ ├── exception
│ ├── policy
│ ├── repository
│ └── service
│
├── emailverification
│ ├── controller
│ ├── domain
│ ├── dto
│ ├── exception
│ ├── repository
│ └── service
│
├── follow
│ ├── controller
│ ├── domain
│ ├── dto
│ ├── exception
│ ├── repository
│ └── service
- 롬복 셋팅이나, MySQL 설정 등도 모놀리식 프로젝트와 동일하게 하지만 다만 데이터베이스도 이번에 분리하기로 했다. (user DB, post DB등)
- 그리고 사용자 도메인과 관련된 코드를 그대로 새로운 프로젝트에 옮기면 되는데 프로젝트 구조는 위와 같이 변경하였다.
- global 패키지 즉, 공통으로 사용하는 코드들도 나중에 분리를 할건데 일단은 공통 코드는 각자의 프로젝트에 그대로 옮기고 제대로 돌아가는걸 확인한 후 분리할 예정임. 코드를 패키지에 맞게 옮기면서 에러나는 부분들을 하나씩 정리해나가면 됨.
- Email, Follow 도메인의경우 경우 User 도메인 아래 종속적이라고 생각되어 따로 프로젝르를 분리하지 않고 User도메인 안에 편입하려고 함.
- 코드를 옮기고 정리하고 에러나는 부분들을 고쳐나가서 서버만 돌아가면 일단 기본적인 분리는 된 것. (물론 그 후의 작업들이 더 중요하지만..)
📌 Swagger(Web API 문서) 적용 하기
Swagger가 무엇이고, 왜 사용하며 적용하는 방법에 대한 내용은 아래의 포스팅 확인
Swagger(Web API 문서) 적용
1️⃣ Swagger란?API 명세를 자동으로 문서화해주는 도구.개발자는 API 만들 때 @RestController, @GetMapping 등 스프링 애노테이션만 써도 Swagger가 자동으로 읽어서 정리해줌.API를 테스트/공유/디버그할 때
ddururiiiiiii.tistory.com
728x90
320x100
'💻 뚝딱뚝딱 > 북북클럽' 카테고리의 다른 글
[개발일지 #034] 팔로우(Follow) 도메인 구현 및 테스트 (0) | 2025.05.02 |
---|---|
[개발일지 #033] 책(Book) 중복 등록 시 예외 처리 하기 (0) | 2025.05.02 |
[개발일지 #032] 각종 피드 조회 (특정 회원의 피드 목록 조회, 특정 회원이 좋아요 누른 피드 목록 조회) (0) | 2025.05.02 |
[개발일지 #031] 피드 검색 조회 (0) | 2025.05.02 |
[JPA/QueryDSL] 적용하기 (0) | 2025.05.02 |