aop 3

[SpringBoot] @Transactional로 트랜잭션이 적용되는 원리

💡궁금하게 된 계기 하나의 클래스 안에서, @Transactional이 없는 메서드에서 있는 메서드를 호출할 때 트랜잭션이 적용되지 않는다는 것을 알았다. 이 문제로 부터, 궁금한 것을 이어가다보니 트랜잭션 어노테이션의 동작 방식에 대해 조사하게 되었다. ✅ 필요한 사전 지식 2023.03.21 - [CS/디자인패턴] - Proxy Pattern | 프록시 패턴 2023.03.22 - [Programming/Spring] - [SpringBoot] 관점 지향 프로그래밍 AOP의 개념과 사용법 @Transactional이 적용되는 과정 간단하게 보기 Spring Boot의 @Transactional은 AOP와 Proxy를 기반으로 동작한다. 정확히는, @Transactional은 AOP를 이용하고, AOP..

Programming/Spring 2023.05.06

[SpringBoot] 관점 지향 프로그래밍 AOP의 개념과 사용법

🐣 AOP란? AOP(Aspect Oriented Programming)는 관점 지향 프로그래밍이라는 의미이다. 이때 말하는 관점은 아래와 같이 두 분류로 나눌 수 있다. 1. 여러 메서드에 공통으로 사용하는 기능 : 주로 로깅이나 성능 측정과 같은 부가적인 로직이 이에 해당한다. 2. 특정 메소드에서만 사용하는 핵심 기능 : 어플이 제공하는 핵심 비즈니스 로직 그렇다면, "AOP를 사용했을 때 어떤 이점"이 있을까 여러 메서드에 공통적으로 사용하는 코드를 분리함으로써 코드 중복을 줄일 수 있다. 또한, 이 코드에서 수정 사항이 생기면 모든 파일을 살펴볼 필요 없이 분리된 코드만 수정하면 되기 때문에, OOP원칙에 더 맞는 코드가 된다. 또한, 비즈니스 로직에는 부가적인 코드가 섞여있지 않으므로 가독성이..

Programming/Spring 2023.03.22

Spring (1) - Spring Framework란?

1. 등장 배경 웹사이트의 규모와 활용 범위가 커지면서 전보다 많은 서비스를 제공해야 했다. 결론적으로 POJO + 경량 프레임워크가 사용되게 되었다. 1) POJO (Plain Old Java Object) 특정 프레임워크나 기술에 독립적인 자바 객체 ex) 다른 프레임워크로 작동시켜도 되도록 호환성을 높임 2) 경량 프레임워크 Spring은 기존에 사용되던 EJB보다 약 10배 가벼운 프레임워크이다. 2. SpringFramework의 핵심 기능 1. POJO (Plain Old Java Object) 특정 프레임워크나 기술에 독립적인 일반 자바 객체 2. PSA (Portable Service Abstraction) 추상화를 통해 Low Level의 기술 구현 부분과 기술을 사용하는 인터페이스로 분..

Programming/Spring 2022.04.15