일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 인증/인가
- tailwind
- React
- ESlint
- SSR
- webpack
- 태그된 유니온
- CORS
- 리터럴 타입
- TS
- map
- app router
- 무한 스크롤
- 결정 알고리즘
- recoil
- 공변성
- 호이스팅
- RTK Query
- autosize
- 반공변성
- async/await
- 타입 좁히기
- CI/CD
- dfs
- MSA
- Promise
- useAppDispatch
- Jest
- 투포인터
- 인터섹션
Archives
- Today
- Total
짧은코딩
MSA 초기 아키텍처 본문
반응형
MSA에 대해서 알게 된 것은 사실 오래되었다.
하지만 MSA를 적용해 본 적은 없다. MSA는 주로 대규모 프로젝트에 적합하다.
그래서 접할 기회가 별로 없었다. 그렇지만 프로젝트에 적합하지 않다고 해서 공부를 아예 하지 않는 것은 좋지 않다고 생각했다.
MSA를 간단하게 적용해 보고 왜 규모가 큰 프로젝트에 MSA가 도입되었는지, 왜 작은 프로젝트엔 적용하는 것이 안 좋은 것인지 직접 공부하면서 깨우쳐 보려고 한다.
아키텍처
내가 설계한 아키텍처는 이렇다.
이렇게 다양한 기술 스택을 도입한 이유는 간단하게라도 모든 기술을 적용해 보면서 익히고 싶기 때문에 적용한 것도 있다.
- Client
- 로그인/회원가입, 마이페이지
- 기술 스택: Vue3
- 이유: Vue3를 아직 다뤄 본 적이 없기 때문
- 블로그 글 쓰기/보기
- 기술 스택: Next15
- 이유: Next로 아직 프로젝트를 해 본 적이 없기 때문, 블로그 같은 프로젝트는 SSR이 적합하기 때문
- 로그인/회원가입, 마이페이지
- BFF
- 기술 스택: Nest
- 이유: 2개의 서버를 합쳐서 전달해야 하기 때문에 익숙한 JS를 사용하는 것이 적합하기 때문
- Server
- 인증/인가
- 기술 스택: Spring Boot + Spring Security + Redis
- 이유: Spring Boot를 아직 다뤄 본 적이 없고, Spring Security와 Redis는 검증된 기술이기 때문
- 블로그 글 쓰기/보기
- 기술 스택: Nest
- 이유: Nest를 아직 다뤄 본 적이 없기 때문
- 인증/인가
- DataBase
- 인증/인가
- 기술 스택: MySQL
- 이유
- 사용자 정보(ID, 암호화된 비밀번호, 역할 등)는 관계가 명확하고 정형화된 데이터이고,
- 복잡한 비정형 데이터나 고급 기능보다는, 빠르고 일관된 트랜잭션 처리가 더 중요
- 블로그 글 쓰기/보기
- 기술 스택: PostgreSQL
- 이유
- 게시글에는 제목이나 본문 외에도 '태그', '카테고리', '임시저장 데이터', '관련글 정보' 등 다양한 형태의 메타데이터가 붙을 수 있음
- PostgreSQL의 JSONB 타입을 사용하면, 이러한 비정형 데이터를 스키마 변경 없이 유연하게 저장하고, 내부 필드를 인덱싱하여 빠르게 조회 가능
- 인증/인가
개발 목표와 순서
-목표
이 프로젝트를 하는 목적은 일단 각 기능들을 최소한의 기능한 만족시키면서 다 완성을 시키는 것이 목표이다.
프로젝트 개발을 다 마치고 난다면 그 이후에 부족한 부분을 고치고, 기능을 추가하고, 테스트 코드를 작성하고 싶다.
-순서
- 인증/인가, Spring Boot
- 블로그 글 쓰기/보기, Nest
- BFF, Nest
- 로그인/회원가입, Vue3
- 블로그 글 쓰기/보기 + 마이 페이지, Nest + Vue3
가장 좋은 방법은 의존성이 없는 가장 깊은 곳(백엔드)부터 개발을 시작하여, 점차 바깥쪽(프론트엔드)으로 나아가는 것이 목표
각 단계가 끝날 때마다 확실한 성과를 눈으로 확인하며 진행하는 것이 중요
반응형
'MSA 공부' 카테고리의 다른 글
Nest, Yarn Berry + WebStorm에서 라이브러리 Not Found 해결 방법 (0) | 2025.07.16 |
---|---|
MSA에서 백엔드는 어떻게 인증/인가를 할까 (0) | 2025.07.15 |
인증/인가, Spring Boot 서버 구축 (0) | 2025.07.05 |
Comments