▼ Backend
-
Spring Cloud MSA | 마이크로서비스 아키텍처(microservice architecture, MSA)▼ Backend/└ MSA, Spring Cloud 2021. 12. 7. 14:11
▶ 마이크로 서비스 아키텍처(microservice architecture, MSA) 마이크로 서비스는 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식이다. 마이크로 서비스를 전통적인 모놀리식(monolithic) 접근 방식과 구별 짓는 기준은 애플리케이션을 핵심 기능으로 세분화하는 것이다. 각 기능을 서비스라고 부르며 독립적으로 구축하고 배포할 수 있다. 이는 개별 서비스가 다른 서비스에 부정적 영향을 주지 않으면서 작동 (또는 장애가 발생)할 수 있음을 의미한다. 이러한 마이크로서비스 아키텍처 기반의 서비스를 구축해보면서 그 과정 속에서 생겨난 기능들을 사용해보며 이해하는 것에 목적을 두고 작성했다. Config Server - Config-Server 구축하기 구성 데이터를 담당하고 각각의 마이..
-
Spring Cloud MSA - 6 | Spring Cloud Gateway, Load balancing 구현하기▼ Backend/└ MSA, Spring Cloud 2021. 12. 7. 11:18
Spring Cloud MSA | 마이크로 서비스 아키텍처 (microservice architecture, MSA) ▶ Spring Cloud Gateway (SCG) 마이크로 서비스 앞단에 위치하며 요청들을 라우팅 설정에 따라서 클라이언트 대신에 요청하고 응답하면 다시 사용자에게 전달해주는 Proxy 역할을 한다. 즉, 모든 요청을 받아 라우팅 설정에 따라 요청한 서비스로 요청, 응답하는 입구 역할을 한다. 📌 특징 Spring Framework 5, Project Reactor 및 Spring Boot 2.0을 기반으로 구축 모든 요청 속성에서 경로를 일치시킬 수 있다. 조건자와 필터는 경로에 따라 다르다. 회로 차단기 통합 Spring Cloud Discovery, Client 통합 요청 속도 제..
-
Spring Cloud MSA - 5 | Circuit Breaker, Resilience4J 구현하기▼ Backend/└ MSA, Spring Cloud 2021. 12. 3. 17:59
▶ Circuit Breaker란 어떤 서비스가 과부하 또는 장애가 발생하였을 때 그 서비스를 호출하는 다른 서비스들의 연쇄적인 장애를 막기 위해 미리 차단하여 전체 서비스에 영향이 없게 방지하기 위한 기능이다. 대표적인 Circuit Breaker 중 하나인 Netflix Hystrix를 사용하려고 했으나 Deprecated 되어 있는 걸 확인했다. 스프링 블로그를 찾아보니 아래의 Netflix 프로젝트들이 Entering Maintenance Mode (Spring Cloud 팀이 더 이상 모듈에 새로운 기능을 추가하지 않는다는 것을 의미) 된다는 내용이 있었다. 삭제가 되어 사용이 불가능한 것은 아니지만, 새로운 프로젝트 환경에서는 Resilience4J를 사용하는 것을 대안으로 하고 있다고 한다...
-
Spring Cloud MSA - 4 | Eureka를 이용한 서비스 관리-2 (Eureka Client)▼ Backend/└ MSA, Spring Cloud 2021. 11. 27. 17:58
Spring Cloud MSA - 3 | Eureka를 이용한 서비스 관리 - 1 (Eureka Server 구축) Spring Cloud MSA - 3 | Eureka를 이용한 서비스 관리-1 (Eureka Server 구축) ▶ Spring Cloud - Netflix Eureka Server 로드 밸런싱과 Middle-tier server(Client와 Application server 사이) 장애 시 장애 조치 처리를 목적으로 한 REST 기반 서비스다. MSA(마이크로 서비스 아키텍처, Micr.. kitty-geno.tistory.com ▶ Spring Cloud - Netflix Eureka Client Service Discovery는 마이크로 서비스 기반 아키텍처의 핵심 원칙 중 하나이다..
-
Spring Cloud MSA - 3 | Eureka를 이용한 서비스 관리-1 (Eureka Server 구축)▼ Backend/└ MSA, Spring Cloud 2021. 11. 26. 17:57
▶ Spring Cloud - Netflix Eureka Server MSA(마이크로 서비스 아키텍처, Micro Service Architecture) 구조에서 서비스들은 동적으로 확장, 축소되는데 이때마다 인스턴스를 관리하기란 쉬운 일이 아니다. 따라서 인스턴스의 상태를 동적으로 관리하는 서버가 필요했는데 이를 서비스 디스커버리(Service Discovery) 서버로 칭하며 넷플릭스는 Eureka라는 이름으로 공개했다. 로드 밸런싱과 Middle-tier server(Client와 Application server 사이) 장애 시 장애 조치 처리를 목적으로 한 REST 기반 서비스 각각의 서비스 인스턴스들이 동적으로 확장, 축소되더라도 인스턴스의 상태를 하나의 서비스로 관리할 수 있는 서비스 이 포..
-
Spring Boot | RESTful API 호출시 Cross Origin Requests Sharing (CORS)▼ Backend/스프링 (Spring) 2021. 11. 19. 14:50
▶ Cross Origin Requests Sharing (CORS) 개발 중 프론트단에서 RESTful API 호출시 교차 출처 요청 차단, 동일 출처 정책으로 인해 http://localhost:port/~ 에 있는 원격 리소스를 차단하였습니다. (원인: ‘Access-Control-Allow-Origin’ CORS 헤더가 없음) 발생. CORS는 서로 다른 출처(Origin) 간에 리소스를 전달하는 방식을 제어하는 체제이다. 보안 상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한하기 때문에 발생한다. CORS 요청이 가능하려면 서버에서 특정 헤더인 Access-Control-Allow-Origin과 함께 응답할 필요가 있다. 📌스프링에서는 아래와 같은 방법으로 CROS를 ..
-
Spring Boot | 로그인 구현하기 (Spring Security)▼ Backend/스프링 (Spring) 2021. 11. 17. 16:04
[스프링 부트 (Spring Boot)/게시판 만들기] - 1 | 스프링 부트 프로젝트 만들기 위의 과정을 통해 생성된 프로젝트입니다. 구성환경 SpringBoot, Gradle, Thymeleaf, Jpa(JPQL), Jar, MariaDB 이번 장에서는 스프링 시큐리티(Spring Security)를 이용한 로그인 처리, 로그아웃, 중복 로그인 처리, 로그인 정보 유지, 예외처리 등을 적용해본다. 회원 테이블 생성하기 로그인 처리 테스트를 하기 위한 기본적인 컬럼만 생성하였으니 필요시 추가하여 사용한다. CREATE TABLE `member` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '시퀀스', `email` VARCHAR(200) NOT NULL CO..
-
Spring Cloud MSA - 2 | 마이크로서비스 Config Client 구축하기▼ Backend/└ MSA, Spring Cloud 2021. 11. 12. 16:57
▶ Spring Cloud Config Client Config-Server를 Fetching 하여 환경 구성 데이터를 읽어오는 Config-Client를 설정해본다. 고유 목적의 마이크로 서비스는 동일한 Config-Server를 설정함으로써 공통적인 환경을 가져오거나 애플리케이션에 맞게 가져올 수 있다. 그리고 actuator의 refresh를 통해 변경된 설정 값도 서버의 재시작 없이 적용이 가능하다. build.gradle plugins { id 'org.springframework.boot' version '2.5.6' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.venh.msa' ve..