대부분의 웹 기반 애플리케이션은 모놀리식 아키텍쳐 형태로 개발되었다.✔️ 모놀리식 아키텍쳐모놀리식 아키텍처에서 애플리케이션은 배포 가능한 단일 소프트웨어 산출물로 전달된다.UI, 비즈니스 로직, 데이터베이스 액세스 로직 모두가 하나의 애플리케이션 산출물로 패키징되고 애
일반적인 자바 애플리케이션은 각 클래스가 애플리케이션의 다른 클래스와 명시적으로 호출된 클래스로 분해된다. 그렇기 때문에 강한 의존성을 지니며 소스 코드 변경 시 다른 코드에 영향을 줄 수 있다. 하지만 스프링과 같은 의존성 주입 프레임워크를 사용하면 애플리케이션 안에
스프링 부트로 마이크로서비스 구축하기
자국 시장에서 서비스하던 기존의 기업 운영 트렌드는 시대가 지나면서 글로벌 시장으로 확대되고 있다. 글로벌 고객이 확대되면서 경쟁도 치열해지고 이러한 경쟁 압박이 생기면서 기업들은 아래의 문제점을 겪기 시작했다.복잡성 증가고객은 조직의 모든 부분이 자신을 인식하길 원한
마이크로서비스 기반 아키텍처는 각 서비스를 독립된 개별 산출물로 패키징하고 배포한다. 따라서 배포시 서비스 인스턴스는 신속하게 시작할 수 있는 환경을 고려해야 한다. MSA 기반 서비스는 아래와 같은 환경에서 배포를 결정할 수 있다.기존의 온프레미스 환경기존의 온레미스
스프링 클라우드 컨피그는 중앙 집중식 서비스로 애플리케이션 구성 데이터 관리를 담당하고 마이크로서비스와 완전히 분리한다. 따라서 인스턴스가 아무리 많더라도 항상 동일한 구성을 유지할 수 있다. 스프링 클라우드 컨피그에는 고유한 관리 저장소가 있지만 다음 오픈 소스 프로
전통적인 폭포수 개발 방법론은 프로젝트의 소프트웨어 산출물이 가진 세분화 정도에 따라 다음 단점이 발생한다.비즈니스 로직 호추링 SOAP 이나 REST 같은 중립적인 프로토콜이 아닌 프로그래밍 언어 수준에서 이루어진다. 따라서 애플리케이션 컴포넌트를 조금만 수정해도 애
MSA를 구축할 때 다음 세 가지를 일을 하여야 한다.비즈니스 문제 분해서비스 세분화의 확정서비스 인터페이스 정의문제를 기술하는 데 동일한 명사가 반복해서 사용된다면 핵심 비즈니스 영역과 마이크로서비스로 쪼갤 것을 고려하여야 한다.예를 들어 "데스크톱 서비스 부서의 "
마이크로서비스를 사용하면 안 되는 경우를 알아보자마이크로서비스는 잘게 나뉘고 분산되어 있어 모놀리식 애플리케이션에선 없던 복잡성을 가져온다. 따라서 MSA에는 높은 수준의 운영 성숙도가 필요하고 고도로 분산된 애플리케이션을 성공시키는 데 필요한 자동화와 운영 작업에 투
MS를 만들 때 개발자는 애플리케이션을 구성하는 각 마이크로서비스의 구현 방식에 대한 기본 패턴을 정립해야 한다. 각 마이크로서비스는 고유하되, 상용구 코드를 제거하는 프레임워크를 사용하고 마이크로서비스 각 부분이 일관된 방식으로 배치되어 있는지 확인해야 한다. 이번
데브옵스 문화에서 성공적으로 마이크로서비스 애플리케이션 개발을 하기 위해 12가지 지침을 명심해야 한다.모든 애플리케이션 코드와 서버 프로비저닝(Provisioning) 정보는 버전 관리(Version-Conrol)되어야 한다. 각 마이크로서비스는 소스 제어 시스템 안
마이크로서비스를 데브옵스라는 문화에 적용하기 위해선 네 가지 원칙이 필요하다. ✏️ 1. 마이크로서비스는 단일 소프트웨어 산출물을 사용해 여러 서비스 인스턴스를 시작하거나 제거할 수 있도록 자체 완비형이며 독립적으로 배포 가능해야 한다. ✏️ 2. 마이크로서비스는
일반적으로 구성 정보는 저수준의 프로퍼티 파일 (YAML, JSON, XML 등)에 작성하고 미들웨어의 접속 정보와 애플리케이션의 행동 양식을 정하는 메타데이터가 존재하는 서버에 둔다. 그러나 이러한 방식은 수많은 마이크로서비스 인스턴스가 실행되는 클라우드 기반의 애플