프론트엔드 아키텍처
토스의 마이크로프론트엔드 아키텍처, 그리고 자동화
토스의 마이크로프론트엔드 아키텍처, 그리고 자동화
모놀리식 아키텍처
장점
- 공통되는 코드를 자유롭게 공유
- 사용하는 라이브러리의 버전을 손쉽게 통일
- 비용 없이 새로운 서비스 구축
- 서비스 관리 비용 절감
단점
- 오랜 빌드
- 하나의 서비스 변경사항이 다른 서비스까지 영향을 미칠 수 있음
- 서비스별 배포를 할 수 없음
- 서비스별 캐싱 정책을 가져라기 어려움
마이크로 서비스
장점
- 빌드 시간 단축
- 하나의 서비스 변경사항은 다른 서비스에 영향을 미칠 수 없음
- 서비스별 배포를 할 수 있음
- 서비스별 캐싱 정책이 자연스럽게 적용됨
레포지토리가 쪼개진다면 예상되었던 어려움
- 공통 코드를 공유하기 어려움
- 사용하는 라이브러리의 버전 파편화
- 새로운 서비스 구축에 큰 비용
- 서비스 관리가 복잡해짐
모노레포
- 하나의 Git 레포지토리, 여려 패키지
- 하나의 레포지토리 안에서 모든 서비스와 라이브러리가 관리됨
장점
- 설정의 간편한 공유
- 코드와 이슈 관리 지점 일원화
- 모든 코드와 이슈가 한 레포지토리에 집결
- 라이브러리와 서비스 배포는 이미 있는 인프라를 기반으로
- 코드나 이슈의 위치를 손쉽게 찾음
- 명령어 한 줄로 끝나는 인프라 셋업
에러 모니터링과 빠른 롤백
효율적인 이슈·PR 관리
책
소프트웨어 아키텍처 문서화