Java 37

Spring Boot vs Legacy Spring 의 결정적 차이

Spring Boot vs Legacy Spring — 실행 과정의 결정적 차이내장 톰캣 vs 외장 톰캣, 그리고 빈 초기화 순서가 왜 다른가Spring Framework 5.x (Legacy) | Spring Boot 3.x | Java 17+들어가며Spring Boot와 Legacy Spring의 차이를 물으면 대부분 "자동 설정"이나 "starter 의존성"을 먼저 떠올립니다.하지만 저는 내장 톰캣 vs 외장 톰캣이 가장 본질적인 차이라고 생각합니다.단순히 톰캣이 어디 있느냐의 문제가 아닙니다.누가 먼저 실행되느냐, 즉 빈 초기화와 서블릿 컨테이너의 실행 순서가 완전히 뒤바뀌기 때문입니다.1. Legacy Spring — 톰캣이 주인, Spring은 손님1-1. 전체 실행 흐름Legacy Sprin..

SPRING 2026.03.11

Spring Boot 요청 및 응답 처리 과정

Spring Boot 요청 및 응답 처리 과정JSON / Form 요청이 DispatcherServlet부터 응답까지 처리되는 내부 동작 원리Spring Boot 3.x | Spring Framework 6.x | Java 17+1. 전체 처리 흐름 한눈에 보기Client (Ajax JSON / HTML Form) ↓Embedded Tomcat (HttpConnector) ↓Filter Chain (SecurityFilter, CharacterEncodingFilter …) ↓DispatcherServlet.doDispatch() ↓HandlerMapping → HandlerExecutionChain (Handler + Interceptor) ..

SPRING 2026.03.10

Spring Framework @Scheduled 사용 방법

