728x90
마이크로서비스 아키텍처 (MSA) 란?
마이크로서비스 아키텍처(MSA)는 소프트웨어 애플리케이션을 여러 개의 작은, 독립적으로 배포 가능한 서비스로 구성하는 소프트웨어 개발 접근 방식입니다. 이 아키텍처는 최근 몇 년간 소프트웨어 개발에서 큰 인기를 얻고 있으며, 특히 대규모 시스템의 유연성, 확장성 및 유지보수성을 향상시키는 데 유용합니다.
특징
- 느슨한 결합도 : MSA는 느슨하게 결합되어 있어, 각 서비스가 독립적으로 동작하고, 다른 서비스에 최소한의 영향을 미칩니다.
- 독립적 배포 : 각 서비스는 독립적으로 배포될 수 있어, 시스템의 일부분만 수정하고 배포할 수 있습니다.
- 특정 기능 수행 : 각 서비스는 특정 기능을 수행하도록 설계되어, 단일 책임 원칙(Single Responsibility Principle)을 따릅니다.
- API 통신 : 서비스 간의 통신은 명확히 정의된 API를 통해 이루어져, 서비스 간의 상호작용이 일관되고 명확합니다.
- 독립적 개발 : 각 서비스는 독립적으로 개발될 수 있어, 개발 팀이 서로 다른 기술 스택을 사용하거나, 다른 개발 속도로 작업할 수 있습니다.
장점
- 유연성 : 각 서비스가 독립적이므로, 시스템의 일부분만 수정하고 테스트할 수 있어 유연성이 향상됩니다.
- 확장성 : 특정 서비스만 확장하거나 축소할 수 있어, 시스템 자원의 효율적인 관리가 가능합니다.
- 유지보수성 : 작은 서비스 단위로 관리되므로, 코드베이스가 더 작고 이해하기 쉬워 유지보수가 용이합니다.
- 배포의 용이성 : 서비스별로 독립적인 배포가 가능하여, 한 서비스의 배포가 다른 서비스에 영향을 미치지 않습니다.
단점
- 복잡성 증가 : 서비스가 많아지면서, 서비스 간의 통신 및 데이터 일관성 유지 등 관리 포인트가 늘어납니다.
- 네트워크 오버헤드 :서비스 간의 통신이 네트워크를 통해 이루어지므로, 네트워크 오버헤드가 발생할 수 있습니다.
- 데이터 관리의 어려움 :각 서비스가 독립적으로 데이터베이스를 관리하기 때문에, 데이터 일관성을 유지하기 어려울 수 있습니다.
728x90
'IT 개발 관련 > [Spring]' 카테고리의 다른 글
[Spring] Jmeter 테스트 해보기 (Window) (0) | 2024.07.05 |
---|---|
[Spring] Eureka Server (Discovery Server) 생성 (0) | 2024.06.28 |
Thymeleaf를 이용한 Header, Footer 재사용 및 유지보수성 향상 (1) | 2024.06.02 |
[Spring] Swagger 라이브러리 가이드 (0) | 2024.05.28 |
[Spring] Spring Security, PasswordEncoder 구현하기 (0) | 2024.05.27 |