개발머해니

[은행IT] 모놀리식과 MSA(마이크로 서비스 아키텍처)의 차이, 장단점 본문

은행IT

[은행IT] 모놀리식과 MSA(마이크로 서비스 아키텍처)의 차이, 장단점

왕행님 2023. 8. 24. 21:12
728x90
반응형

안녕하세요!

오늘은 최근 은행 계정계의 핫이슈! 바로 모놀리식 아키텍처와 MSA 아키텍처에 대해서 설명해 드리겠습니다.


 

토스뱅크 계정계는 시중은행과 무엇이 다를까?

토스뱅크는 계정계 아키텍처를 '모놀리식' 방식에서 '마이크로 서비스' 방식으로 변경하고 있다고 합니다.

모놀리식 아키텍처는 과거부터 시중 모든 은행이 택하고 있는 방식인대요~ 먼저 '모놀리식'과 'MSA' 아키텍처가 대체 무엇인지부터 설명을 드려야겠죠? 아래에서 차근차근 알기 쉽게 설명드릴게요!

 

 

모놀리식(Monolithic) 아키텍처란?

모놀리식 아키텍처란 말 그대로 '단단히 하나의 구조로 짜여 있는 아키텍처'를 의미합니다. 즉, 1개의 서버, 1개의 데이터베이스(DB)만을 사용하는 시스템 아키텍처입니다.

 

이러한 모놀리식 아키텍처 내에서는 전통적인 개발 모델로 하나의 코드 안에 여러 개의 비즈니스 로직이 녹여져 있는 구조를 취합니다.

현재 하나원큐에서 채택하고 있는 계정계 서비스도 대부분 모놀리식으로 구성되어 있어서 이해하기 쉽게 한 가지 예를 설명드리겠습니다.  

 

 

모놀리식 구성 예시 : 하나원큐 메인 계좌 목록 조회 서비스

하나원큐에 로그인하시면 스와이핑으로 넘겨가면서 계좌를 확인할 수 있는대요~ 때, 이 계좌 목록을 가져오는 서비스 안에는 크게 세 가지 비즈니스 로직이 하나의 서비스 안에 존재하고 있습니다.

① 수신팀에 등록된 계좌 목록 조회
② 오픈뱅킹에 등록된 계좌 목록 조회
③ 전자금융팀에 등록된 돈통 잔액 조회

바로 이렇게 하나의 트랜젝션 안에 다양한 비즈니스 로직이 뭉쳐져 있는 구조를 모놀리식 아키텍처 방식이라고 합니다. 

 

 

MSA(마이크로 서비스 아키텍처)란?

하나의 거대한 '모놀리식' 아키텍처와 반대로 '마이크로 서비스(Micro Services)'는 독립된 작은 서비스들로 구성된 아키텍처 방식입니다. MSA구조 내에서 독립된 각각의 서비스는 각자 하나의 기능을 수행하고, 서로 구조적으로 정의된 인터페이스(API)를 통해 다른 서비스와 통신합니다. 

위의 그림에서 보듯이 각 기능에 따라 DB와 서버가 별도로 존재하는 구조를 일컫습니다. 하나의 기능을 위해서 다양한 서비스가 필요한 경우, 잘게 쪼개진 서비스들이 소통하며 트랜젝션이 이루어지는 것을 말합니다. 현실적으로 각각의 기능에 따라 필요한 DB의 종류, 개발언어, 프레임워크의 종류가 모두 상이할 수밖에 없습니다. 이때 MSA아키텍처 내에서는 각각의 기능이 각각의 필요에 따른 서버와 DB를 구축하게 됩니다.

 

 

모놀리식 vs MSA  : 장점

모놀리식 MSA
트랜젝션 처리가 용이하다 개별 업데이트, 수정, 배포가 용이하다.
소규모 프로젝트에서 합리적이다. 코드 충돌의 발생 가능성이 낮다.
통합테스트가 용이하다. 장애의 범위가 축소된다.
API 규격이 통일되어 관리가 용이하다. 출시 시간이 단축된다.
개발이 쉽다. 생산성이 증대된다.

 

모놀리식 vs MSA  : 단점

모놀리식 MSA
트래픽이 늘수록 처리가 힘들다. 구현이 어렵다.
변경 사항이 끼치는 영향도가 크다. 리소스 비용이 크다
비즈니스 로직이 복잡해 유지보수가 어렵다. 통합테스트가 어렵다.
기능에 알맞는 기술, 언어, 프레임워크를 선택하기 어렵다. 트랜젝션 관리가 어렵다.
Scale Out이 불가능하다. API 관리가 어렵다.

 

그럼 토스뱅크는 왜 코어뱅킹을 모놀리식에서 MSA로 전환했을까요?

자세한 이야기는 다음 편에 작성해 보도록 하겠습니다!


※ 다음글 링크 :

 

[은행IT] 토스뱅크는 왜 계정계를 MSA 로 채택했을까?

안녕하세요! 오늘은 새로운 금융 Tech 소식을 가져왔습니다. 바로 토스뱅크가 시중은행과 다른 구조로 계정계를 탈바꿈하고 있다고 소식인대요~ 과연 전통적인 은행의 코어뱅킹 시스템이 인터넷

devfrom2ne1.tistory.com

 

728x90
반응형