AOP2 [트랜잭션] feat. 스프링 AOP 순서 1. 트랜잭션 2. 트랜잭션의 4가지 특징 3. 스프링에서의 트랜잭션 ✅ 트랜잭션이란? - DB의 상태를 변화시키기 위해 수행하는 작업을 묶은 최소 단위 - 한 번에 수행되어야하는 작업들의 묶음 ✅ 트랜잭션의 4가지 특징 ➤ 원자성 - 트랜잭션의 작업들은 전부 수행되거나, 전부 취소돼야함(All or Nothing) - ex) 만약 위의 송금 과정 중 '입금 통장 잔액 조회' 과정에 문제가 생겼는데 중간에 멈추면, 송금 통장과 입금 통장 모두 돈이 없어지는 심각한 문제가 생김 ➤ 일관성 - 트랜잭션 수행 후 데이터 모델의 모든 제약조건을 만족해야함 - ex) 송금 통장 잔액은 0보다 커야 한다, 입금 통장의 잔액은 null일 수 없다 등등 ➤ 독립성 - 트랜잭션 수행 중에는 다른 트랜잭션이 영향을 .. 2023. 5. 22. [프록시 패턴] feat. 스프링 AOP, JPA 순서 1. 프록시 패턴 3. 스프링 AOP 4. JPA ✅ 프록시 패턴 - 타겟에 대한 접근 방법을 제어하려는 목적으로 프록시를 사용하는 패턴 ➤ 프록시(Proxy) - 클라이언트가 사용하려고 하는 실제 타겟인 것처럼 위장해서 클라이언트의 요청을 받는 역할 - 클라이언트 입장에서는 겉모양이 똑같이 생겼기 때문에 구분할 필요 X - 프록시 객체는 타겟 객체의 참조를 가지고 있음 ➤ 프록시 패턴 사용 이유 1. 타겟으로부터 응답받은 데이터가 메모리에 있으면, 다음 요청은 타겟까지 보내지 않고 프록시가 응답할 수 있음(캐싱) 2. 객체가 반드시 필요할 때에만 객체를 생성할 수 있음 3. 기존 코드를 변경하지 않고, 새로운 기능을 추가할 수 있음(OCP) 4. 기존 코드가 해야 하는 일만 유지할 수 있음(SRP.. 2023. 5. 18. 이전 1 다음