본문 바로가기

Spring11

Spring Cloud Gateway) Http Method 변경하는 Filter 만들기 이전글 에 이어서 이메일 인증과 같은 경우에 내부 API 에는 POST 요청으로 구성하고, 외부 Gateway 에서는 브라우저를 통해서 들어오기 때문에 GET 요청으로 받아야 하는 경우가 있습니다. (물론 내부 API 를 GET 으로 구성하고 by-pass 하는 경우도 있으나, 성격이 맞지 않는다고 판단해서 변경한 경우입니다.) 아래처럼 Filter 를 만들어 줍니다. 해당 Filter 의 변수(ChangeMethodConfing) 의 값을 통해서 어떤 HTTP Method 로 변경할지 결정합니다. package com.kotlinplayground.gateway.filter import org.springframework.cloud.gateway.filter.GatewayFilter import org.. 2024. 2. 16.
Spring Cloud Gateway) Query Param 값을 Header 로 주입하는 Filter 만들기 MSA 환경에서 SCG(Spring Cloud Gateway) 를 이용해서 서비스별 Endpoint 로 라우팅을 주로 사용합니다. 여기에 있어 특정 Endpoint 에 대해서 HTTP 요청을 조작하고 싶을때, AbstractGatewayFilterFactory 를 상속 받은 CustomFilter 를 등록해서 사용할 수 있습니다. 아래 예제는 이메일 인증을 할때, 브라우저를 통해서 소유한 서버를 통해서 요청오는 경우입니다. - Gateway 서버 : http://localhost:8000 - 회원 서버 : http://localhost:8080 브라우저에서 접근하기 때문에 HTTP Method 가 GET 으로 제한됩니다. 이때문에, 인증에 필요한 정보들을 Token 정보로 담아서 Query Param 으.. 2024. 2. 13.
JPA PK 를 SequentialUUID 로 사용하기 JPA 에서 SequentialUUID 를 사용하려면 우선 Utils 에 SequentialUUID 생성 하는 함수를 생성한다. const val SEQUENTIAL_UUID_SIZE = 32 fun creteSequentialUUID(): String { val uuidParts = Generators.timeBasedGenerator().generate().toString().split("-") return StringBuffer(SEQUENTIAL_UUID_SIZE).apply { append(uuidParts[2]) append(uuidParts[1]) append(uuidParts[0]) append(uuidParts[3]) append(uuidParts[4]) }.toString() } 환경 .. 2023. 12. 5.
spring .env 에서 yaml 에 주입받기 spring 을 사용하면서 주로 application.yaml 파일에 DB 정보나 JWT ScretKey 또는 AWS 계정 관련 정보들을 기입하시는분들이 계십니다. 이런 경우에 소스가 탈취 될 경우 아주 곤란한 상황이 야기될 수 있습니다. 그래서 소스를 빌드 후 배포당시에 .env 파일을 주입받아서 사용할 수 있는 방식을 많이 사용합니다. 작업 완료 후 아래처럼 변경해서 사용할 수 있습니다. before spring: config: activate: on-profile: local datasource: driver-class-name: org.postgresql.Driver url: jdbc:postgresql://127.0.0.1:5432/mydb username: root password: passw.. 2023. 9. 14.
Spring JPA 예약어 컬럼 이슈 SpringJPA_ReservedWords_Issue (DB 예약어 컬럼 이슈.) 현재 버전 : Spring Boot 2.1.7.RELEASE / Maria DB 10.2 (MySQL 5.6) 테이블 모델링을 하다보면 데이터베이스에서 이미 사용하는 예약어를 컬럼명으로 사용할 때가 있다. 해당 컬럼명을 그대로 SpringJPA 에서 사용하면 Query 실행 중에 Syntax Error 가 발생하게 된다. DB 예약어 목록 MariaDB Doc : https://mariadb.com/kb/en/reserved-words/ 해당 Issue 해결방법 Entity 정의 할 때 컬렁 명을 추가한다. AS-IS @Entity @Getter @NoArgsConstructor(access = AccessLevel.PRO.. 2023. 2. 6.
OpenJDK_VM_Warning 제거하기 OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. 프로젝트 환경 Java17 (Amazon Corretto JDK version 17) Spring boot 2.7.0 IntelliJ 2021.3.2 하위 사진 처럼 Spring Boot 프로젝트 실행시 빨간색으로 경고가 뜨는경우가 있다 (불편) Intellij 에서 SpringBoot 실행시 Option 정보가 JDK13 이후로 제거될 가능성이 있다고 하는 경고창. 해결 방법 Edit configurations (프로젝트 설정 창) 클릭 해당 창에서.. 2023. 2. 6.