somoly.tistory.com
profiles 를 이용한 aws iam 과 secret key 기반 인증 설정
SpringBoot 2023. 6. 26. 22:55

로컬 환경에서는 access key 와 secret key 를 발급 받아 사용을하고, ec2 에서는 iam 인증 설정을 통해 aws 자원에 접근하는 전략을 사용하고 있습니다. 따라서 환경별로 인증방식을 달리 하기 위해 아래와 같이 설정을 사용하고 있습니다. // application.properties // app.aws.auth.access-key-id=iam // app.aws.auth.secret-access-key=iam @ConfigurationProperties(prefix = "app.aws.auth") data class AwsCredentialsProperties( val accessKeyId: String = "iam", val secretAccessKey: String = "iam",..

Kotlin Simple Version Compare
SpringBoot 2023. 3. 21. 15:36

Kotlin value class 및 operator override 를 이용한 버전 비교 전제조건 버전값은 콤마(.) 로 구분하며 숫자만 이용할 수 있다. operator 의 경우 >, =, = VersionNumber("1.0.0")).isTrue assertThat(VersionNumber("1.0.0") VersionNumber("1.0.0")).isTrue } }

Spring 6 의 HTTP Interface
SpringBoot 2023. 3. 14. 18:11

소개 Spring 6과 Spring Boot 3에서는 Java 인터페이스를 사용하여 선언적 HTTP 서비스를 정의할 수 있습니다. 이 접근 방식은 Feign과 같은 널리 사용되는 HTTP 클라이언트 라이브러리에서 영감을 얻었으며, Spring Data에서 리포지토리를 정의하는 방식과 유사합니다. 여기에서는 먼저 HTTP 인터페이스를 정의하는 방법을 살펴보겠습니다. 그런 다음 사용 가능한 메서드 어노테이션과 지원되는 메서드 매개변수 및 반환값을 확인합니다. 다음으로, 선언된 HTTP Exchange를 수행하는 프록시 클라이언트인 실제 HTTP 인터페이스 인스턴스를 생성하는 방법을 살펴보겠습니다. 마지막으로 선언적 HTTP 인터페이스와 해당 프록시 클라이언트의 예외 처리 및 테스트를 수행하는 방법을 확인합니..

Retrying Feign Calls
SpringBoot 2023. 3. 14. 17:31

Retrying Feign Calls 소개 - REST 엔드포인트를 통해 외부 서비스를 호출하는 것은 Feign과 같은 라이브러리에서 매우 간단하게 작성할 수 있습니다. - 그러나 이러한 호출 중에 많은 문제가 발생할 수 있습니다. 이러한 문제의 대부분은 무작위적이거나 일시적인 것입니다. - 여기에서는 실패한 호출을 다시 시도하고 보다 탄력적인 REST 클라이언트를 만드는 방법에 대해 알아봅니다. Spring Cloud OpenFeign 환경설정 dependencies { implementation("org.springframework.boot:spring-boot-starter") implementation("org.springframework.cloud:spring-cloud-starter-openf..

RedisTemplate 과 Json Serializer 설정
SpringBoot 2019. 7. 9. 16:28

RedisTemplate 을 사용하여 json 으로 통신하기 위해 커스터마이징을 해 보도록 하겠습니다. pom.xml 디펜던시 설정 org.springframework.boot spring-boot-starter-data-redis org.apache.commons commons-pool2 com.fasterxml.jackson.core jackson-databind com.fasterxml.jackson.datatype jackson-datatype-jsr310 com.fasterxml.jackson.datatype jackson-datatype-jdk8 org.projectlombok lombok true org.springframework.boot spring-boot-starter-test tes..

article thumbnail
MongoDB _class 필드 제거하기
SpringBoot 2019. 7. 9. 10:18

MongoDB 사용시, SpringBoot 자동설정을 이용할 경우 아래와 같이 _class 에 Entity Class 의 package 정보가 함께 저장됩니다. 이 부분을 제거하기 위해서는 DefaultMongoTypeMapper 설정을 변경하면 됩니다. { "_id" : NumberLong(112), "name" : "마샤", "tags" : [ "여자캐릭터", "흑마법사" ], "_class" : "com.company.model.entity.Actor" } 자동설정 소스코드 org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration 참고 @Bean @ConditionalOnMissingBean({MongoConverter..

article thumbnail
restful json request response 패킷 로깅 필터
SpringBoot 2019. 7. 4. 14:05

Json 통신 request 및 response 패킷 로깅을 위한 필터를 작성해 보았습니다. @Slf4j public class HttpLoggingFilter extends OncePerRequestFilter implements Filter { private static final List VISIBLE_TYPES = Arrays.asList( MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON_UTF8, ); @Data private static class HttpLogData { private String method; private String uri; private Map headers = new HashMap(); private String ra..

article thumbnail
404 NoHandlerFoundException 설정
SpringBoot 2019. 7. 4. 14:02

404 에러를 사용자가 커스텀 하게 구성하여 사용하고자 할 경우 아래와 같이 설정하여 사용할 수 있습니다. 테스트 환경 : JDK 11 이상, SpringBoot 2.5.x 없는 페이지 테스트 URL : http://localhost:8080/hello pom.xml 에 필요한 패키지 org.springframework.boot spring-boot-starter-web Springboot404Application.java package rxcats.springboot404; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBo..