마이크로서비스 아키텍처란? (vs 모놀리식)
- IT
- 2023. 5. 13.
사용자는 하나의 애플리케이션을 쓰는 것 같아도, 서버에선 해당 애플리케이션을 구동하기 위해 여러 개의 서비스를 올리게 되는 경우가 많습니다. 이처럼 여러 개의 마이크로 서비스(micro service)들이 서로 통신하며 애플리케이션을 구성하는 방식을 마이크로서비스 아키텍처라고 합니다.
마이크로서비스 아키텍처란?
마이크로서비스 아키텍처는 애플리케이션을 독립적인 단위로 나누어 서로 상호 작용하는 서비스로 분리하는 구조를 의미합니다. 사용자 입장에선 마치 하나의 애플리케이션을 쓰는 것 같은 경험을 주지만, 소프트웨어 구조로 보면 여러 서비스가 API를 통해 통신하며 각각의 비즈니스 로직을 구현하는 형태입니다.
마이크로서비스 아키텍처는 소프트웨어 개발과 배포에 대한 접근 방식으로, 자연스럽게 발전해 왔습니다. 넷플릭스, 아마존, 구글 등의 빅테크들이 이러한 아키텍처를 선도적으로 도입 및 성공하며 다른 많은 기업들도 이 아키텍처를 많이 사용하게 됐다고 합니다.
마이크로서비스 아키텍처 특징
1. 각 마이크로서비스는 독립적으로 배포되고 실행될 수 있습니다. 때문에 각 서비스는 서로에게 의존하지 않으며 문제가 발생해도 다른 서비스에 영향을 미치지 않습니다.
2. 마이크로서비스는 서로 다른 팀이 독립적으로 개발하고 관리할 수 있습니다. 각 팀은 서비스에 잘 맞는 언어와 데이터베이스 등을 선택할 수 있습니다.
3. 각 마이크로서비스는 자신의 데이터를 독립적으로 관리합니다. 이는 데이터의 일관성을 유지하기 위한 복잡한 트랜잭션을 피하고, 성능과 확장성을 향상시킬 수 있습니다.
4. 필요에 따라 특정 마이크로서비스만 확장할 수 있습니다.
마이크로서비스 아키텍처 예시
예를 들어, 온라인 쇼핑몰 애플리케이션이 있다고 해보겠습니다. 이 서비스를 마이크로서비스 아키텍처로 개발할 경우 아래와 같이 서비스를 분리할 수 있습니다.
- 상품 카탈로그 서비스
- 장바구니 서비스
- 주문 서비스
- 고객 서비스
이처럼 서비스가 4개면 서버에서는 각 서비스는 다른 포트에서 리스닝 상태로 통신 대기하며 애플리케이션이 구동될 수 있는 것입니다. 반드시 동일한 물리 서버에 있어야 하는 것도 아니고 통신이 되는 한 위치가 다를 수도 있습니다. 서비스 간 통신은 API 게이트웨이 등을 사용합니다.
마이크로서비스 vs 모놀리식
마이크로서비스 아키텍처와 대조되는 아키텍처로 모놀리식 아키텍처(Monolithic Architecture)가 있습니다. 모놀리식 아키텍처는 애플리케이션의 모든 구성 요소가 하나의 단일 프로그램으로 구성되며, 같은 프로세스 공간에서 실행됩니다.
모놀리식은 모든 기능이 하나의 코드베이스로 유지되고 서로 긴밀하게 연결되어 있습니다. 개발, 테스트, 배포 등이 비교적 간단합니다. 그러나 하나의 부분에 문제가 생기면 전체 애플리케이션에 영향을 주고, 애플리케이션의 일부분만 확장하는 것이 어렵고 기술 스택을 변경하는 것이 어려운 등의 단점이 있습니다.
반면 마이크로서비스 아키텍처는 이런 문제를 해결합니다. 각 서비스는 독립적으로 개발, 배포, 확장될 수 있으며 각기 다른 기술 스택을 사용할 수 있습니다. 그러나 서비스 간 통신, 데이터 일관성, 복잡한 배포 및 관리 등의 어려움이 있습니다.
'IT' 카테고리의 다른 글
API 게이트웨이란? (마이크로서비스 통신 중개) (0) | 2023.05.14 |
---|---|
삼성헬스 걸음수 표시 방법 (사라짐 해결) (0) | 2023.05.14 |
SAML 인증이란? SSO 로그인 연동 (0) | 2023.05.12 |
카카오T 택시 즐겨 찾는 장소 등록 방법 (빠른 호출) (0) | 2023.05.10 |
갤럭시 Quick Share 사용 방법 (카톡보다 빠른 사진 전송) (0) | 2023.05.10 |