[Backend 면접 질문 시리즈] 마이크로서비스 아키텍처: 현대 소프트웨어 개발의 핵심 트렌드
-
반응형
Backend Architecture
Intro. 면접에서 나오는 질문은 보편적으로 중요한 개념이며 하루 아침에 이해되고 외워 지는게 아닙니다. 평소에 꾸준히 지식을 습득하고 이해하는것이 중요합니다.
마이크로서비스 아키텍처란?
먼저 마이크로서비스 아키텍처는 소프트웨어 아키텍처 패턴 또는 설계 접근 방식으로 분류됩니다. 이는 특정 기술이라기보다는 시스템을 설계하고 구축하는 방법론적 기법에 가깝습니다.
마이크로서비스 아키텍처는 하나의 큰 애플리케이션을 여러 개의 작고 독립적인 서비스로 나누는 방식입니다. 각 서비스는 특정 비즈니스 기능을 담당하며, API를 통해 다른 서비스와 통신합니다. 이는 마치 레고 블록처럼 각 부분을 조립하여 전체 시스템을 구축하는 것과 비슷합니다.
개발 분야에서의 카테고리를 살펴보면:
소프트웨어 아키텍처 패턴 마이크로서비스는 모놀리식 아키텍처, 서비스 지향 아키텍처(SOA) 등과 함께 소프트웨어 아키텍처 패턴의 한 종류입니다.
시스템 설계 방법론 애플리케이션을 작고 독립적인 서비스들로 분할하여 설계하는 방법론입니다.
분산 시스템 설계 여러 개의 독립적인 서비스로 시스템을 구성하므로, 분산 시스템 설계의 한 형태로 볼 수 있습니다.
애플리케이션 개발 접근 방식 전체 애플리케이션을 어떻게 구조화하고 개발할 것인지에 대한 접근 방식을 제시합니다.
DevOps 및 클라우드 네이티브 컴퓨팅 관련 개념 마이크로서비스는 종종 DevOps 실천과 클라우드 네이티브 애플리케이션 개발과 밀접하게 연관됩니다.
따라서, 마이크로서비스 아키텍처는 단순한 기술이 아니라 시스템 설계와 개발에 대한 포괄적인 접근 방식입니다. 이는 특정 프로그래밍 언어나 프레임워크에 종속되지 않으며, 다양한 기술을 사용하여 구현할 수 있는 장점이 됩니다.
반응형
마이크로서비스의 장점
왜 마이크로서비스인가?
유연성: 각 서비스를 독립적으로 개발, 배포할 수 있어 빠른 변화에 대응하기 쉽습니다.
확장성: 필요한 서비스만 선택적으로 확장할 수 있어 자원을 효율적으로 사용할 수 있습니다.