[소프트웨어 아키텍처] 마이크로커널 아키텍처란 무엇인가?

토폴로지

마이크로커널 아키텍처 스타일은 코어시스템과 플러그인 컴포넌트라는 2가지 아키텍처 요소로 구성된 비교적 단순한 모놀리식 아키텍처 입니다.

마이크로커널 아키텍처

코어 시스템

시스템을 실행시키는데 필요한 최소한의 단위(예 : 이클립스의 파일 열기 기능, 텍스트 수정, 파일 저장만 코어 시스템)
즉, 변하지 않은 공통 기능만 담습니다. 각 영역별 핵심 비즈니스 로직은 플러그인 컴포넌트에 들어간다고 보면 됩니다.
코어 시스템은 규모와 복잡도에 따라서 레이어드 아키텍처와 모듈러 모놀리스로 구현이 될 수 있습니다. 이런 경우 코어 시스템을 별도로 배포 도메인 서비스로 나누어 서비스별 도메인에 특정한 플러그인 컴포넌트를 둘 수도 있습니다.

레이어드 코어 시스템
모듈러 코어시스템

플러그인 컴포넌트

플러그인 컴포넌트는 특수한 처리 로직, 부가 기능, 그리고 코어 시스템을 개선/확장 하기 위한 커스텀 코드가 구현된 컴포넌트 라고 볼 수 있습니다. 변동성이 큰 코드를 분리하여 애플리케이션 내부의 유지보수성, 시험성을 높이는 것 입니다. 이상적인 플러그인 컴포넌트는 상호 독립적이며 의존성이 없습니다.

플러그인 컴포넌트와 코어 시스템은 점대점 통신을 합니다. 플러그인 방식은 런타임 기반 방식과 컴파일 기반 방식으로 만들 수 있습니다.

런타임 플러그인 컴포넌트

런타임에 코어 시스템이나 다른 플러그인을 재배포 하지 않고 바로 추가/삭제가 가능한 방식 입니다

컴파일 기반 플러그인 컴포넌트

관리가 편한 방식이나 변경, 추가, 삭제시 전체 모놀리식 애플리케이션을 재배포 해야 합니다.

사용 예시

IDE / 편집기

  • 코어: 파일/프로젝트/에디터 프레임
  • 플러그인: 언어 지원(Java, Python), 디버거, Git, 테마
    예) Eclipse, IntelliJ 플러그인, VS Code 확장

브라우저 확장

  • 코어: 렌더링/탭/네트워크 기본 기능
  • 플러그인: 광고차단, 번역, 비밀번호관리, 개발자 도구 확장
    예) Chrome/Edge Extensions

결제/정산 플랫폼

  • 플러그인: 카드사/PG사/간편결제별 어댑터(토스, 카카오페이 등), 국가별 세금 규칙
  • 코어: 주문/결제 흐름, 트랜잭션/정산 공통 파이프라인

관련 글 보기