Transaction 질의(Query)를 하나의 묶음으로 처리해서 중간에 실행이 중단됐을 경우, 처음부터 다시 실행하는 Rollback(Noting)을 수행하고, 오류없이 실행을 마치면 Commit(All)을 하는 실행 단위를 의미한다. 다수의 사용자가 DB를 동시에 접근하도록 허용하면서 일관성을 유지하도록 보장 일관성을 보장하기 위해 전부 수행되던가, 하나도 수행되면 안됨(All or Nothing) DBMS의 트랜잭션 관리 모듈(동시성 제어 모듈, 회복 모듈로 구성) 담당 동시성 제어 모듈: 동시에 수행되는 여러 트랜잭션들 간의 상호 작용 제어 회복 모듈: DB 갱신 도중 시스템이 고장나도 DB의 일관성을 유지되도록 보장 ACID 원칙 Transaction은 아래 네 가지 특성을 모두 만족해야 한다 ..
기존 DAO 클래스 구성을 보면 코드 양이 상당히 길어지는 단점이 있다. JDBCUtil 클래스를 이용하여 커넥션 연결과 해제 로직을 대체한다고 하더라도 많은 양의 코드가 필요하고, 다른 메소드들을 구현할 때마다 반복해서 작성해야 한다는 단점이 있다. 스프링은 이러한 문제를 해결함과 동시에 JDBC 기반의 DB 연동 프로그램을 쉽게 개발할 수 있도록 JdbcTemplate 클래스를 지원한다. 1. JdbcTemplate 클래스 JDBC의 반복적인 코드를 제거하기 위해 제공하는 클래스. 따라서 DAO 클래스에서는 JdbcTemplate 클래스가 제공하는 템플릿 메소드를 호출하여 DB 연동을 간단하게 처리. JdbcTemplate 클래스 내부적으로 JDBC API를 이용하여 실제 DB 연동 작업을 처리하기 ..

스프링 설정 파일에 엘리먼트를 선언하면 스프링 컨테이너가 AOP 관련 어노테이션들을 인식하고 용도에 맞게 처리해준다. 또한 어드바이스 객체들은 설정 파일에 등록하거나 @Service 어노테이션을 사용하여 컴포넌트가 스캔될 수 있도록 해야한다. 1. 포인트컷 설정 어노테이션 설정으로 포인트컷을 선언할 때는 @Pointcut을 사용한다. 하나의 어드바이스 클래스 안에 여러 포인트컷을 선언할 수 있으며, 여러 포인트컷을 식별하기 위한 참조 메소드가 이용된다. 참조 메소드란 메소드 몸체가 비어있는 메소드로 단순 포인트컷을 식별하는 이름으로만 사용된다. 다음은 어노테이션 기반의 AOP와 XML 설정 기반의 AOP의 설정 차이이다. @Service @Aspect public class LogAdvice { /* 포..

스프링에서는 다음 다섯 가지의 어드바이스 동작 시점을 제공한다 - Before 비즈니스 메소드 실행 전 - After 비즈니스 메소드가 실행된 후, 무조건 실행 (finally) - After Throwing 비즈니스 메소드 실행 중 예외 발생 시 동작 (catch) - After Returning 비즈니스 메소드가 성공적으로 리턴되면 동작 - Around 메소드 호출 자체를 가로채 비즈니스 메소드 실행 전후에 처리할 로직을 삽입할 수 있음 (비즈니스 메소드 실행 전과 후에 모두 동작) Around 어드바이스 동작 예시 - Around 어드바이스 클래스 작성 public class AroundAdvice { public Object aroundLog(ProceedingJoinPoint pjp) throw..