TIL

효준·2024년 12월 10일
0

12월 10일 화요일
AM 알고리즘 풀이
PM 강의 수강

💡 Today Issue

MSA

🤔 나의 생각 + 배운 것

Monolithic Architecture


모놀리식 아키텍처는 위 이미지와 같이 하나의 서버에 모든 도메인이 들어가 있는 형태를 말한다.
DB 또한 모든 비지니스 로직이 일반적으로 1대의 DB만 사용한다.

모놀리식의 장점

  • 모든 코드가 프로젝트 하나에 위치해 구조가 단순하다
  • 다른 팀과 API 협의 필요 없이 데이터에 접근해 신규 기능 개발 속도가 빠르다.
  • 모든 도메인이 동일한 DB를 사용한다.
  • 기능 전체를 한번에 배포할 수 있어 과정이 단순하고 오류 발생 가능성이 낮다.
  • 개발환경이 일관적이여서 관리가 쉽다.
  • 단일 서버로 API 호출에 따른 네트워크 오버헤드가 없다.

모놀리식의 단점

  • 부분 장애가 전체에 영향을 준다.
  • 단순한 변경 하나에 전체를 빌드해야한다.
  • 모든 코드가 하나의 프로젝트에 있어 작은 코드 변경이 다른 도메인에 영향을 줄 수 없다.
  • 전체 서비스가 동일 기술 스펙하에 있어 각 도메인 별로 적절한 기술을 사용할 수 없다.

MSA

MSA는 Micro Service Architecture의 약자로 위와 같이 도메인 별로 서비스가 나누어진 구조를 말한다. 각 도메인은 각각 따라 서버를 구현하며 별도의 DB를 가지고 다른 도메인의 데이터 조회시 API를 통해서만 접근이 가능하다.

모놀리식의 단점을 보완한 것이 MSA의 장점이라 볼 수 있으며 한 서비스의 장애가 전체에 영향을 끼치지 않는다는 점이다.

MSA 장점

  • 한 서비스의 장애가 전체에 영향을 미치지 않아 신뢰성과 안정성이 높다.
  • 각 서비스가 독립적으로 배포될 수 있어 신속하고 빈번한 배포가 가능하다.
  • 특정 서비스만 독립적으로 확장할 수 있어 효율적인 자원 사용과 성능 향상이 가능하다.
  • 각 서비스별 가장 적합한 기술 스택을 선택할 수 있어 유연성이 높다.
  • 서비스가 작고 독립적이어서 이해하기 쉽고, 유지보수와 디버깅이 용이하다.
  • 각 서비스가 독립적으로 개발되고 운영될 수 있어 팀이 특정 서비스에 집중할 수 있다.

MSA 단점

  • 많은 서비스가 존재하여 서비스 간의 통신과 배포, 모니터링, 로깅 등 관리가 복잡하다.
  • 서비스간 통신에 의한 네트워크 오버헤드와 지연 시간이 발생할 수 있다.
  • 각 서비스가 개별 DB를 가질 수 있어 데이터 일관성 유지에 많은 리소스가 소모된다.
  • 분산된 아키텍처로 인해 개발 및 테스트 환경 설정이 복잡해진다.
  • 각 서비스 간의 통합과 협력이 복잡해져 서비스 경계를 명확히 정의하고 유지하는 것이 어렵다.
  • 초기 설정과 인프라 구축에 많은 시간과 비용이 들 수 있다.

🕐회고

profile
사진은 캣타워가 생겨 포효하는 고양이입니다.

0개의 댓글

관련 채용 정보