본문 바로가기

마이크로서비스7

스프링 클라우드란? 스프링은 시장에서 검증된 수많은 오픈 소스 프로젝트를 모아 통칭 스프링 클라우드(Spring Cloud)라는 스프링 하위 프로젝트로 통합했다. 스프링 클라우드는 VMWare, 하시코프(HashiCorp), 넷플릭스 등 오픈 소스 회사의 제픔을 전달 패턴으로 모아 놓은 도구 집합이다.스프링 클라우드는 프로젝트 설정 및 구성을 단순화하고 가장 흔히 접할 수 있는 패턴의 해결안을 스프링 애플리케이션에 제공한다. 덕분에 마이크로서비스 애플리케이션을 만들고 배포하는 데 필요한 모든 인프라스트럭처 구성에 대한 세부 사항은 신경 쓰지 않은 채 코드를 작성하는 데만 집중할 수 있다. 아래는 스프링 클라우드에 구현된 패턴이다. ( 서비스 라우팅 패턴 : Spring Cloud API Gateway )   구성 정보 관리.. 2024. 10. 7.
마이크로서비스 개발 패턴 핵심 마이크로서비스 개발 패턴은 마이크로서비스 구축에 대한 기본 사항을 다룬다. 아래는 마이크로서비스를 구축하면서 고려해야 할 중요 항목이다.   서비스 세분화 : 비즈니스 도메인을 마이크로서비스로 분해하여 각 서비스가 적정 수준의 책임을 갖도록 하는 방법은 어떤 것이 있을까? 서비스를 서로 다른 비즈니스 문제 도메인의 책임과 중첩될 정도로 지나치게 크게 나누면 시간이 지나 유지 관리하고 변경하기 어렵다. 반면 서비스를 너무 세분화 하면 애플리케이션 복잡성이 전반적으로 높아지고 데이터 저장소에 액세스하는 것 외에 다른 로직이 없는 멍청한 서비스로 전락한다. ( 자세한 내용은 다음에...)통신 프로토콜 : 개발자는 서비스와 어떻게 통신할까? 첫 번째 단계는 동기와 비동기 프로토콜중 어떤 것이 필요한지 정하.. 2024. 9. 10.
마이크로서비스의 이해 모놀리스 아키텍처중소 규모의 많은 웹 애플리케이션은 모놀리스 아키텍처 형태로 구축된다. 모놀리스 아키텍처에서 애플리케이션은 배포 가능한 하나의 산출물로 생성된다. 모든 UI, 비즈니스 및 데이터베이스 액세스 로직은 함께 고유한 애플리케이션으로 패키징되어 애플리케이션 서버에 배포된다. 아래 그림은 모놀리스 아키텍처이다. 애플리케이션은 단일 작업으로 배포될 수 있지만 한 애플리케이션에서 여러 개발 팀이 작업하는 경우가 많다. 각 개발 팀은 일반적으로 특정 고객을 대상으로 하는 애플리케이션의 개별 부분을 담당한다. 예를 들어 UI/UX, 고객, 데이터 웨어하우스, 금융 관계자 등을 포함한 여러 팀과 조율해야 하는 사내 맞춤형 고객 관계 관리(CRM) 애플리케이션의 시나리오를 생각해 보자. 마이크로서비스 아키텍.. 2024. 9. 9.