Architecture

프론트엔드 아키텍처

토스의 마이크로프론트엔드 아키텍처, 그리고 자동화

토스의 마이크로프론트엔드 아키텍처, 그리고 자동화

모놀리식 아키텍처

  • 한 패키지 안에 여러 개의 서비스
장점
  • 공통되는 코드를 자유롭게 공유
  • 사용하는 라이브러리의 버전을 손쉽게 통일
  • 비용 없이 새로운 서비스 구축
  • 서비스 관리 비용 절감
단점
  • 오랜 빌드
  • 하나의 서비스 변경사항이 다른 서비스까지 영향을 미칠 수 있음
  • 서비스별 배포를 할 수 없음
  • 서비스별 캐싱 정책을 가져라기 어려움

마이크로 서비스

장점
  • 빌드 시간 단축
  • 하나의 서비스 변경사항은 다른 서비스에 영향을 미칠 수 없음
  • 서비스별 배포를 할 수 있음
  • 서비스별 캐싱 정책이 자연스럽게 적용됨
레포지토리가 쪼개진다면 예상되었던 어려움
  • 공통 코드를 공유하기 어려움
  • 사용하는 라이브러리의 버전 파편화
  • 새로운 서비스 구축에 큰 비용
  • 서비스 관리가 복잡해짐

모노레포

  • 하나의 Git 레포지토리, 여려 패키지
  • 하나의 레포지토리 안에서 모든 서비스와 라이브러리가 관리됨
장점
  • 설정의 간편한 공유
  • 코드와 이슈 관리 지점 일원화
    • 모든 코드와 이슈가 한 레포지토리에 집결
    • 라이브러리와 서비스 배포는 이미 있는 인프라를 기반으로
    • 코드나 이슈의 위치를 손쉽게 찾음
  • 명령어 한 줄로 끝나는 인프라 셋업

에러 모니터링과 빠른 롤백

효율적인 이슈·PR 관리

소프트웨어 아키텍처 문서화

업데이트: