Spring Framework
-
Spring 단일 Endpoint에 여러 요청 처리하기Spring Framework 2024. 2. 13. 00:04
문제 상황 /single-end-point라는 endpoint에 DtoA, DtoB 등의 서로 다른 request가 들어오는 상황에서는 어떻게 코드를 작성해야 할까요? 문제를 해결하기 위해 다양한 방법으로 접근을 시도해 보고 장, 단점을 비교해보고자 합니다. Input Request data class DtoA( val col1: String, val col2: String, val type: String, ) data class DtoB( val col3: String, val col4: String, val col5: String, val type: String, ) 정의되어 있는 Request는 DtoA, DtoB라고 가정하겠습니다. 해당 Request들은 type으로 어떤 reqeust인지 구분할..
-
Spring Boot 2.x 프로젝트 만들기Spring Framework 2024. 2. 7. 00:01
개요 Spring 프로젝트를 만들 때는 항상 spring Initializr를 활용하곤 했습니다. 하지만 UI로는 2.x 버전의 프로젝트를 만들고 싶어도 만들 수 없습니다. 이번글에서는 2가지에 대한 주제를 다룹니다. Spring Boot 2.x 프로젝트 만들기 Spring Boot의 과거 버전 문서 보는 방법 Spring Boot 3.x 프로젝트 만들기 현재시점을 기준으로 Spring 2.x 프로젝트는 UI로 만들 수 없습니다. 우선 Spring Boot의 3.x.x 버전으로 생성한 후 버전을 2.x.x로 낮추는 다운그레이드를 수행하고자 합니다. Java 17 버전, Dependencies는 Spring Web를 선택하였고 Spring Boot의 버전은 3.1.8을 선택하여 프로젝트를 생성하였습니다. ..
-
Spring Cloud Config 오픈 소스 기여(컨트리뷰션)하기Spring Framework/Spring Cloud Config 2024. 2. 3. 00:01
개요 이전 글에서 "Spring Cloud Config Client override"라는 글을 작성하면서 Spring Cloud Config 문서를 읽어가면서 작업을 수행하고 있었습니다. 이때 문서의 내용에 다소 혼란스러운 부분이 있다고 생각하였고 이슈를 등록하였고 최종적으로 그 부분이 반영된 것에 대한 내용을 공유하고자 합니다. 이 글을 읽으면 얻을 수 있는 것 나도 오픈소스에 기여할 수 있다는 자신감(이 정도는 나도?) 오픈 소스 기여(컨트리뷰션)이란? '오픈소스에 기여한 경험이 있으면 우대'라는 문구를 채용 공고에서 종종 볼 수 있습니다. 오픈 소스는 무엇을 의미할까요? 오픈소스는 개발의 핵심 소스 코드를 공개함으로써 누구나 코드를 접근, 사용할 수 있도록 하는 소프트웨어입니다. Backend에서 ..
-
Spring Cloud Config Client overrideSpring Framework/Spring Cloud Config 2024. 2. 2. 00:01
개요 이전 글인 "Spring Cloud Config Server에 문제가 생기면 어떻게 될까?" 에서는 Client application.yml과 Config Server의 설정값이 충돌 나면 Config Server의 값이 적용되는 것을 확인해 보았습니다. 이때 Client application.yml이 우선순위를 가지게 하려면 어떻게 해야 할까요? Client application.yml 이 우선순위를 가지게 하고 싶은데 어떻게 해야할까요? 기본적으로 spring.config.import: optional:~ 을 사용할 경우에는 외부 설정값이 최우선으로 적용됩니다. spring: config: import: optional:configserver:http://localhost:8088 Git Rep..
-
Spring Cloud Config Server에 문제가 생기면 어떻게 될까?Spring Framework/Spring Cloud Config 2024. 2. 1. 00:01
개요 이전글에서는 "Spring Cloud Config 튜토리얼"을 수행해보면서 Server와 Client 구성을 통해 설정을 동적으로 적용해 보았습니다. 이때 Spring Cloud Config Server가 가질 수 있는 2가지 상황에 대해서 알아보고자 합니다. Config Client를 실행하려고 할 때 Config Server에 문제가 있다면 어떻게 될까? Config Client가 실행중일 때 Config Server에 문제가 생기면 어떻게 될까? Config Client를 실행하려고 할 때 Config Server에 문제가 있다면 어떻게 될까? 만약 Client를 실행하려고 할 때 Config Server가 down 되어 있는 경우에는 어떻게 될까요? 예상으로는 정상적으로 실행이 되지 않을 것..
-
Spring Cloud Config 튜토리얼Spring Framework/Spring Cloud Config 2024. 1. 31. 00:01
개요 "Spring Cloud Config란?" 글에 이어서 Spring Cloud Config 튜토리얼을 통하여 직접 Spring Cloud Config를 제공하는 Server와 Client를 구축하고 설정을 받아보고자 합니다. 모든 코드는 github에서 확인할 수 있습니다. "spring-cloud-config-server" "spring-cloud-config-cloud" "설정.yml" Spring Cloud Config Server 구성하기 dependencies { implementation(enforcedPlatform("org.springframework.cloud:spring-cloud-dependencies:2022.0.4")) implementation("org.springframe..
-
Spring Cloud Config란?Spring Framework/Spring Cloud Config 2024. 1. 11. 00:01
개요 Spring Cloud Config라는 용어를 접하게 되고 어떤 것을 의미하는지 개념을 잡기 위해 정리해보고자 합니다. Spring Cloud Config란? 이름에서 추론할 수 있듯이 Config(설정)에 관한 역할을 수행합니다. Spring Cloud Config는 여러 서비스들의 설정 정보를 중앙으로 관리하기 용이하도록 도와줍니다. 기본적으로 설정 정보 저장을 위해 git을 사용하도록 되어있습니다. 예를 들면 git 이외에도 AWS S3, Redis, Valut 등 다양한 설정 저장소를 활용할 수 있습니다. Spring Cloud Config 핵심 개념 설정 저장소 - git과 같이 설정 정보를 저장하기 위한 저장소 Config Server - 설정을 제공하는 서버 Config Client -..
-
Mono, Flux 이해하기Spring Framework/WebFlux 2024. 1. 5. 00:01
개요 Mono save(S entity); Flux saveAll(Iterable entities); fun saveAll(entities: Iterable): Flow ReactiveCrudRepository, CoroutineCrudRepository를 보다 보면 반환객체에 Mono, Flux, Flow등이 등장합니다. 처음 보는 개념인 Mono, Flux에 대해 알아보는 시간을 가지려고 합니다. Flow는 다음시간에.. Mono와 Flux는 무엇인가? public abstract class Mono implements CorePublisher{...} public abstract class Flux implements CorePublisher{...} public interface CorePubli..