트랜잭션 기능 분리
generate for chapter 6.1