들어가기 전에하기 포스팅은 "스프링부트 시작하기(김인우 저)" 책을 공부하며 적은 포스팅입니다. 이번 포스팅에서는 트랜잭션에 대해 살펴보도록 하겠습니다.트랜잭션먼저 돈을 송금하는 과정을 예로 들어 트랜잭션 개념을 간단히 알아보겠습니다. 돈을 송금하는 과정은 아래와 같습니다.송금하고자 하는 계좌와 금액을 선택합니다.이체하는 계좌에서 돈이 출금됩니다.이체받는 계좌에 돈이 입금됩니다.거래가 정상적으로 완료됩니다.거래가 정상적으로 처리되면 문제가 없지만, 중간에 문제가 발생할 수 있습니다. 예를 들어, 2번과 3번 과정 사이에서 문제가 발생했다고 가정합니다. 그렇게 되면, 돈은 출금되었는데 실제로 이체 받을 사람 계좌에는 돈이 들어오지 않게 됩니다. 따라서, 돈을 송금하는 과정에서 문제가 발생하면 이와 관련된 ..
들어가기 전에하기 포스팅은 "스프링부트 시작하기(김인우 저)" 책을 공부하며 적은 포스팅입니다. 이번 포스팅에서는 AOP에 대해 살펴보도록 하겠습니다.AOP(Aspect Oriented Programming, 관점지향 프로그래밍)AOP란, OOP(Object Oriented Programming, 객체지향 프로그래밍)를 더욱 OOP답게 사용하도록 도와주는 개념입니다.객체지향이란, 기능과 데이터들을 모아 재사용이 가능한 객체로 캡슐화하는 것을 의미합니다. 이렇게 캡슐화된 클래스들을 프로젝트 내 여러 곳에서 반복적으로 재사용하여 생산성을 높일 수 있습니다.하지만, 실제 어플리케이션을 개발하다보면 객체의 핵심코드 외에도 여러 기능이 들어 갑니다. 메소드 호출 전후의 로그, 데이터 검증 및 확인 로그, 예외처리..