Spring Microservice(101)
-
CI/CD for microservices architectures
더 빠른 릴리스 주기는 마이크로서비스 아키텍처의 주요 이점 중 하나입니다. 하지만 좋은 CI/CD 프로세스가 없으면 마이크로서비스가 약속하는 민첩성을 달성할 수 없습니다. 이 섹션에서는 문제점을 설명하고 문제에 대한 몇 가지 접근 방식을 권장합니다.CI/CD란?CI/CD는 지속적 통합(Continuous Integration), 지속적 전달(Continuous Delivery), 지속적 배포(Continuous Deployment) 를 포함하는 여러 관련 프로세스를 의미합니다.📌 지속적 통합(Continuous Integration, CI)코드 변경 사항이 자주(main 브랜치에) 병합됨자동화된 빌드 및 테스트 프로세스를 통해 코드가 항상 프로덕션 품질을 유지📌 지속적 전달(Continuous Del..
2025.02.26 -
Microservices assessment and readiness
마이크로서비스 아키텍처는 민첩성, 확장성 및 고가용성을 포함하여 애플리케이션에 많은 이점을 제공할 수 있습니다. 이러한 이점과 함께 이 아키텍처는 과제도 제시합니다. 마이크로서비스 기반 애플리케이션을 구축하거나 기존 애플리케이션을 마이크로서비스 아키텍처로 변환할 때 개선이 필요한 영역을 식별하기 위해 현재 상황을 분석하고 평가해야 합니다.이 가이드는 마이크로서비스 아키텍처로 이동할 때 염두에 두어야 할 몇 가지 고려 사항을 이해하는 데 도움이 될 것입니다. 이 가이드를 사용하여 애플리케이션, 인프라, DevOps, 개발 모델 등의 성숙도를 평가할 수 있습니다.비즈니스 우선순위 이해(Understand business priorities)마이크로서비스 아키텍처를 평가하기 시작하려면 먼저 비즈니스의 핵심 우..
2025.02.26 -
Identify microservice boundaries
마이크로서비스의 적절한 크기는 무엇일까요? "너무 크지도 않고 너무 작지도 않게"라는 말을 자주 듣는데, 물론 맞는 말이지만 실제로는 별로 도움이 되지 않습니다. 하지만 신중하게 설계된 도메인 모델에서 시작하면 마이크로서비스에 대해 훨씬 쉽게 추론할 수 있습니다.이 글에서는 드론 배송 서비스를 계속 사용되는 예시로 활용합니다. 시나리오 및 해당 참조 구현에 대해 자세히 알아보려면 다음 내용을 읽어보세요. From domain model to microservices이전 단계 요약이전 글에서는 드론 배송(Drone Delivery) 애플리케이션의 경계 컨텍스트(Bounded Contexts)를 정의 했습니다.그 후, 배송(Shipping) 경계 컨텍스트를 자세히 분석하여 엔터티(Entity), 애그리게이트..
2025.02.26 -
Using tactical DDD to design microservices
도메인 주도 설계(DDD)는 전체 시스템에 대해 단일 통합 모델을 갖는다는 개념에 반대합니다. 대신 시스템을 각각 고유한 모델을 갖는 경계가 있는 컨텍스트(bounded contexts)로 분할하는 것을 권장합니다. DDD의 전략적 단계에서는 비즈니스 도메인을 매핑하고 도메인 모델에 대한 경계가 있는 컨텍스트를 정의합니다.전술적 DDD는 도메인 모델을 보다 정밀하게 정의하는 것입니다. 전술적 패턴은 단일 경계가 있는 컨텍스트 내에서 적용됩니다. 각 경계가 있는 컨텍스트가 마이크로서비스 후보인 마이크로서비스 아키텍처에서 우리는 특히 엔터티 및 집계 패턴에 관심이 있습니다. 이러한 패턴을 적용하면 애플리케이션의 서비스에 대한 자연스러운 경계를 식별하는 데 도움이 됩니다(이 시리즈의 다음 문서 참조). 일반 ..
2025.02.26 -
Using domain analysis to model microservices
마이크로서비스에서 가장 큰 도전 과제 중 하나는 개별 서비스의 경계를 정의하는 것입니다. 일반적으로 "하나의 서비스는 하나의 일을 수행해야 한다" 는 원칙이 있지만, 이를 실무에서 적용하려면 신중한 고민이 필요합니다.정확한 설계를 보장하는 기계적인 방법은 존재하지 않습니다. 올바른 서비스를 설계하려면 다음과 같은 요소들을 깊이 고려해야 합니다.비즈니스 도메인요구사항아키텍처 특성(비기능적 요구사항, Non-Functional Requirements)시스템 목표이러한 요소를 제대로 고려하지 않으면, 다음과 같은 문제가 발생할 수 있습니다.서비스 간 숨겨진 의존성서비스 간 강한 결합(Tight Coupling)잘못 설계된 인터페이스이 글에서는 도메인 중심(Domain-Driven) 접근 방식을 통해 마이크로서..
2025.02.26 -
Microservices architecture design
마이크로서비스는 탄력적이고, 고도로 확장 가능하며, 독립적으로 배포할 수 있고, 빠르게 발전할 수 있는 애플리케이션을 구축하는 데 인기 있는 아키텍처 스타일입니다. 하지만 성공적인 마이크로서비스 아키텍처를 구축하려면 애플리케이션을 설계하고 개발하는 방식이 달라야 합니다.마이크로서비스 아키텍처는 작은 독립적인 서비스들의 모음으로 구성됩니다. 각 서비스는 자체적으로 완결성을 가지며, 단일 비즈니스 기능을 경계(bounded context) 내에서 구현해야 합니다. 경계(bounded context)는 비즈니스 내에서 자연스러운 구획을 의미하며, 도메인 모델이 존재하는 명확한 경계를 제공합니다.마이크로서비스란 무엇인가?마이크로서비스는 작고 독립적이며 느슨하게 결합된 아키텍처 스타일입니다. 하나의 작은 개발팀이..
2025.02.26