@Scheduled 어노테이션은 Spring 프레임워크에서 일정 주기로 메서드를 실행할 때 사용됩니다. 1. Fixed Rate 설정 fixedRate 속성을 사용하여 메서드 호출 간격을 밀리초 단위로 지정합니다. import org.springframework.scheduling.annotation.Scheduled; public class MyScheduledTask { @Scheduled(fixedRate = 5000) // 5초마다 실행 public void myTask() { // 실행할 코드 } } 2. Fixed Delay 설정 fixedDelay 속성을 사용하여 이전 메서드 실행이 완료된 시점부터 다음 메서드 호출까지의 시간을 밀리초 단위로 지정합니다. import org.springfra..

SPRING 2024.02.07

Lombok @Builder 사용 시 기본값 지정 방법

Lombok은 자바에서 반복적이고 지루한 코드를 줄이기 위한 라이브러리로, @Builder 어노테이션은 해당 클래스에 빌더 패턴을 자동으로 생성하는 데 사용됩니다. 그중 @Builder.Default 어노테이션은 @Builder와 함께 사용되어 생성된 빌더에 대한 기본값을 지정할 때 사용됩니다. 간단한 예제를 통해 설명하겠습니다: import lombok.Builder; import lombok.Builder.Default; @Builder public class MyClass { @Default private int myNumber = 42; // 기본값은 42로 설정됨 private String myString; public static void main(String[] args) { MyClass ..

SPRING/Lombok 2023.12.20

[Spring Boot Reference V3.0.6] Spring Boot Messaging

Messaging Spring Framework는 JmsTemplate메시지를 비동기식으로 수신하기 위한 완전한 인프라를 사용하여 JMS API의 단순화된 사용에서 메시징 시스템과의 통합을 위한 광범위한 지원을 제공합니다. Spring AMQP는 Advanced Message Queuing Protocol과 유사한 기능 세트를 제공합니다. RabbitTemplateSpring Boot는 또한 RabbitMQ 에 대한 자동 구성 옵션을 제공합니다 . Spring WebSocket은 기본적으로 STOMP 메시징에 대한 지원을 포함하고 Spring Boot는 스타터 및 소량의 자동 구성을 통해 이를 지원합니다. Spring Boot는 Apache Kafka도 지원합니다. 1. JMS 인터페이스 는 JMS 브로..

[Spring Boot Reference V3.0.6] Spring Boot IO

IO 대부분의 애플리케이션은 어느 시점에서 입력 및 출력 문제를 처리해야 합니다. Spring Boot는 IO 기능이 필요할 때 도움이 되는 다양한 기술과의 통합 및 유틸리티를 제공합니다. 이 섹션에서는 캐싱 및 유효성 검사와 같은 표준 IO 기능과 스케줄링 및 분산 트랜잭션과 같은 고급 항목을 다룹니다. 또한 원격 REST 또는 SOAP 서비스 호출 및 이메일 전송에 대해서도 다룹니다. 1. 캐싱 Spring Framework는 애플리케이션에 투명하게 캐싱을 추가하기 위한 지원을 제공합니다. 핵심적으로 추상화는 메서드에 캐싱을 적용하여 캐시에서 사용 가능한 정보를 기반으로 실행 횟수를 줄입니다. 캐싱 논리는 호출자에 대한 간섭 없이 투명하게 적용됩니다. 주석 을 사용하여 캐싱 지원이 활성화되어 있는 한..

[Spring Boot Reference V3.0.6] Spring Boot Data

Data Spring Boot는 SQL 및 NoSQL과 같은 여러 데이터 기술과 통합됩니다. 1. SQL 데이터베이스 Spring Framework는JdbcTemplate 직접 JDBC 액세스 에서 Hibernate와 같은 완전한 "객체 관계형 매핑" 기술에 이르기까지 SQL 데이터베이스 작업에 대한 광범위한 지원을 제공합니다 . Spring Data는 추가 수준의 기능을 제공합니다. Repository인터페이스에서 직접 구현을 생성하고 규칙을 사용하여 메서드 이름에서 쿼리를 생성합니다. 1.1. 데이터 소스 구성 Java의 javax.sql.DataSource인터페이스는 데이터베이스 연결 작업의 표준 방법을 제공합니다. 전통적으로 a는 일부 자격 증명과 함께 DataSourcea를 사용하여 URL데이터..

[Spring Boot Reference V3.0.6] Spring Boot Web

Web Spring Boot는 웹 애플리케이션 개발에 적합합니다. 포함된 Tomcat, Jetty, Undertow 또는 Netty를 사용하여 독립형 HTTP 서버를 만들 수 있습니다. 대부분의 웹 애플리케이션은 spring-boot-starter-web모듈을 사용하여 신속하게 시작하고 실행합니다. 모듈을 사용하여 반응형 웹 애플리케이션을 빌드하도록 선택할 수도 있습니다 spring-boot-starter-webflux. 아직 Spring Boot 웹 애플리케이션을 개발하지 않은 경우 "Hello World!" 시작하기 섹션 의 예 . 1. 서블릿 웹 애플리케이션 서블릿 기반 웹 애플리케이션을 구축하려는 경우 Spring MVC 또는 Jersey에 대한 Spring Boot의 자동 구성을 활용할 수 있습..

[Design Pattern] Visitor(방문자) 패턴이란?

행위 패턴(Behavioral Pattern) 방문자 패턴(Visitor pattern)은 객체 지향 프로그래밍에서 사용되는 디자인 패턴 중 하나로, 객체의 구조와 그 구조에서 수행되는 작업을 분리하여 구현하는 패턴입니다. 방문자 패턴은 객체 구조를 이루는 요소들을 독립적으로 변경할 수 있도록 하는 패턴입니다. 즉, 객체의 구조와 구조에서 수행되는 작업을 분리하여 구현함으로써 객체의 확장성과 유연성을 높이는데 목적이 있습니다. 방문자 패턴에서는 객체 구조를 이루는 클래스들과 이들을 순회하는 방문자(visitor) 클래스를 정의합니다. 이 방문자 클래스는 객체 구조의 각 클래스를 방문하면서 그 클래스에서 수행할 작업을 구현합니다. 객체 구조에서는 방문자를 인자로 전달받아 각 클래스에서 방문자의 visit ..

[Design Pattern] Template Method(템플릿 메서드) 패턴이란?

행위 패턴(Behavioral Pattern) 템플릿 메서드 패턴(Template Method Pattern)은 객체 지향 디자인 패턴 중 하나로, 알고리즘의 일부분을 서브클래스에서 구현하도록 하는 패턴입니다. 이 패턴은 상위 클래스에서 알고리즘의 전체 구조를 정의하고, 일부 구체적인 단계를 하위 클래스에서 구현할 수 있도록 합니다. 즉, 템플릿 메서드 패턴을 사용하면 알고리즘의 구조를 유지하면서 일부 구현을 다른 클래스로 위임할 수 있습니다. 이 패턴의 핵심 아이디어는 알고리즘의 구조를 추상화하는 것입니다. 상위 클래스에서는 알고리즘의 전체 구조를 나타내는 메서드를 정의하고, 이 메서드 안에서는 구체적인 단계를 수행하는 추상 메서드를 호출합니다. 하위 클래스에서는 추상 메서드를 구현하여 전체 알고리즘을..