전체 글

전체 글

    [Spring] Async

    참조 : https://www.baeldung.com/spring-async 1. 개요 Spring에서 제공하는 비동기 작업과 애노테이션 @Async에 대해서 알아본다. @Async를 Bean의 메서드에 선언하는 것만으로 해당 메서드는 별도의 쓰레드에서 수행된다. 즉, @Async가 선언된 메서드를 호출하는 객체는 메서드가 끝날 때까지 기다리지 않는다. 2. Async 옵션 켜기 @Configuration과 @EnableAsync를 사용하여 Async 옵션을 켤 수 있다. @Configuration @EnableAsync public class SpringAsyncConfig { // ... } @EnableAsync의 속성 부여를 통해 다양한 설정이 가능하다. annotation : @EnableAsy..

    [Java] Collection의 of 사용 시 주의할 점

    [Java] Collection의 of 사용 시 주의할 점

    Java 9부터 사용할 수 있는 of를 통해 Map, Set, List 등의 Java Collection을 손쉽게 초기화할 수 있습니다. 1. value에 null이 들어가면 안된다. 다만, Map.of(), Set.of(), List.of() 등을 사용할 때, value에 null을 넣게 되면 NullPointerException이 발생합니다. public class CollectionOfTest { @Test(expected = NullPointerException.class) public void mapOfTest() { Map map = Map.of("key1", null); // NullPointerException 발생 } @Test(expected = NullPointerException.c..

    [Design Pattern] 프록시 (Proxy)

    출처 : https://www.inflearn.com/course/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4 프록시 (Proxy) 특정 객체에 대한 접근을 제어하거나 기능을 추가할 수 있는 패턴. 어디에 쓸 수 있는가 해당 객체의 접근 제어 객체에 대한 보안 - 특정 유저의 권한 유무를 확인하여, 특정 객체에 접근 가능/불가능을 판별한다. 로깅, 캐싱 생성하는 데 많은 리소스를 요구하는 객체를 실제로 쓰일 때 생성하는 초기화 지연 방식으로 리소스를 아낀다. 왜 쓰는가 기존 코드를 전혀 건드리지 않고 특정 기능을 추가 기존 코드를 건드리지 못할 때 특정 기능을 추가 장점 기존 코드를 변경하지 않고 새로운 기능을 추가할 수 있다. 기존 코드가 해야하는 일만 유지할 수..

    [Spring] 트랜잭션

    참조 : https://www.baeldung.com/transaction-configuration-with-jpa-and-spring 1. 개요 본 문서는 Spring 트랜잭션을 사용하는 방법을 소개합니다. JPA 및 영속성 전략에 대해 더욱 더 깊이 있는 내용을 원하면, 이 문서를 참조하세요. 일반적으로, 트랜잭션을 구성하기 위한 두가지 방법으로 애노테이션 방식과 AOP 방식이 존재합니다. 각자의 장단점이 있기 때문에, 아래 문서를 참조하여 더 적절한 방식을 선택하면 되겠습니다. 2. 트랜잭션 구성하기 Spring 3.1 에서는 @Configuration 클래스에서 사용할 수 있는 애노테이션 @EnableTransactionManagement을 제공하고, 이를 사용하면 트랜잭션 기능을 활성화할 수 있..