[Spring] Spring Cloud Gateway로 구현하는 MSA 아키텍처
·
개발/Spring Boot
Spring Cloud Gateway로 구현하는 MSA 아키텍처모든 코드는 Github에 있습니다.Spring Cloud Gateway는 마이크로서비스 아키텍처에서 API Gateway 역할을 수행하는 프로젝트입니다. 이 문서에서는 Spring Cloud Gateway의 주요 기능과 설정 방법에 대해 설명합니다.[이미지 출처 : https://www.connecting-software.com/blog/what-is-an-api-gateway-how-it-can-actually-deliver-practical-results/]주요 기능역방향 프록시: 클라이언트 요청을 적절한 마이크로서비스로 라우팅합니다.필터: 요청 및 응답을 수정할 수 있는 다양한 필터를 제공합니다.로드 밸런싱: 여러 인스턴스 간에 트래픽..
[Spring] Spring Cloud Config 퀵 스타트
·
개발/Spring Boot
Spring Cloud Config모든 코드는 깃허브에서 볼수 있습니다.Spring Cloud Config Server는 분산 시스템에서 설정 파일을 중앙에서 관리하고 애플리케이션이 시작될 때 설정을 동적으로 로드할 수 있도록 도와주는 서버입니다. 이를 통해 애플리케이션의 설정을 일관되게 관리하고, 설정 변경 시 애플리케이션을 재배포하지 않고도 설정을 업데이트할 수 있습니다.주요 기능중앙 집중식 설정 관리: 모든 애플리케이션의 설정 파일을 중앙에서 관리합니다.환경별 설정 지원: 개발, 테스트, 운영 등 다양한 환경에 맞는 설정을 지원합니다.버전 관리: Git과 같은 버전 관리 시스템을 통해 설정 파일의 변경 이력을 관리할 수 있습니다.동적 설정 로드: 애플리케이션이 실행 중에도 설정을 동적으로 로드할 수..
[SpringBoot] Propagation.REQUIRES_NEW에서 겪은 이슈
·
개발/Spring Boot
Propagation.REQUIRES_NEW에서 겪은 이슈모든 코드는 Github에 저장되어 있습니다.이슈Propagation.REQUIRES_NEW 써도 따로 커밋이 안되는 현상1. 배경지식Propagation이란 사전적 의미로 전파, 번식등의 의미를 가지고 있다.Transaction Propagation (트랜잭션의 전파 속성)트랜잭션의 전파속성이란 이미 트랜잭션이 진행중일 때 추가 트랜잭션 진행을 어떻게 할지 결정하는 것이다.속성에 따라서 기존 트랜잭션에 참여할 수도 있고 새로운 트랜잭션을 만들수도 있다.물리 트랜잭션과 논리 트랜잭션다른 블로그 글들을 보면 물리 트랜잭션, 논리 트랜잭션 이라고 하는데 추상적으로는 이해가 되지만 콕 찝어서 설명하라고 하면 못할것 같아서 따로 찾아보고 정리하려고 한다...
[Spring Boot] JsonDeserialize 활용해서 요청 Body 커스텀하기
·
개발/Spring Boot
SpringBoot JsonSerialize 활용해서 요청 Body 커스텀하기모든 코드는 Github에 저장되어 있습니다.목차1. Spring boot에서 JSON 요청의 Body값을 처리하는 방법(1) RequestBody - Map@PostMapping("/mapRequest")public Map mapRequest(@RequestBody Map mapRequest) { String input1 = mapRequest.get("input1"); String input2 = mapRequest.get("input2"); return mapRequest;}Test Code@Testvoid testMapRequest() throws Exception { String requestBod..
[Spring Boot] Spring Boot WebClient
·
개발/Spring Boot
Spring Boot WebClient 모든 소스는 github에 있습니다. WebClient vs RestTemplate 스프링에서 http 요청을 위해 WebClient 와 RestTemplate이 있다. 인터넷에 RestTemplate이 Deprecated 된다는 말이 있지만 이는 사실이 아니다. It would be more helpful, and also accurate, to explain that the RestTemplate is in maintenance mode rather than mention a potential deprecation in the future. Deprecated 관련 이슈 java doc 을 확인해보면 유지모드로 들어간다고 한다. RestTemplate 동작 원리..
[Spring Boot] Spring Security - OAuth2 (Google login)
·
개발/Spring Boot
Spring Security - Oauth 2.0 모든 소스는 깃허브에 있습니다. https://github.com/TeTedo/blog-code/tree/main/spring-security-oauth Google login 1. 구글 클라우드 플랫폼 주소으로 이동해서 프로젝트 만들기 2. 완성된 프로젝트 생성 후 API 및 서비스 클릭 3. OAuth 클라이언트 ID 만들기 4. OAuth는 리다이렉션 URI를 설정하여 로그인 성공시 보여줄 화면을 지정할 수 있다. 5. application-oatuh.yml 파일 생성 spring: security: oauth2: client: registration: google: client-id: ${GOOGLE_CLIENT_ID} client-secret: ..