[마이크로서비스] 스프링과 마이크로서비스

IMKUNYOUNG·2022년 9월 13일
0

스프링과 마이크로서비스


✔️ 스프링

일반적인 자바 애플리케이션은 각 클래스가 애플리케이션의 다른 클래스와 명시적으로 호출된 클래스로 분해된다. 그렇기 때문에 강한 의존성을 지니며 소스 코드 변경 시 다른 코드에 영향을 줄 수 있다. 하지만 스프링과 같은 의존성 주입 프레임워크를 사용하면 애플리케이션 안에서 관련 있는 객체가 상대에 관한 정보를 하드 코딩하지 않고, 관례와 애너테이션으로 객체 간 관계를 외부화할 수 있으므로 프로젝트 관리가 쉬워진다. 스프링은 애플리케이션의 자바 클래스 사이의 매개체로 자리 잡으며 클래스 의존성을 관리한다. 따라서 스프링 프레임워크는 기존의 J2EE를 빠르게 대체하고 있다.

✔️ 스프링과 마이크로서비스

스프링 개발 팀은 많은 개발 팀이 애플리케이션의 프레젠테이션과 비즈니스, 데이터 액세스 로직을 함께 패키징하고 단일 산출물로 배포하는 모놀리식 애플리케이션에서 작고 분산된 형태로 클라우드에 쉽게 배포 가능한 서비스를 구축하려는 분산 모델로 이동하려는 움직임을 빠르게 파악했다. 그리고 이러한 변화에 맞추어 스프링 개발 팀은 스프링 부트와 스프링 클라우드라는 2개의 프로젝트를 시작했다.

✔️ 스프링 부트

스프링 부트는 스프링 프레임워크를 재구성한 프레임워크인데, 스프링의 핵심 기능은 수용하되 불필요한 '엔터프라이즈' 기능을 제거하고 자바 기반의 REST (REpresentational State Transfer) 지향 마이크로서비스 프레임워크를 제공한다. 따라서 스프링 부트를 사용하면 단순한 애너테이션으로 외부 애플리케이션 컨테이너 없이도 패키지하고 배포할 수 있는 REST 마이크로서비스를 신속하게 구축할 수 있다.

REST의 핵심 개념은 서비스가 HTTP 동사 (GET, POST, PUT, DELETE) 를 수용해 서비스의 핵심 동작을 표현하고, JSON 처럼 경량의 웹 기반 데이터 직렬화 프로토콜을 통해 서비스에 데이터를 요청하고 수신하는 것을 말한다.

✔️ 스프링 클라우드

스프링 클라우드 프레임워크를 사용하면 사설 (private) 및 공용 (public) 클라우드에 마이크로서비스를 쉽게 운영하고 배포할 수 있다. 스프링 클라우드는 널리 사용되는 클라우드 관리용 마이크로서비스 프레임워크를 공통 프레임워크에 포함하고, 코드에서 애너테이션을 다는 것처럼 이러한 기술을 쉽게 사용하고 배포할 수 있게 한다.


📑 책 '스프링 마이크로서비스 코딩 공작소, 존 카넬'을 공부한 내용입니다 📑

0개의 댓글