Spring 6

[Spring] AOP & Proxy 란?

✅1. AOP와 Proxy를 왜 공부해야 하는가?스프링 프레임워크를 제대로 이해하고 활용하려면 반드시 AOP(Aspect-Oriented Programming)와 Proxy(프록시)에 대한 개념을 짚고 넘어가야 한다. AOP는 스프링의 내부 동작 원리와 실무 로직 구현에 깊이 관여한다. 📌 1-1. 관심사의 분리 (Separation of Concerns)실제 서비스를 개발하다 보면 모든 클래스나 메서드가 자신의 작업 외에 공통적인 작업을 반복적으로 수행하게 된다.예를 들어:메서드 실행 전후에 로그를 남긴다.실행 시간 측정을 위해 시간을 기록한다.트랜잭션을 시작하고 커밋하거나 롤백한다.인증/인가 처리를 수행한다.공통적인 작업을 하는 이런 코드들을 모든 클래스에 직접 반복적으로 작성하게 된다면?➡ 유지보..

Spring 2025.08.01

[Spring] 트랜잭션 전파(Propagation) 정리

✅ 1. 트랜잭션이란?트랜잭션 = DB 작업을 하나의 단위로 묶어서 처리모두 성공 → 커밋(commit)중간에 문제 → 롤백(rollback)예) 은행 이체A 계좌 → B 계좌로 5만 원 이체작업 1: A 계좌 -5만 원작업 2: B 계좌 +5만 원작업 1, 2를 둘 다 성공해야 트랜잭션 commit, 실패하면 rollback ✅ 2. @Transactional스프링에서 메서드에 @Transactional 붙이면메서드 시작 → 트랜잭션 시작예외 발생 → 롤백정상 끝 → 커밋여러 트랜잭션을 묶어서 하나의 트랜잭션 경계를 만들 수 있다. 만약 게시글을 작성(하나의 트랜잭션) 하는 애플리케이션에서 임시저장 기능과 로그저장 기능을 동시에 수행해야 할 때,임시저장은 성공하였지만 로그저장 기능이 실패 했을 때 임시..

Spring 2025.07.12

[Spring] JDBC Template 정리

📌 JDBC Template이란?Spring에서 SQL 기반으로 데이터베이스에 접근할 때, JDBC를 더 편리하고 효율적으로 다룰 수 있게 도와주는 클래스이다.spring-jdbc 라이브러리에 포함복잡한 JDBC 반복 코드 제거 (Connection, Statement, ResultSet 등)개발자는 SQL과 파라미터에만 집중하면 됨내부적으로 템플릿 콜백 패턴 사용 🧩 템플릿 콜백 패턴이란?전체 실행 흐름(템플릿)은 고정하고, 바꿔야 할 부분(콜백)만 외부에서 넘겨받아 실행하는 구조이다.템플릿(Template): 공통된 반복 처리 흐름콜백(Callback): SQL 처리 방식 등 유동적인 부분만 외부에서 주입재사용성, 가독성, 유지보수성 향상 💡 DataSource란?DB 연결 정보를 담고, 실제 ..

Spring 2025.05.31

[Spring] MVC 정리

1. MVC란?MVC는 애플리케이션의 구성 요소를 각각 Model, View, Controller 세 가지 책임 영역으로 분리하여 개발의 효율성과 유지보수성을 높이는 대표적인 디자인 패턴이다.2. 구성 요소 설명- Model (모델)애플리케이션의 정보, 데이터(데이터베이스, 상수, 변수, 초기화값 등)를 저장하고 데이터를 가공하는 기능을 담당하는 영역이다. 모델의 특징- 애플리케이션에서 필요한 정보를 모두 저장하고 있다.- 재사용이 가능하다.- View나 Controller에 대해서 어떠한 정보도 알지 못한다.- View (뷰)사용자에게 모델이 처리한 결과를 인터페이스 요소와 함께 보여주는 UI 기능을 담당하는 영역이다. 뷰의 특징 - 모델이 가지고 있는 정보를 따로 저장하고 있지 않다. - 재사용이 ..

Spring 2025.04.12

[Spring] IoC / DI 정리

우리가 Java로 프로그래밍을 할 때는, 보통 개발자가 직접 클래스를 정의하고 객체를 생성하며, 그 생명주기까지 직접 관리한다.하지만 애플리케이션 규모가 커지고 객체 간의 의존성이 복잡해질수록, 이러한 직접적인 제어 방식은 코드의 유지보수성과 생산성을 떨어뜨리는 험난한 프로그래밍이 될 것이다. 여기서 Spring 프레임워크를 사용한다면, 개발자가 해야 했던 객체의 생성, 생명주기 관리, 프로그램의 일부에 대한 제어의 책임을 Spring(컨테이너)에게 위임하여 개발자에게 편의성을 제공한다. 이처럼 객체의 대한 제어권을 개발자가 아닌 컨테이너가 가지는 것을 IoC(Inversion of Control, 제어의 역전)이라고 한다. 그리고 IoC의 핵심 구현 방식 중 하나가 바로 DI(Dependency Inj..

Spring 2025.03.22

[Spring] 빈 / 빈 스코프(Bean / Bean Scope) 정리

빈 스코프(Bean Scope)에 대해 정리하기 전에 빈(Bean)이 무엇인지 알고 넘어가 보자1. 빈 (Bean)빈(Bean)은 Spring에서 애플리케이션의 핵심을 구성하고, Spring IoC 컨테이너에 의해 관리되는 객체를 의미한다. 자바에서 우리가 직접 생성하는 일반적인 객체와 달리, Spring은 개발자가 정의한 클래스들을 빈으로 등록하여 자동으로 객체를 인스턴스화, 조립, 관리한다.즉, 자바에서의 객체 중에서 Spring 컨테이너에 의해 생성되고 관리되는 객체를 빈이라고 한다. Spring에서는 이 빈을 컨테이너라는 상자 안에 넣고 생성되고 소멸하는 생명 주기 전체를 자동으로 관리해 주기 때문에 개발자는 보다 편리하게 애플리케이션을 개발할 수 있다. 빈은 어떤 편리함을 제공해줄까?객체를 대신..

Spring 2025.03.19