728x90
반응형

분류 전체보기 104

[Spring] Spring MVC 와 Spring Webflux의 차이점

Spring Framework에는 대표적인 프로그래밍 모델이 있다. 첫 번째는 가장 널리 알려지고 대중적으로 사용되는 Spring MVC 모델이고, 두 번째는 Spring WebFlux 모델이다. Spring WebFlux란? Spring WebFlux는 Spring 5에서 새롭게 도입된 모듈이며, 비동기 및 리액티브 프로그래밍을 지원한다. Spring MVC와는 다르게 Servlet API를 기반으로 하지 않고, 리액티브 프로그래밍 모델을 채택하여 작동한다. 이전에는 Servlet API를 기반으로 한 Spring MVC를 사용하여 동기적인 처리 방식으로 웹 애플리케이션을 개발했다. 동기적인 처리 방식은 한 번에 하나의 요청을 처리하는데, 이는 높은 트래픽과 데이터 양을 효과적으로 처리하기 어렵다. 최..

Programming/Spring 2024.03.17

[MSA] Spring Cloud Gateway와 Netflix Zuul의 차이점 (API Gateway)

🔊 Spring Cloud Gateway를 활용하여 API Gateway를 구축할 때 Spring Initializr에서 의존성으로 Gateway를 추가하면 안 되고 Reactive Gateway를 추가해야 하는 이유는 무엇일까? ❓ API Gateway 프로젝트를 생성하기 위해 Spring Initializr에서 의존성으로 Gateway를 추가했다가 이후에 설정들이 잘 되지 않았다. 그래서 이유를 찾아봤더니 Reactive Gateway를 추가했어야 했다. 왜?!!! Gateway가 아닌 Reactive Gateway를 추가해야 할까? 그 이유에 대해 알아보자!! ⭐ 의존성에 Gateway가 아닌 Reactive Gateway를 추가해야 하는 이유? 마이크로서비스 아키텍처에서 API Gateway를 구..

[MSA 구축하기] 5. Spring Cloud Gateway 프로젝트 생성하기 (API Gateway)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. 🔊 이번에는, Spring Cloud Gateway를 사용하여 API Gateway를 구축할 것이다. API Gateway 파트 1 API Gateway란? 사용자가 설정한 Routing 설정에 따라 각 endpoint로 client를 대신해서 요청하고, 응답을 받으면 다시 client에게 전달해주는 역할을 한다. Spring Cloud에서는 Spring Cloud Gateway가 API Gateway의 역할을 수행한다. Spring Cloud Gateway란? 스프링 클라우드 게이트웨이는 MSA 가장 앞단에서 클라이언트들로 부터 오는 요청을 받은 후 경로와 조건에 알맞은 마이크로서비스 로직에 요청을 전달하는 게이트웨이이다. 게이트웨이는 개..

[MSA 구축하기] 4. Eureka 클라이언트에 랜덤 포트 할당하기 (Service Discovery)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. Service Discovery 파트 3 Service Discovery의 역할을 간략하게 정리하자면, Service Discovery란? 마이크로서비스의 정보(위치 등)를 등록할 수 있다. 외부의 요청이나 서비스가 마이크로서비스의 정보를 검색하기 위해 사용된다. Spring Cloud에서는 Spring Cloud Netflix Eureka가 Service Discovery의 역할을 수행한다. Eureka는 Eureka Server와 Eureka Client로 구성된다. Eureka 클라이언트란? MSA를 구성하는 요소들 중 Eureka 서버에서 모니터링 및 관리를 원하는 요소를 Eureka 클라이언트 설정을 진행해서 등록할 수 있다. 🔊 ..

[MSA 구축하기] 3. Eureka 클라이언트 설정 (Service Discovery)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. Service Discovery 파트 2 Service Discovery의 역할을 간략하게 정리하자면, Service Discovery란? 마이크로서비스의 정보(위치 등)를 등록할 수 있다. 외부의 요청이나 서비스가 마이크로서비스의 정보를 검색하기 위해 사용된다. Spring Cloud에서는 Spring Cloud Netflix Eureka가 Service Discovery의 역할을 수행한다. Eureka는 Eureka Server와 Eureka Client로 구성된다. Eureka 클라이언트란? MSA를 구성하는 요소들 중 Eureka 서버에서 모니터링 및 관리를 원하는 요소를 Eureka 클라이언트 설정을 진행해서 등록할 수 있다. 🔊 ..

