Spring
-
Spring 의 @Scheduled 어노테이션을 통해 정적 스케쥴링은 해봤으나DB 데이터 기반으로 동적스케쥴링을 설정 해본적이 없어 진행한다. SchedulingConfigurer 란?Spring 의 스케줄링 설정을 프로그래밍적으로 커스터마이즈할 수 있게 해주는 인터페이스이다.@EnableScheduling 어노테이션과 함께 사용되며 스케줄링 작업을 코드 기반으로 등록할 수 있게해주는 인터페이스다. 주요 특징동적 스케줄링 설정 가능@Scheduled 어노테이션의 정적 스케쥴링 한계 극복런타임에 스케줄 작업 추가/수정✅ 언제 사용하나? 상황 사용 이유 @Scheduled가 부족할 때실행 주기를 DB에서 동적으로 제어하거나, 조건적으로 등록/제거하고 싶을 때여러 작업을 코드로 한꺼번에 등록하고 싶을 때코드..
Spring Boot 3 동적 스케줄링 설정해보기Spring 의 @Scheduled 어노테이션을 통해 정적 스케쥴링은 해봤으나DB 데이터 기반으로 동적스케쥴링을 설정 해본적이 없어 진행한다. SchedulingConfigurer 란?Spring 의 스케줄링 설정을 프로그래밍적으로 커스터마이즈할 수 있게 해주는 인터페이스이다.@EnableScheduling 어노테이션과 함께 사용되며 스케줄링 작업을 코드 기반으로 등록할 수 있게해주는 인터페이스다. 주요 특징동적 스케줄링 설정 가능@Scheduled 어노테이션의 정적 스케쥴링 한계 극복런타임에 스케줄 작업 추가/수정✅ 언제 사용하나? 상황 사용 이유 @Scheduled가 부족할 때실행 주기를 DB에서 동적으로 제어하거나, 조건적으로 등록/제거하고 싶을 때여러 작업을 코드로 한꺼번에 등록하고 싶을 때코드..
2025.05.15 -
본인은 Spring 에서 Mybatis 를 사용하기 위해서 Mapper 인터페이스를 생성하고 .xml 파일을 생성하여쿼리문을 호출했다. 이때 필요한 Mapper 인터페이스를 사용하기 위한 Bean 등록 방법을 알아보자 총 3가지가 있다.1. @Mapper 어노테이션 개별 사용2. @MapperScan 어노테이션을 사용한 모든 Mapper 파일 패키지 설정3. xml 을 사용했을 경우 SqlSessionFactoryBean 의 setMapperLocations() 함수 사용 1. @Mapper 어노테이션 사용@Mapper 어노테이션은 각 Mapper 인터페이스에 직접 붙여 Bean 으로 등록한다.모든 Mapper 인터페이스에 붙이기에는 효율성이 떨어지므로 아래 설명할 @MapperScan 어노테이션을 사용..
Mybatis 의 Mapper 인터페이스 Bean 등록 방법본인은 Spring 에서 Mybatis 를 사용하기 위해서 Mapper 인터페이스를 생성하고 .xml 파일을 생성하여쿼리문을 호출했다. 이때 필요한 Mapper 인터페이스를 사용하기 위한 Bean 등록 방법을 알아보자 총 3가지가 있다.1. @Mapper 어노테이션 개별 사용2. @MapperScan 어노테이션을 사용한 모든 Mapper 파일 패키지 설정3. xml 을 사용했을 경우 SqlSessionFactoryBean 의 setMapperLocations() 함수 사용 1. @Mapper 어노테이션 사용@Mapper 어노테이션은 각 Mapper 인터페이스에 직접 붙여 Bean 으로 등록한다.모든 Mapper 인터페이스에 붙이기에는 효율성이 떨어지므로 아래 설명할 @MapperScan 어노테이션을 사용..
2025.04.17 -
@Configuration 클래스에서 @Bean 어노테이션을 사용한 메서드는 다른 Bean 에 의존하여 초기화될 수 있다.쉽게 말해 @Bean 어노테이션이 사용된 메서드의 파라미터에 다른 Bean 을 주입하여 사용할 수 있다. Spring 에서 @Bean 메서드 매개변수를 사용하여 Bean 종속성을 전달할 수 있는 메커니즘으로 인해 가능하다. 1. @Bean 메서드의 반환 타입별 주입주입 대상 지점에 주입할 수 있는 Bean 인스턴스가 하나만 있는 경우 타입별로 성공적 주입된다. 아래는 예시 코드이다.@Beanpublic HikariDataSource dataSource1() { return new HikariDataSource(hikariConfig());}@Beanpublic HikariDat..
@Bean 메서드의 매개변수 종속성 주입@Configuration 클래스에서 @Bean 어노테이션을 사용한 메서드는 다른 Bean 에 의존하여 초기화될 수 있다.쉽게 말해 @Bean 어노테이션이 사용된 메서드의 파라미터에 다른 Bean 을 주입하여 사용할 수 있다. Spring 에서 @Bean 메서드 매개변수를 사용하여 Bean 종속성을 전달할 수 있는 메커니즘으로 인해 가능하다. 1. @Bean 메서드의 반환 타입별 주입주입 대상 지점에 주입할 수 있는 Bean 인스턴스가 하나만 있는 경우 타입별로 성공적 주입된다. 아래는 예시 코드이다.@Beanpublic HikariDataSource dataSource1() { return new HikariDataSource(hikariConfig());}@Beanpublic HikariDat..
2025.04.16 -
Java 8 표준 API 의 함수형 인터페이스(Supplier, Consumer)함수형 인터페이스란 1개의 추상 메소드를 갖는 인터페이스를 말한다.Java8 부턴 default 라는 키워드가 생겨 구현되어 있는 메서드가 있으나여러개의 디폴트 메서드가 있더라도 추상 메서드가 오직 한개라면 함수형 인터페이스이다.자바의 람다 표현식은 함수형 인터페이스로만 사용 가능하다. 만들어진 이유자주 사용할 것 같은 람다 함수 형태를 함수형 인터페이스 표준 API 로 미리 만들어제공해주기 위해서 만들어졌다. @FunctionalInterface함수형 인터페이스는 @FunctionalInterface 라는 어노테이션을 사용한다.이 어노테이션은 해당 인터페이스가 함수형 인터페이스 조건에 맞는지 검사해준다.해당 어노테이션은 없..
자바 8 표준 API의 함수형 인터페이스(Supplier, Consumer)Java 8 표준 API 의 함수형 인터페이스(Supplier, Consumer)함수형 인터페이스란 1개의 추상 메소드를 갖는 인터페이스를 말한다.Java8 부턴 default 라는 키워드가 생겨 구현되어 있는 메서드가 있으나여러개의 디폴트 메서드가 있더라도 추상 메서드가 오직 한개라면 함수형 인터페이스이다.자바의 람다 표현식은 함수형 인터페이스로만 사용 가능하다. 만들어진 이유자주 사용할 것 같은 람다 함수 형태를 함수형 인터페이스 표준 API 로 미리 만들어제공해주기 위해서 만들어졌다. @FunctionalInterface함수형 인터페이스는 @FunctionalInterface 라는 어노테이션을 사용한다.이 어노테이션은 해당 인터페이스가 함수형 인터페이스 조건에 맞는지 검사해준다.해당 어노테이션은 없..
2025.01.07 -
팩토리 메서드 패턴팩토리 메서드 패턴은 객체 생성을 추상화하고 캡슐화하는 디자인 패턴이다.객체를 직접 생성하는 대신 객체내에 존재하는 팩토리 메서드를 통해 객체를 요청하고 제공받는다. 클라이언트가 "new" 키워드를 통해 객체를 생성하는게 아닌 객체 생성을 도맡아하는 메서드를 만들어객체 생성을 책임지게 만든다. 정적 팩토리 메서드 패턴(Static Factory Method Pattern)위 팩토리 메서드 패턴을 변형시킨 패턴으로 써 클래스 내에 생성자를 호출하여 객체를 생성하는Static Method 를 만들어놓고 객체 생성을 유도하는 패턴이다. // People 객체public class People { private String name; private Integer number; ..
팩토리 메서드 패턴(Factory Method Pattern)팩토리 메서드 패턴팩토리 메서드 패턴은 객체 생성을 추상화하고 캡슐화하는 디자인 패턴이다.객체를 직접 생성하는 대신 객체내에 존재하는 팩토리 메서드를 통해 객체를 요청하고 제공받는다. 클라이언트가 "new" 키워드를 통해 객체를 생성하는게 아닌 객체 생성을 도맡아하는 메서드를 만들어객체 생성을 책임지게 만든다. 정적 팩토리 메서드 패턴(Static Factory Method Pattern)위 팩토리 메서드 패턴을 변형시킨 패턴으로 써 클래스 내에 생성자를 호출하여 객체를 생성하는Static Method 를 만들어놓고 객체 생성을 유도하는 패턴이다. // People 객체public class People { private String name; private Integer number; ..
2025.01.03 -
Spring Security 에서 Http Response 에 대한 header 값을 설정하는 부분이 .headers 옵션이다. 기본적은 Spring Security headers 설정은 아래와 같다.Cache-Control: no-cache, no-store, max-age=0, must-revalidatePragma: no-cacheExpires:0X-Content-Type-Options: nosniffStrict-Transport-Security: max-age=31536000 ; includeSubDomainsX-Frame-Options: DENYX-XSS-Protection: 1; mode=block .frameOptions(X-Frame-Options) Http 헤더에서 X-Frame-Opt..
Spring Security headers, frameOptions, contentSecurityPolicy, HTTP Strict Transport Security(HSTS)Spring Security 에서 Http Response 에 대한 header 값을 설정하는 부분이 .headers 옵션이다. 기본적은 Spring Security headers 설정은 아래와 같다.Cache-Control: no-cache, no-store, max-age=0, must-revalidatePragma: no-cacheExpires:0X-Content-Type-Options: nosniffStrict-Transport-Security: max-age=31536000 ; includeSubDomainsX-Frame-Options: DENYX-XSS-Protection: 1; mode=block .frameOptions(X-Frame-Options) Http 헤더에서 X-Frame-Opt..
2024.12.11