MSA, 마이크로 서비스 아키텍쳐

ROCKBELL·2023년 7월 8일
0

CS 전공지식

목록 보기
18/18

MSA 란 무엇인가?

Micro Service Architecture 의 줄임말.
말그대로 작고 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크

MSA의 반대되는 개념인 모놀리식 아키텍쳐 (Monolithic Architecture)는 모든 서비스의 구성요소가 하나의 프로젝트로 통합되어잇는 형태를 말합니다
모놀리식 아키텍쳐는 서비스가 동일한 개발 환경으로 의존성 관리가 용이하다는 장점이 있으나, 하나의 프로젝트로 묶여있어 의존성이 높어지고 거대화되어, 배포와 빌드하는 시간이 오래걸리는 등의 단점이 있습니다

그렇기 때문에 소규모의 프로젝트에서는 모놀리식 아키텍쳐 방식을 적용하면 유용한 부분도 있지만, 대규모의 다양한 서비스를 제공하는 프로젝트에서는 득보다 실이 많을 수 있을 수 있기때문에 대부분 마이크로 서비스 아키텍쳐를 적용하고 있습니다

MSA 장점

  • 서비스마다 원하는 기술, 언어등을 사용할 수 있는 자율성
  • 오류가 있는 서비스만 수정을 하면되는 독립성
  • 코드 간의 결합성이 복잡하지 않아 코드를 파악하는데 용이
  • 서비스마다 독립적인 테스트 및 배포와 빌드가 가능해 빠른 속도

MSA 단점

  • 독립적인 개발 환경을 구성하고 있어, 각 서비스마다의 스택 및 의존성파악 필요
  • 서비스마다 코드의 중복이 생길 수있음
  • 서비스들이 분산되어 있어 통합적인 모니터링이 힘듦
  • E2E 테스트에 있어서 여러개의 마이크로 서비스를 구동시켜야하는 불편함이 있음
  • 다른 서비스에서 호출을 해서 사용하는 경우 통신관련 오류가 발생할 수 있음

개인적인 의견

이전 회사에서 다양한 서비스를 마이크로 서비스 아키텍쳐 방식으로 개발을 하였는데, 각각의 서비스마다 독립적인 개발이 가능해, 필요한 부분만 수정할 수 있어서 테스트에도 용이하고 빠르게 빌드와 배포가 가능했던 점이 좋았던 것 같습니다

다만 역시, 각각의 서비스마다 기술 스택 및 환경이 조금씩 달라 파악해야하는 부분이 있었습니다. 동일환 환경이라고 하면 코드의 중복이 발생하기도 하지만, 신규 서비스 등에는 새로운 기술 스택과 언어를 적용해볼 수 있는 장점도 있어 개발자 입장에서는 좋은 측면도 있습니다

MSA의 장/단점은 모놀리틱의 장/단점과 반대되는 특징을 가지고 있어, 서비스의 규모 혹은 비지니스 로직 측면등을 고려하며 좀 더 적당한 아키텍쳐를 선택하는 것이 좋을 것 같습니다

profile
luv it

0개의 댓글