📌 트랜잭션 전파(Propagation)란?트랜잭션 전파(Propagation)는 트랜잭션의 존재 여부와 관계를 정의합니다.현재 트랜잭션이 있는 경우 그 트랜잭션에 참여할지,새로 트랜잭션을 생성할지,트랜잭션 없이 실행할지를 결정합니다.Spring에서 제공하는 전파 속성은 @Transactional 어노테이션의 propagation 속성으로 설정할 수 있습니다.📌 트랜잭션 전파와 격리 수준의 차이전파(Propagation)트랜잭션의 관계를 설정합니다.예: 새로운 트랜잭션 생성, 기존 트랜잭션 참여 등.격리 수준(Isolation Level)동시에 실행되는 트랜잭션 간 데이터 접근 규칙을 설정합니다.예: Dirty Read 방지, Repeatable Read 보장 등.간단히: 전파는 트랜잭션의 관계, 격..
aop
📌 @Transactional이란?Spring에서 제공하는 트랜잭션 관리 어노테이션으로, 데이터 작업의 ACID 특성을 보장하며 트랜잭션 시작, 커밋, 롤백을 자동으로 처리합니다.💡 @Transactional의 동작 원리@Transactional은 AOP(Aspect-Oriented Programming) 기반으로 동작하며, 프록시 객체가 트랜잭션의 시작과 종료를 제어합니다.프록시 동작 구조클라이언트가 호출 → 프록시 객체가 메서드를 가로챔.프록시 객체가 트랜잭션을 시작(Commit/Rollback 결정).실제 객체의 메서드 실행.메서드 종료 후 트랜잭션 종료.📌 트랜잭션은 원래 하나인가? 독립적으로 동작한다는 의미는?트랜잭션은 하나의 작업 단위트랜잭션은 데이터를 다루는 논리적 작업 단위입니다. 이..
🌐 Aspect-Oriented Programming (AOP)AOP는 관심사 분리를 목표로 하는 프로그래밍 패러다임입니다. 특히 로깅, 트랜잭션 관리, 보안과 같은 횡단 관심사(Cross-cutting concerns)를 비즈니스 로직에서 분리할 수 있도록 해줍니다. 비즈니스 로직과는 상관없는 코드가 곳곳에 중복해서 나타나는 문제를 해결해주기 때문에 유지보수성을 크게 향상시킬 수 있습니다. 이를 통해 비즈니스 로직은 본연의 역할에만 집중할 수 있게 되는 거죠.🌟 AOP의 핵심 개념횡단 관심사(Cross-Cutting Concern): 애플리케이션 전반에 걸쳐 사용되는 공통된 기능들. 예를 들어, 로깅, 트랜잭션 관리, 보안 처리 같은 것들이 이에 해당됩니다. 이들은 각 모듈에서 필요로 하지만, 해당..
1. 🎯 개요Java에서 AOP(Aspect-Oriented Programming)를 활용하여 로그인 시스템을 구현하는 방법에 대해 알아보겠습니다. AOP를 사용하면 비즈니스 로직과 로깅, 보안 검사 같은 부수적인 기능들을 분리하여 관리할 수 있습니다. 이로 인해 코드의 재사용성과 가독성이 증가하며, 유지보수가 쉬워집니다.2. 🛠️ 필요한 의존성 추가Spring Boot 프로젝트에 AOP를 적용하기 위해, 먼저 pom.xml에 의존성을 추가해야 합니다. AspectJ와 Spring AOP를 사용할 예정입니다. org.springframework.boot spring-boot-starter-aop org.aspectj aspectj..