새소식

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

[5분 MSA] 모놀리식 아키텍처란? 모놀리식의 장단점에 대해서 #1

  • -
728x90

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

 

오늘은 MSA를 이해하기 위해 필수적으로 알아야 하는 개념!

 

모놀로식 아키텍처에 대해서 알아보도록 하겠습니다.

 

 

질문1) 모놀리식 아키텍처란 무엇인가요?

 

<옛날 스타일>, <하나에 몰빵>이라고 기억하시면 편합니다.

조금 더 정확하게 표현하자면, 하나의 서비스 또는 어플리케이션이

하나의 거대한 아키텍쳐를 가질 때, 모놀리식하다고 표현합니다.

조금 더 쉽게 표현하자면, 단일 애플리케이션에 계속 기능을 계속 붙이는 아키텍처입니다.

 

질문2) 모놀리식 아키텍처의 장점은 무엇인가요?

 

이 아키텍처는 스타트업 즉, 초기 사업에 매우 적합합니다.

아키텍처가 단순하니까, 디버깅도 쉽고 테스트도 쉽고 배포도 쉽습니다.

당연히 기능 개선도 쉽죠.

그것을 증명하듯 이베이, 아마존 닷컴, 넷플릭스도 초기엔 모놀리식으로 애플리케이션을 실행했다고 합니다.

 

질문3) 모놀리식 아키텍처의 단점은 무엇인가요?

 

모놀리식 아키텍처는 애플리케이션에 계속 기능을 계속 붙이는 아키텍처입니다.

 

기능을 계속 붙이다보면, 더 이상 기능을 추가로 개발하거나 유지보수가 힘들어지는 순간이 옵니다.

 

아무리 천재적인 개발팀이 투입되어도 서비스의 크기는 점점 커질 것이며, 관련 기능의 결합도 또한 점점 높아지기 때문이죠.

한 예로, 결제 기능을 고쳤더니 뜬금없이 회원 관리 기능이 망가지는 웃지못할 일이 벌어지기도 하죠.

에러를 고치면 대체 어디에 영향이 미쳐 또 다른 기능이 망가질지 가늠할 수 없습니다.

 

또한 시스템이 거대해질 수록 WAR 파일 즉 배포파일의 크기도 거대해집니다. 나중엔 배포에만 1시간.. 2시간이 걸리기 일쑤입니다.

그리고 프로젝트가 하도 크다보니 일반 노트북 IDE에서선 돌아가지도 않습니다.

스타트를 누르고 어플리케이션이 켜질때까지 기다리는 시간 또한 만만치 않죠

그리고 아키텍처 상, 장애가 발생하면 모든 서비스가 한 방에 죽습니다.

 

DB에 값을 넣다가 용량이 풀 차던지 DB가 꼬이던지 등의 이유로 시스템이 뻗으면 

사실 DB에 값을 넣는 서비스만 좀 잠시 멈춰주면 좋은데

그런게 어디있어요. 그냥 시스템 다 같이 죽는거죠. 이 아키텍처는 사실 마치 물귀신 같은 녀석이었던 것입니다.

그래서 운영의 기본이자 상식이긴 한데 HA라고 서비스하고 DB 이중화가 안되어있으면 담당자는 완전 새벽 출근 당첨이죠.

반응형
Contents

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

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