1. 아래에 대하여 설명하시오.

  • 트랜잭션 이란?
  • rollback 과 commit 이란?

 

1-1. 트랜잭션

: 논리적 단위 여러 개의 작업 단위가 수행될 때 한 작업이 에러가 날 경우 가장 최근에 commit한 시점으로 되돌리는 기능이다.

  • 원자성: 트랜잭션의 연상은 DB에 모두 반영되거나 아니면 전혀 반영되지 않아야 한다.
  • 일관성: 트랜잭션의 실행을 성공적으로 완료하면 언제나 일관성 있는 DB상태로 변환한다.
  • 독립성: 트랜잭션의 여러 연산시 각각 순차적으로 진행이 시작되거나 끝이 나야한다.
  • 영속성: 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 한다.

 

1-2-1. rollback

: DB의 데이터가 변경되었어도 최근에 commit한 지점까지 되돌릴 수 있는 기능이다. 단, 테이블을 삭제하는 DROP이나 TRUNCATE의 경우 해당 기능을 쓸 수 없다.

 

1-2-2. commit

: DB의 데이터가 변경(UPDATE, INSERT, DELETE 등) 되었을경우, 해당 지점까지 저장하는 기능이다.

 

 

2. 스프링에서의 트랜잭션 처리 방법은?

트랜잭션의 기능이 있는 어노테이션(@Transactional)을 이용하여 예외발생(Checked Exception) 여지가 있는 코드가 있을 경우 rollback 처리가 되게끔 한다.

@Transactional(rollbackFor = Exception.class)

또한 MVC 패턴에서 Controller 영역 내 한 메소드로 여러 기능을 추가해야 할 경우 가급적이면 Service단에서 트랜젝션을 처리해준다. 이는 Controller단에서 트랜잭션 처리가 안되는 경우가 생길 수 있기 때문이다.

'WebDev > 본과정' 카테고리의 다른 글

목표 지향 프로그래밍  (0) 2021.05.17
Spring의 Interceptor와 부트스트랩 프론트엔드 프레임워크  (0) 2021.05.17
RESTful  (0) 2021.05.17
AJAX와 JSON  (0) 2021.05.17
Mybatis를 이용한 Spring MVC 출력 방법  (0) 2021.05.16