Notice
suyeonme
[MSA] 마이크로서비스(Mocroservice)란? 본문
마이크로서비스(Mocroservice)란?
마이크로서비스는 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 소프트웨어 아키텍쳐이다.
마틴파울러는 아래와 같이 마이크로서비스를 정의했다. 해당 내용은 여기서 확인할 수 있다.
The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data.
마이크로서비스의 장점
- 기술 이기종성이 높다. 각 서비스는 다른 기술을 사용할 수 있다. 예를 들어, 소셜 네트워크는 그래프 지향 데이터베이스에, 사용자 게시물은 문서 지향 데이터베이스에 저장할 수 있다.
- 회복성이 높다. 한 시스템의 컴포넌트에 장애가 발생하더라도 그 장애가 전파되지 않는다면 해당 문제를 격리하고 나머지 시스템을 계속 작동시킬 수 있다.
- 확장성이 높다. 전체 시스템에서 작은 한 부분이 성능이 떨어진다면 전체를 확장하는게 아닌, 그 서비스만 확장할 수 있다.
- 배포 용이성이 좋다. 하나의 서비스만 변경할 수 있고 나머지 시스템과 독립적으로 배포할 수 있다. 코드를 더 신속히 배포하고 문제가 발생하더라도 개별 서비스만 롤백함으로써 해당 문제를 격리할 수 있다. -- CD/CI, 인프라 자동화
- 조직 부합성이 좋다. 아키텍처를 조직 구조에 맞게 더 적절히 정렬할 수 있고 최적의 팀 크기와 생산성을 위해 하나의 코드베이스에서 일하는 인원을 최소화할 수 있다. -- 콘웨이의 법칙, Conway's Law
'프로그래밍👩🏻💻 > 기타' 카테고리의 다른 글
[Nestjs, Axios] Access Token과 Refresh Token으로 인증 구현하기(클라이언트, 서버) (0) | 2024.06.18 |
---|---|
[Fix] 모노레포 환경의 Vscode에서 Eslint가 동작하지않는 현상 (0) | 2024.05.05 |
JSON Web Token(JWT)이란? (1) | 2023.08.06 |
[테스트] 좋은 단위 테스트(Unit Test) 작성하기 (1) | 2022.12.10 |
[의존성 관리] Semantic Versioning이란? (0) | 2022.11.20 |
Comments