목록Programming/Spring (19)
프로그래밍 공부
Spring 에 대해Spring은 대규모 엔터프라이즈 애플리케이션을 효율적으로 개발하기 위한 프레임워크로,유연하고 확장성이 뛰어난 모듈화된 구조를 가지고 있다.1. Spring 프레임워크란?Spring 프레임워크(Spring Framework)는 자바 기반 엔터프라이즈 애플리케이션 개발을 위한 경량 컨테이너다.주요 특징은 다음과 같다.✔ 경량 컨테이너: IoC/DI를 활용하여 객체를 효율적으로 관리✔ AOP 지원: 공통 기능을 분리하여 코드 중복을 줄임✔ 트랜잭션 관리: 일관된 트랜잭션 관리 기능 제공✔ 다양한 기술과 통합 가능: JPA, Hibernate, MyBatis, RabbitMQ, Kafka 등 다양한 기술과 호환2. Spring의 주요 모듈Spring은 필요한 기능을 모듈화하여 제공하며,핵심..
스프링 스테레오타입 어노테이션 정리스프링에서 스테레오타입 어노테이션(Stereotype Annotation)은 특정 클래스를 스프링 빈(Bean) 으로 자동 등록하고 역할을 명확하게 표현하는 기능을 한다.이 어노테이션을 사용하면 XML 설정 없이도 빈을 자동으로 등록할 수 있다.1. 주요 스테레오타입 어노테이션 종류어노테이션 역할 대상@Component기본적인 스프링 빈 등록모든 스프링 관리 객체@ControllerMVC의 컨트롤러 역할웹 요청을 처리하는 클래스@Service비즈니스 로직 처리서비스 계층 클래스@Repository데이터 접근 객체 (DAO)데이터베이스 관련 클래스이들은 모두 @Component의 확장 기능이며, 특정 계층을 구분하기 위해 사용된다.2. @Component - 가장 기본적인..
Spring XML 설정 정리1. XML 기반 Spring 설정이란?Spring 프레임워크는 애플리케이션의 설정을 XML 또는 Java 기반의 설정으로 구성할 수 있다.초기에는 XML 기반 설정이 일반적이었으며, 현재는 Java 기반 설정이 선호되지만, 기존 시스템이나 레거시 프로젝트에서는 여전히 XML 설정이 많이 사용된다.2. Spring XML 설정의 기본 구조(1) applicationContext.xml 개요Spring에서는 applicationContext.xml 파일을 이용해 빈(Bean) 설정을 관리한다.기본적인 XML 설정 파일의 구조는 다음과 같다. (2) 주요 XML 태그 설명태그 설명Spring 컨테이너의 최상위 설정 태그Spring 빈을 정의하는 ..
🌱 스프링 빈의 스코프(Bean Scope)1️⃣ 스프링 빈 스코프란?스프링 컨테이너에서 빈이 생성되고 관리되는 범위(scope)를 지정하는 설정.기본 스코프는 singleton이며, 하나의 인스턴스만 생성됨.필요에 따라 새로운 빈 인스턴스를 계속 생성할 수도 있음.스코프는 @Scope 어노테이션을 사용하여 설정할 수 있다.@Component@Scope("prototype") // 프로토타입 스코프 적용public class MyBean {}2️⃣ 스프링이 제공하는 빈 스코프 종류스코프 이름 설명 사용 범위singleton(기본값) 컨테이너당 하나의 인스턴스만 생성전역prototype요청할 때마다 새로운 인스턴스 생성전역requestHTTP 요청이 올 때마다 새로운 인스턴스 생성웹sessionHTTP ..
스프링 프레임워크에서 빈(Bean)의 초기화 시점은 애플리케이션 성능과 리소스 사용에 영향을 미치는 중요한 요소야. 이를 제어하는 방식으로 즉시 초기화(Eager Initialization)와 지연 초기화(Lazy Initialization)가 있다.1. 스프링 빈 초기화 개념스프링 컨테이너가 빈을 생성하고 의존성을 주입하는 시점을 의미한다.즉시 초기화: 스프링 컨테이너가 시작될 때 빈을 생성하는 방식지연 초기화: 빈이 실제로 사용될 때(lazy loading) 생성하는 방식2. 즉시 초기화(Eager Initialization)🔹 개념스프링 컨테이너가 로딩될 때(앱 실행 시) 모든 빈을 미리 생성@Configuration 클래스에서 등록된 빈들은 기본적으로 즉시 초기화됨🔹 특징✔ 애플리케이션이 시작..
🚀 의존성 주입(Dependency Injection, DI)을 하는 이유스프링에서 의존성 주입(DI) 을 사용하는 이유는 객체 간의 결합도를 낮추고 유지보수성을 높이기 위해서야. DI를 사용하면 코드가 더 유연하고 확장 가능해진다.1. 객체 간의 결합도(Dependency)를 낮추기 위해DI를 사용하면 객체 간의 강한 결합도를 줄이고 느슨한 결합(Loosely Coupled)을 유지할 수 있다.예를 들어, 아래처럼 직접 객체를 생성하면 Car 클래스는 Engine 구현체에 강하게 의존하게 됨.❌ 의존성 주입 없이 직접 객체 생성 (강한 결합)public class Car { private Engine engine = new Engine(); // 직접 객체 생성 public void st..