MVC 디자인 페턴에서 Model은 크게 Service Layer
과 Data Access Layer
로 구성된다.
여기서 DAL계층은 Entity
와 함께 DB 영역에서 SQL처리를 담당한다.
만일 데이터에 문제가 발생할 경우 어떻게 처리되는가?
데이터가 DB에 저장된 시점에서 데이터를 다시 호출하여 수정하는 것은 비효율적이다.
때문에 로직의 중간에서 데이터를 작업 할 수 있는 Transaction
로직을 추가해 줘야한다.
공식적으로 이러한 로직을 Service Layer
라고 부른다.
Controller Layer
에서 넘겨받은 데이터는 중간 작업이 필요한경우 Service Layer
을 거치게된다.
여기서 중간 작업은 데이터를 집계 / 수정 / 삭제 등의 작업이며 이를 비즈니스 로직
이라고 부른다.
이러한 로직은 중복적인 로직의 단순화
, 트렌잭션 제어 용이
특성을 가진다.
Service Layer 정의 (책 JPA 프로그래밍) 서비스 계층에는 비즈니스 로직이 있고 트랜잭션을 시작한다.
서비스 계층은 데이터 접근 계층인 레포지토리 를 호출한다.
정보처리기사
에서는 DB의 상태를 변경하기 위한 논리적 기능 수행의 작업 단위
혹은 일련의 연산
을 의미한다.
하나의 트랜잭선은 Commit
과 Rollback
이 가능하다.
commit
상태로 간주될 수 있다.스프링 프레임워크는 해당 어노테이션이 붙어있는 클래스나 메소드에 트랜잭션을 적용한다.