전체 글 9

스프링 이벤트

이 글은 https://www.baeldung.com/spring-events 를 번역한 글입니다. 1. 개요 이 튜토리얼에서는 스프링에서 어떻게 이벤트를 사용하는지에 대해 다루고자 한다. 이벤트는 프레임워크에서 가장 간과되는 기능 중 하나이면서, 동시에 가장 유용한 기능 중 하나이다. 그리고 이벤트 발행은 다른 스프링의 기능들처럼 ApplicationContext로부터 제공되는 특징 중 하나이다. 이벤트 사용을 위해서는 기본적으로 아래의 내용을 따라야 한다. Spring 4.2 이전 버전일 경우, 이벤트 클래스는 ApplicationEvent 를 상속받아야 한다. 4.2 버전부터는 더 이상 상속받을 필요가 없다. publisher (이벤트 발행자)는 ApplicationEventPublisher 객체를..

@Async 로 스프링 비동기 처리

해당 글은 https://www.baeldung.com/spring-async 를 번역하여 제작하였습니다. 1. Overview 이 튜토리얼에서는 스프링이 비동기 실행을 어떻게 지원하는지를 @Async 어노테이션과 함께 알아볼 것이다. 간단히 말해, 빈에 @Async 어노테이션을 달기만 하면, 해당 어노테이션이 다른 스레드에서 실행될 수 있도록 해줄 것이다. 즉, 함수를 호출하는 상황에서 호출하는 쪽이 호출되는 쪽을 기다릴 필요가 없어진다. 한가지 스프링의 흥미로운 점은 프레임워크 단에서의 이벤트 지원이 필요시 비동기 처리 또한 지원한다는 것이다. 이후 읽어볼 만한 글: Spring Events Spring Security Context Propagation with @Async Servlet 3 Asy..

스프링 Task Scheduler 가이드

본 글은 해당 링크의 문서를 번역한 글입니다. https://www.baeldung.com/spring-task-scheduler Task Scheduler 1. Overview 이 글에서, 우리는 스프링의 Task 스케줄링 동작방식에 대해 이야기해보려 한다. 이를 테면, TaskScheduler 및 서로 다른 trigger와 함께 구현된 이전의 구현들. 만약 Spring에서의 scheduling 에 대해 더 읽어보고 싶다면, @Async and @Scheduled 글도 참고하길 바란다. TaskScheduler는 future에서 돌릴 수 있는 여러 메소드와 함께 Spring 3.0부터 도입되었다. 이는 또한 스케줄에 등록된 task를 취소하거나 끝났는지 여부 등을 확인하는데 사용될 수 있는 Schedu..

Test Double

테스트 더블이란. 테스트의 대상이 의존하는 컴포넌트를 원하는 형태로 동작하는 것처럼 테스트할 수 있도록 하는 방법 액션영화에서 위험한 촬영이 있을 때 스턴트맨이 실제 배우를 대신해 촬영을 진행하곤 한다. 이런 스턴트맨을 외국에서는 '스턴트 더블 (Stunt Double)' 이라 부르는데, 테스트 더블은 테스팅 과정을 촬영에 비유했을 때 비로소 그 의미를 쉽게 유추해볼 수 있다. 테스트 더블(스턴트 더블)이란 실제 객체(배우)로 테스트(촬영)을 진행하기 어려운 경우 대신 진행해주는 방법 및 구성하는 요소들로 정의할 수 있다. 여기서 테스트를 진행하기 어려운 상황이 무엇일까? 단적으로 API를 호출해 데이터를 받아와서 로직을 수행하는 경우, 테스트는 네트워크 연결, 호출하고자 하는 API를 제공하는 서버 상..

Backend/Test 2022.04.24