Spring
-
Spring에서 AOP(Aspect Oriented Programming)가 필요한 이유Spring 2025. 2. 17. 09:21
이 문서에서는 Spring 에서 AOP(Aspect Oriented Programming)가 필요한 이유를 서술하기 이전, Spring의 주요 개념과 이점을 설명합니다. 그 끝에 Spring에서 AOP라는 패러다임이 필요한 이유를 말하고, Spring Boot에서 Spring AOP 모듈을 이용한 사례를 보이며 이유를 구체화시킵니다.글이 많은 문서임을 미리 알립니다! 1. Spring의 주요 개념Spring의 주요 개념에는 Bean, IoC, DI, AOP 가 있습니다. Bean은 IoC(Inversion of Controller) 디자인 원칙에 의거한 Spring이 관리하는 객체입니다. 좀 더 섬세히는, Spring IoC 컨테이너가 관리하는 POJO(Plain Old Java Object)입니다...
-
Spring Boot에서 사용되는 다양한 Bean 등록 방법Spring/Boot 2025. 2. 10. 09:23
Spring Boot에서 사용되는 다양한 Bean 등록 방법들과 각각의 장단점을 표로 정리하고, 가장 많이 이용되는 두 가지의 예시를 작성해둔 문서입니다. Spring Boot에서 Bean을 등록하는 방법자동 등록수동 등록활용 상황@Component 계열 어노테이션으로 Bean 등록✅❌일반적인 Spring Boot 프로젝트Java 설정을 통한 Bean 등록❌✅외부 라이브러리 또는 복잡한 의존성 관리 필요XML 설정을 통한 Bean 등록❌✅레거시 프로젝트 유지보수@Import를 사용한 Bean 등록✅✅설정 클래스를 묶어서 관리FactoryBean을 사용한 동적 Bean 등록✅✅특정 조건에 따른 동적 객체 생성ApplicationContext.registerBean를 통한 동적 Bean 등록❌✅런타임에 Be..
-
Spring Framework가 탄생하게 된 배경Spring 2025. 2. 3. 09:28
Spring 프레임워크 등장 배경을 간단히 서술한 문서입니다. Spring Framework가 나오기 전에는 앤터프라이즈 애플리케이션 개발에 EJB(Enterprise JavaBeans)라는 프레임워크가 있었습니다.그러나 EJB에는 복잡성과 높은 결합도, 무거운 컨테이너, 느린 초기화, 유연성 부족, 테스트의 어려움 등의 문제가 있었습니다. 복잡성과 높은 결합도EJB 에는 클래스(*컴포넌트라 부릅니다. 이 뒤로는 전부 컴포넌트라 표현하겠습니다.) 간 의존성이 매우 강하게 결합돼 있었습니다.클래스 A가 클래스 B에 의존한다면 B 객체를 먼저 생성해야하는 순서에 제약이 생깁니다.EJB를 사용할 때는 개발자가 JNDI(Java Naming and Directory Interface)를 이용해 수동으로 의존성을..
-
Gradle을 사용한 Spring Boot 프로젝트의 구조와 설정Spring/Boot 2025. 1. 31. 01:19
Gradle을 사용한 Spring Boot 프로젝트의 구조와 설정을 정리한 문서입니다.복습 용으로, 개인 학습과 문서화 연습의 성격이 강합니다.개발환경IDE : IntelliJ IDEA Ultimate 2024.3.1.1JDK : JetBrains Runtime (JBR) 17.0.12빌드 도구 : Gradle 8.12.1 프로젝트 환경Java : 17Spring Boot : 3.4.2JDK : JetBrains Runtime (JBR) 17.0.12 빌드 도구 : Gradle 8.12.1 Spring Boot 프로젝트 생성Type : Gradle프로젝트 타입이자, 빌드 용 툴을 설정합니다.해당 문서는 Gradle을 사용한 Spring Boot 프로젝트 구조를 복습하는 과정이기에 Gradle을 선택했습..