새소식

[5분 내로] 강의실/📋 MSA에 대해 알아보기

[5분 MSA] 마이크로서비스란? MSA의 장단점에 대해서 #2

  • -
728x90

안녕하세요. 팀드모네입니다.

 

지난 시간에는 모놀리식 아키텍처의 장단점에 대해 알아보았는데요

이번 시간에는 그 이야기에 이어 마이크로서비스 아키텍처의 장단점에 대해 설명드리겠습니다.

 

 

질문1) 마이크로서비스 아키텍처란?

 

마이크로 서비스를 한문장으로 설명하면 API를 통해 통신하는 작고 독립적인 서비스의 모임입니다.

하나로 뭉처진 모놀로식 즉, 거대한 어플리케이션을 적절히 잘 쪼개어 분산시키는 것이죠.

 

질문2) 마이크로서비스 도입시 얻게 되는 장점은 무엇인가요?

 

상식적으로 백도어를 열거나 다른 서비스의 DB에 직접적인 커넥션을 맺지 않겠는 전제하에

API라는 서비스 간 국경선이 설정되어 내부 클래스에 마음대로 들어올 수 없어 모듈성이 향상되었습니다.

미국으로 예시를 들자면, 미국이라는 곳은 하나의 국가 안에 51개 주로 나누어져 있죠.

반대로 우리 대한민국이나 일본, 중국 같은 경우는 완전히 국경선으로써 나라가 나뉘어져 있습니다.

그래서 어디 여행이라도 가려면 여권을 들고 국경 검문소를 통과해야하죠.

마이크로서비스도 이와 유사합니다. API라는 국경선으로 서비스가 나뉘어져 있어

기존 모놀리식에 비해 애플리케이션의 모듈성을 유지하기 훨씬 수월해진 것입니다.

 

질문3) 마이크로서비스의 단점은 무엇인가요?

 

MSA는 사실 도입이 쉬운 아키텍처가 아닙니다.

하나로 뭉처진 모놀리식의 DB를 서비스 별로 잘 쪼개야하는데

그 과정이 쉽지도 않을 뿐더러 잘못 분해하는 경우

서비스 간의 결합도가 높아져서 반드시 함께 배포해야하는 불상사가 일어날 수도 있습니다.

다음으로는 운영이 복잡해집니다. 종류가 다른 서비스가 인스턴스로 여기저기 떠 있는 거에요.

따라서 그 서비스가 죽었는지 살았는지 체크하는 기술을 회사 내부에서 확보한 상황이어야 합니다.

다음으로는 트랜젝션 유지가 어렵습니다. 기존 모놀리식 환경에선 DBMS가 기본적으로 제공해주는 트랜잭션 기능, 

Commit 그리고 Rollback 같은 거로 데이터를 일관성 있게 관리했었는데요.

MSA는 계속 설명드렸다시피 Application 및 DB가 엄청 분산된 아키텍쳐입니다.

트랜잭션 처리가 단일 DBMS론 커버가 안되는거죠. 따라서, 이 문제를 해결할 방안을 회사 내부에서 이미 확보한 상황이어야 합니다.

 

 

 

 

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.