@Transactional
-
@Transactional 애너테이션에 대하여스터디 노트 2023. 12. 4. 13:09
스프링 프레임워크에선 데이터베이스 트랜잭션 기능을 사용할 수 있는 Transactional 애너테이션을 제공합니다. 이 애너테이션은 JPA가 아닌 스프링 프레임워크에서 제공하는 기능입니다. 트랜잭션은 영속성 프레임워크의 종류와 상관없는 관계형 데이터베이스의 기능이기 때문에 JPA/Hibernate도 결국 SQL쿼리로 데이터를 영속하므로 트랜잭션을 사용할 수 있지요. 다음은 Transactional 애너테이션 코드입니다. @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface Transactional { ... } Transactional ..
-
Transaction이 뭐길래?스터디 노트 2023. 10. 19. 13:25
개발을 하다보면 늘 듣는 말이 있습니다. '트랜잭션 관리를 잘 해야 해!' 대체 트랜잭션이 무엇이길래 우리는 트랜잭션 관리를 해야만 하는 걸까요? 📌 트랜잭션(Transaction)이 대체 뭐길래? 그럼 트랜잭션이라는게 대체 뭘까요? 트랜잭션의 사전적 의미는 '데이터베이스의 상태를 변화시키기 위한 수행 작업의 단위, 즉 더 이상 쪼갤 수 없는 최소 작업 단위를 말한다'입니다. 그래서 트랜잭션의 최종 단계는 'commit'또는 'rollback' 중 하나가 되어야 합니다. 만약 비즈니스 처리가 모두 성공한다면? 트랜잭션의 결과는 'commit'의 성공이 되어야 합니다. 만약 비즈니스 처리가 중간에 실패한다면? 트랜잭션의 결과는 'rollback'으로 실패되어야 합니다. 즉, 비즈니스 로직이 실행 중 어떠한..