[MSA 구축하기] 2. Eureka 서버 구축 (Service Discovery)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. 🔊 이번에는, Service Discovery를 구축할 것이다. Service Discovery 파트 1 Service Discovery의 역할을 간략하게 정리하자면, Service Discovery란? 마이크로서비스의 정보(위치 등)를 등록할 수 있다. 외부의 요청이나 서비스가 마이크로서비스의 정보를 검색하기 위해 사용된다. Spring Cloud에서는 Spring Cloud Netflix Eureka가 Service Discovery의 역할을 수행한다. Eureka는 Eureka Server와 Eureka Client로 구성된다. Eureka 서버란? Eureka 서버는 단순하게 MSA를 구성하는 마이크로 서비스들을 모니터링하는 감시자 ..

[MSA] Service Discovery

Service Discovery 마이크로서비스 아키텍처(MSA)로 구성되어 있는 서비스들은 각자 다른 IP와 Port를 가지고 있다. 이러한 서로 다른 서비스들의 IP와 Port 정보에 대해서 저장하고 관리할 필요가 있는데 Service Discovery라고 한다. 즉, MSA에서는 Service의 IP와 Port가 일정하지 않고 지속적을 변화한다. 그렇기 때문에 Client에 Service의 정보를 수동으로 입력하는 것은 한계가 분명하다. Service Discovery란 이런 MSA의 상황에 적합하다. 서비스의 인스턴스가 생성 혹은 소멸되거나 신규 서비스들이 지속적으로 증가하는 등 서비스의 정보가 지속적으로 바뀔 수 있다. 디스커버리 서버는 이러한 가변적인 모든 서비스의 정보들은 각 서비스의 고유 I..

[MSA] 마이크로서비스 아키텍처를 구축하는 기술 (Spring Cloud)

MSA를 구축하기 위한 Spring Cloud 프레임워크의 핵심 라이브러리들의 개념을 알아보자. Spring Cloud Spring Cloud는 스프링 프레임워크에서 분산 시스템인 마이크로서비스 아키텍처(MSA)를 구축할 때 유용한 도구를 제공하는 프레임워크이다. Spring Cloud는 Spring Boot에서 제공하는 기능을 기반으로 분산 시스템에서 필요한 다양한 기능들을 추가로 제공한다. Netflix OSS (Open Source Software) Netflix에서 개발한 오픈소스 소프트웨어들의 집합으로 클라우드 네이티브 애플리케이션을 만들기 위한 다양한 도구들을 자체적으로 사용하면서 성능이 검증된 라이브러리로 제공한다. 이를 통해서 클라우드 네이티브 애플리케이션 개발과 운영을 보다 쉽고 간편하게..

[MSA] 마이크로서비스 아키텍처를 구축하는 기술

MSA를 구성하기 위해서는 어떤 기술을 알아야 할까? NAVER Cloud Platform : 네이버 클라우드 플랫폼의 [Talk&Talk] 누구나 쉽게 이해할 수 있는 마이크로서비스 아키텍처(MSA)를 한번 보고 오면 이해가 더 쉽다. 더 자세히 알고 싶다면 11번가 Spring Cloud 기반 MSA로의 전환 - 지난 1년간의 이야기를 추천한다. MSA를 구현하는 기반 기술 Spring Cloud와 Kubernetes를 활용하여 MSA를 구축할 수 있다. Spring Cloud는 Java 기반으로 개발되었으며, 서비스 디스커버리, 로드 밸런싱, 분산 구성 관리 등의 기능을 제공하여 마이크로서비스 간의 통신과 관리를 간편하게 한다. 또한 Spring Boot와 호환되어 있어서, Spring Boot로 ..

[MSA] 마이크로서비스 아키텍처란?

마이크로서비스 아키텍처(MSA)에 대해 알아보자. NAVER Cloud Platform : 네이버 클라우드 플랫폼의 [Talk&Talk] 누구나 쉽게 이해할 수 있는 마이크로서비스 아키텍처(MSA)를 한번 보고 오면 이해가 쉽다. 더 자세히 알고 싶다면, SK 플래닛의 11번가 Spring Cloud 기반 MSA로의 전환 - 지난 1년간의 이야기를 추천한다. 마이크로서비스 아키텍처 (MSA, MircroService Architecture) 마이크로서비스 아키텍처(MSA)는 소프트웨어 시스템을 작고 독립적인 서비스로 나누어 구성하는 디자인 패턴으로, 각 서비스는 특정 기능을 담당하며 서로 독립적으로 개발, 배포, 확장될 수 있다. 이러한 작은 서비스들이 모여 하나의 커다란 애플리케이션을 구성한다. MSA..

728x90
반응형