마이크로서비스 아키텍처(주로 마이크로서비스라고도 함)란 애플리케이션 개발을 위한 아키텍처 스타일을 의미합니다. 마이크로서비스를 사용하면 대규모 애플리케이션을 각각 담당 영역을 가진 소규모의 독립적인 구성요소로 구분할 수 있습니다.
관심사의 분리 원칙에 맞게 어플리케이션의 외부(기술 영역) / 내부(비즈니스 로직 영역)를 구조화하고 유연성과 확장성을 가지게끔 설계한 아키텍처들이 있는데 대표적으로 레이어드 아키텍처, 헥사고날 아키텍처, 클린 아키텍처가 있습니다.
헥사고날 아키텍처(Hexagonal Architecture)는 포트 앤드 어댑터(Port and Adaptor) 아키텍처라고도 불리며 고수준의 비즈니스 로직을 표현하는 내부 영역과 인터페이스 처리를 담당하는 저수준 외부 영역으로 구분됩니다.
클린 아키텍처(Clean Architecture)는 소프트웨어 시스템을 독립적인 계층으로 분리하여 변경이나 확장이 쉽도록 하는 소프트웨어 아키텍처입니다.
마이크로서비스의 내부 아키텍처는 도메인 / 프로젝트의 형태에 따라서 다양하게 설계가 가능하지만 위의 지향 원칙을 항상 염두해두어야 합니다.