개발/MSA 4

[MSA] Spring Cloud Gateway를 통해 서비스간 라우팅 해보기

FirstService,SecondService  우선 프로젝트를 하나 생성해준다. FirstService와 SecondService를 생성했으며 의존성은 Lombok, Spring Web, Eureka Discovery Client를 추가해주었다. 여기서 각각의 기능은?Lombok: 자바 코드에서 반복적으로 작동되는 코드를 줄여주는 라이브러리 예를 들어  1. Getter/Setter 자동생성: @Getter, @Setter 애노테이션을 사용해서 클래스 필드에 대해 자동으로 게터와 세터 메서드를 생성함2. 생성자 자동 생성: @NoArgsConstructor, @AllArgsConstructor 등을 사용해서 다양한 형태의 생성자 자동으로 생성 가능 Spring Web: 스프링 애플리케이션에서 웹 애플..

개발/MSA 2024.11.30

[MSA] SOA와의 차이점은 뭘까?, REST Maturity Model

Service를 지향하는 아키텍처 SOA와의 차이점은 무엇일까요? SOA : 재사용을 통한 비용 절감 MSA : 서비스 간의 결합도를 낮추어 변화에 능동적으로 대응 -> 하나의 서비스와 연결되는 다른 서비스와의 관계를 줄인다.만약 회원가입이라는 마이크로 서비스에서 저장된 회원 목록 데이터가 결제라는 마이크로 서비스에서 사용되기 위해서는 두 개의 서비스가 연결되거나, 결제 서비스에서 직접 회원가입 서비스에 데이터베이스에 접속해서 데이터를 사용하는 방식이 아니라, API를 통해서 데이터를 요청해서 사용해야하고, 회원가입 서비스에 문제가 생길 시에도 결제 서비스에는 직접적인 영향을 주지 않고 우회할 수 있는 서비스로 제공할 수 있도록 구현된 것이 마이크로 서비스들의 관계라고 볼 수 있다.  즉 서비스 공유를 ..

개발/MSA 2024.11.27

[MSA] 12-Factors App? +3

클라우드 네이티브 애플리케이션을 구축함에 있어 고려해 봐야 할 12 가지 항목에 대해 알아 보았다.  12 팩터스는 클라우드 서비스 중 플랫폼 애저 서비스 즉 파스라라는 형태의 서비스 형태를 제공하는 Heroku 라는 플랫폼에서 제시한 12가지 항목으로서 클라우드 네이티브 애플리케이션을 개발하거나 서비스를 운영할 때 고려해야 될 항목을 정리한 것이다.  1. 코드베이스 (Codebase)설명: 애플리케이션은 반드시 단일 코드베이스를 가져야 하며, 버전 관리 시스템(Git 등)을 사용하여 관리해야 한다.핵심 내용:여러 애플리케이션은 서로 다른 코드베이스를 사용한다.동일한 코드베이스가 여러 배포 환경(개발, 테스트, 운영)에서 사용될 수 있다. 자체 레파지토리에 저장된 각 마이크로 서비스에 대한 단일 코드베..

개발/MSA 2024.11.26

[MSA] Cloud Native Application, Anti-fragile 특징

2010년도 이후부터 IT 시스템은 클라우드 네이티브, Anti-fragile 아키텍처 형태로 발전되어 왔다. 확장 가능한 아키텍처 (scale-up, scale-out으로 나눌 수 있다.) 원래라면 물리적인 서버, 하드웨어를 업그레이드를 해야 하지만 클라우드 네이티브에서는 가상의 서버, 가상의 스토리지를 이용하여 이러한 비용을 줄일 수 있다.서버 가상화는 필수적이다.시스템의 수평적 확장에 유연하다.확장된 서버로 시스템의 부하 분산, 가용성 보장시스템 또는, 서비스 애플리케이션 단위의 패키지 (컨테이너 기반 패키지)체계적인 모니터링을 통해 상태를 지속적 관리  탄력적 아키텍처 분리된 독립적 서비스로 구성을 함 서비스 생성 - 통합 - 배포, 비즈니스 환경 변화에 대응 시간 단축분할된 서비스 구조무상태 통..

개발/MSA 2024.11.26