더북(TheBook)

1.4.2 마이크로서비스는 모듈성을 갖고 있다

모듈성(modularity)은 크고 복잡한 애플리케이션을 개발할 때 꼭 필요한 특성입니다. 요즘 애플리케이션은 규모가 방대하고 내용이 너무 복잡해서 어느 한 개인이 전부 다 이해하고 개발할 수 없습니다. 따라서 여러 사람이 이해하고 개발할 수 있게 애플리케이션을 여러 모듈로 분해합니다. 모놀리식 애플리케이션은 프로그래밍 언어 구성체(예: 자바 패키지)와 빌드 아티팩트(artifact)(예: 자바 JAR 파일)를 조합한 단위로 모듈을 정의하지만 실제로 이런 접근 방식은 문제가 많아서 FTGO처럼 연식이 오래된 대부분의 모놀리식 애플리케이션은 점점 상황이 나빠져 진흙잡탕이 되기 쉽습니다.

마이크로서비스 아키텍처는 서비스를 모듈성의 단위로 사용합니다. 각 서비스는 다른 서비스가 함부로 규칙을 어기고 침투하지 못하게 API라는 경계선을 갖고 있어서 다른 서비스 API를 우회하여 그 내부 클래스에 마음대로 들어올 수 없습니다. 따라서 시간이 지나도 애플리케이션 모듈성을 유지하기가 훨씬 수월합니다. 또 서비스를 빌딩 블록처럼 사용하여 독립적으로 배포/확장할 수 있는 부가적인 장점도 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.