Framework/Spring(11)
-
Spring AOP 완전 정복 - 핵심 로직과 횡단 관심사의 완전 분리
1. AOP란 무엇인가?📌AOP의 정의AOP는 공통된 관심사를 분리하여 핵심 로직과 독립적으로 관리할 수 있도록 하는 프로그래밍 패러다임이다. 🎯AOP가 필요한 이유OOP(Object-Priented Programming)만으로는 다음 같은 문제를 해결하기 어렵다.로킹, 트랜잭션, 보안 체크, 캐싱, 성능 측정 등은 모든 비즈니스 로직에 반복해서 들어감이러한 횡단 관심사(Cross-cutting concerns)가 중복 코드 유발 + 유지보수 난이도 증가➡️ AOP는 이 관심사를 핵심 로직에서 분리해 재사용성과 응집도를 높임 🧩 2. AOP 핵심 용어 정리용어설명Aspect횡단 관심사의 모듈화 단위 (클래스)Join PointAdvice가 적용될 수 있는 지점 (ex: 메서드 실행)AdviceJoi..
2025.06.05 -
Spring의 DI 방식 완전 정복 - 생성자 / 필드 / 세터 주입, 그리고 언제 어떻게 써야 하는가?
✅1. DI란 무엇인가?"DI(Dependency Injection, 의존성 주입)"은 객체가 의존하는 객체를 직접 생성하지 않고, 외부에서 주입 받는 설계 방식이다. DI는 DIP(의존 역전 원칙)을 실현하는 핵심 수단이며Spring의 핵심 원리 중 하나인 IoC(제어의 역전)를 구체적으로 구현하는 방법이기도 하다.2. Spring에서 DI는 어떻게 동작하는가?Spring은 ApplicationContext가 Bean을 생성하고,의존성 있는 객체를 자동으로 찾아서 주입한다.Bean 등록 방식에 따라 주입 방식이 다르게 동작할 수 있다.컴포넌트 스캔 기반 (@Component, @Service, @Repository)Java Config 기반 (@Bean 메서드)@Autowired나 여러 Bean이 있을..
2025.05.13 -
Spring Bean과 생명주기 - Bean의 생성부터 소멸까지, 내부에서는 어떤 일이 벌어질까?
Spring의 핵심은 결국 "Bean 관리"이다.이번 포스팅에서는 단순한 순서를 넘어서, Bean의 생성 -> 초기화 -> 사용 -> 소멸에 이르는 전 과정을 메서드, 인터페이스, 어노테이션, 내부 메커니즘까지 완전히 정복할 수 있도록 정리하겠다. ✅1. Spring Bean 이란?Spring Bean은 Spring IoC 컨테이너가 관리하는 객체이다.즉, 개발자가 new로 만들지 않고, Spring이 대신 생성하고 관리하는 객체가 Bean이다. @Componentpublic class UserService { ... }위 클래스는 컴포넌트 스캔 대상이 되어 Bean으로 등록된다.다른 객체에서 @Autowired, @Inject, @Bean 등을 통해 주입(Injection) 받을 수 있다.🌀 2. S..
2025.05.12 -
Spring Framework의 핵심 원리 - IoC, DI, AOP
✅1. Spring Framework란?Spring은 자바 기반의 엔터프라이즈 애플리케이션을 만들기 위한 경량화된 프레임워크이다.핵심 철학은 "객체 간의 결합도를 낮추고, 유연하고 확장 가능한 구조"를 만드는 것에 있다. 핵심 철학을 구성하는 키워드IoC (제어의 역전)DI (의존성 주입)AOP (관점 지향 프로그래밍)2. IoC - Inversion of Control (제어의 역전) 📌 개념객체의 생성과 생명주기 관리를 "개발자가 아니라 컨테이너(Spring)가 대신하는 것"개발자가 제어하던 객체 생성/연결을-> 스프링 컨테이너가 역으로 제어한다는 개념 ✅왜 중요한가?객체 간의 강결합을 제거애플리케이션 전체 흐름을 중앙 컨테이너가 제어테스트와 유지보수가 쉬워짐3. DI - Dependency Inj..
2025.05.11 -
Spring Framework 소개
1.Spring에 대한 이해 Spring Framework는 자바 기반의 웹 애플리케이션 개발을 위한 프레임워크이다. 스프링은 객체 지향 개발을 매우 용이하게 할 수 있도록 도와주기 때문에 자바에 대해 충분한 이해가 먼저 선행되어야 한다. 애플리케이션을 빠르고 효율적으로 개발할 수 있도록 기본 틀과 공통 프로그래밍 모델, API 등을 제공한다. 2.Spring의 목적 2-1 기술의 복잡함 엔터프라이즈 시스템이란, 서버에서 동작하며 기업과 조직의 업무를 처리해주는 시스템을 말한다. 엔터프라이즈 시스템은 많은 사용자의 요청을 동시에 처리해야하기 때문에 서버의 자원을 효율적으로 공유하고 분배해서 사용할 수 있어야한다. 또한 기업이 핵심 정보를 다루기 때문에 보안과 확장성, 안정성면에서도 뛰어나야한다. 즉, 엔..
2024.03.13