본문 바로가기

spring8

Spring - @Retryable 을 이용한 재수행 로직 처리하기 들어가며 서비스를 개발하거나 어떤 로직을 구현할 때 실패에 따른 재수행 로직을 추가하고 싶을 때가 있다. 따로 코드로 구현할 수 있겠지만 스프링을 사용한다면 스프링에서 제공하는 @Retryable 어노테이션을 통해서 간편하게 재수행 로직을 구현할 수 있다. Spring - @Retryable 을 이용한 재수행 로직 처리하기 @Retryable 사용 방법 먼저 @Retryable을 사용하기 위해서는 다음 두가지 작업을 해줘야 한다. 1. 의존성 추가 implementation("org.springframework.retry:spring-retry") implementation("org.springframework:spring-aspects") 2. @EnableRetry 어노테이션 추가 다음 두가지 작업이.. 2023. 4. 2.
Spring - @ConfigurationProperties 사용방법 정리 및 @ConstructorBinding @ConfigurationProperties은 *.properties or *.yml 파일에 있는 property를 자바 클래스에 값을 가져와 사용할 수 있게 해주는 어노테이션이다. @Value를 통해서도 값을 가지고 올 수 있지만 클래스 파일로 관리할 수 있다는 점에서 차이가 있다. 스프링부트 2.2 버전 전 후로 사용방법에 차이가 있어 내용을 정리함과 동시에 @ConstructorBinding 어노테이션에 대해서도 정리한다. Spring - @ConfigurationProperties 사용방법 정리 및 @ConstructorBinding @ConfigurationProperties 스프링부트 2.2 버전 이전 사용방법 기존에는 @ConfigurationProperties 사용하기 위해서는 @Confi.. 2023. 2. 25.
SpringBoot - LogBack 관련 개념 및 설정 방법 (2) 지난 시간에는 개념에 대해서 정리하였고 이번 시간에는 기본으로 제공되는 logback을 확장하여 사용하는 방법에 대해서 정리한다. SpringBoot - LogBack 관련 개념 및 설정 방법 (2) 설정 방법 먼저 가장 기본이 될 default log 설정 xml 파일을 생성해준다. 여기서 보이는 org/springframework/boot/logging/logback/base.xml 경로를 따라가보면 스프링부트에서 기본으로 제공하는 logback 관련 설정들을 확인할 수 있다. 다음과 같이 xml 파일이 4가지가 존재하는데 하나씩 살펴보면 base.xml 은 기본 logback 설정 파일이다. console-appender.xml 은 말 그대로 콘솔에 대한 appender 설정 파일이다. ${CONS.. 2023. 1. 29.
스프링 트랜잭션 @Transactional(readOnly=true) @Transactional 옵션에는 여러가지 옵션 설정이 있지만 오늘은 그 중에서 readOnly 옵션에 대해서 정리하려고 한다. 옵션에서도 알 수 있듯이 읽기 전용이라는 것을 알 수 있다. 그렇다면 이런 의문점이 들 수 있다. 어짜피 조회만 하는 곳에 @Transactional 어노테이션을 붙일 필요가 있을까? 라는 의문점이다. 결론적으로는 안붙인다고 문제가 될 것은 없지만 붙이게 된다면 여러가지 이점을 주기 때문에 붙이는 것이 좋다. 그럼 @Transactional(readOnly=true) 설정에 대해서 알아보자. 스프링 트랜잭션 @Transactional(readOnly=true) Transaction? 먼저 트랜잭션이란 데이터베이스의 상태를 변경하고자 할 때 한 번에 수행되어야 하는 연산들을 의.. 2022. 12. 9.
@WebMvcTest를 이용한 REST API 테스트 중 맞이한 에러 해결기 (2) 이 글은 @WebMvcTest를 이용한 테스트 과정 중 두번째로 맞히한 에러 상황과 해결 방법에 대해 정리한 글이다. 첫번째 에러 상황이 궁금하다면 아래 글에 정리를 해놓았다. 첫번째 에러 상황 @WebMvcTest를 이용한 REST API 테스트 중 맞이한 에러 해결기 (1) @WebMvcTest를 사용하면 Controller만 단위 테스트가 가능하다. @SpringBootTest를 사용하면 통합테스트가 되기 때문에 Controller만 단위 테스트를 하기 위해서는 @WebMvcTest를 이용하면 된다. @SpringBootTest를 사 sjparkk-dev1og.tistory.com @WebMvcTest를 이용한 REST API 테스트 중 맞이한 에러 해결기 (2) 에러 상황 에러 로그의 일부분은 복.. 2022. 12. 7.
Spring - Event Publisher Listener (1) 정의 스프링에서 제공하는 이벤트 메커니즘을 사용하면 의존성이 강한 로직들의 레이어를 분리가 가능하다. 이렇게 되면 느슨한 결합 형태로 만들 수 있다. 예를 들어 A 서비스 로직에서 B 서비스 로직을 실행해야하는 경우 이벤트 발행을 통해 분리할 수 있는 것이다. 이때 사용하는 이벤트에 관련한 정보를 정리한다. Spring - Event Publisher Listener (1) 정의 스프링에서의 일반적 상황과 이벤트를 이용한 상황 스프링에서는 내부에 이벤트라는 메커니즘을 가지고 있다. 여기서 말하는 이벤트란 스프링의 빈과 빈 사이에 데이터를 전달하는 방법 중 하나를 의미한다. 스프링에서는 일반적으로 데이터 전달 시 DI를 통해서 이루어진다. A 클래스에서 B 클래스에 대한 의존성을 주입을 받아 A클래스에서 B에 .. 2022. 10. 19.