MSA란?

마이크로서비스 는 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발 기법

스크린샷 2024-04-09 오후 3.41.41.png

<aside> 💡 이전에 다루었던 컴포넌트 분리와 상당 부분 유사하다고 느껴졌다. Divide and Conquer, 단일 책임의 원칙, 느슨한 결합 등 좋은 코드를 작성하기 위한 원칙을 상당수 공유하다보니 그럴지도?

</aside>

MFE?

위와 같은 마이크로서비스 개념을 프론트엔드에 적용시킨 방법으로, 하나의 거대한 Monolith 코드 베이스로 운영되는 프론트엔드를 더 작고 관리하기 쉬운 여러 조각들(서비스들)로 나누어 개발하는 기법이다.

MFE가 왜 필요하죠?

기존 Monolithic 방식으로 관리하던 방법의 한계와 문제들 때문!

<aside> 1️⃣ 거대해진 코드 베이스의 느린 배포시간, 떨어지는 수정에 관한 유연성

</aside>

스크린샷 2024-04-09 오후 3.52.31.png

웹/앱 서비스가 고도화 됨에 따라, 최근 서비스들이 특정 기능을 내세우며 목적성을 지니고 나오던 과거와 달리 모든 서비스와 기능을 갖춘 ‘플랫폼화’ 가 진행되며 코드 베이스의 크기가 기하급수적으로 증가하기 시작했다.

코드 베이스의 크기는 곧 빌드 시간의 증가로 이어진다. 그리고 이 빌드 시간은 개발자의 시간을 뺏는 주요 원인 중 하나이다.

스크린샷 2024-04-09 오후 4.00.27.png

지난 해커톤에서 개발한 서비스의 경우 코드량이 대략 3만줄이 좀 안되는 크기를 가지고 있는데,

스크린샷 2024-04-09 오후 4.01.05.png

이 서비스를 vercel을 통해 배포를 진행하면 평균 40초 가량의 빌드시간이 필요하다.

그렇다면 100만줄 크기의 서비스를 배포하기 위해선 어느 정도의 시간이 필요할까?