//게시판의 게시글을 삭제하는 메서드 
@Transactional
public void removeBoard(Long id) throws Exception { 
		replyDAO.removeAll(id); //삭제할 게시글의 답글 삭제 
		boardDAO.deleteBoard(id); //게시글 삭제 
}

트랜잭션?

1. 정의

데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다.

2. ACID

이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영구성(Durability)을 보장한다. 이 성질을 첫글자를 따 ACID라 부른다.

ACID - 위키백과, 우리 모두의 백과사전

3. 트랜잭션 과정

  1. 트랜잭션 시작
  2. 비즈니스 로직 실행(여러 쿼리들이 실행) (DB내 갱신이 아직 적용되지 않는다)
  3. 트랜잭션 커밋 (트랜잭션이 성공적이며, 갱신이 실제 적용됨)

만약 쿼리 하나가 실패하면, 데이터베이스 시스템은 전체 트랜잭션 또는 실패한 쿼리를 롤백한다.