💥 스프링 트랜잭션 Propagation 과 Isolation 이해하기

스프링의 @Transactional 어노테이션을 사용해보신 적이 있나요? 아시는 분들도 계시겠지만 이 어노테이션은 트랜잭션에 대한 관리를 매우 쉽게 해주지만, 반대로 잘못 쓰게 될 경우 큰 재앙(?)을 불러올 수 있습니다. 그만큼 사용하기 전에 동작방식에 대해 잘 알고 사용해야하는데요, 오늘 소개해드릴 블로그에는 스프링 @Transactional 어노테이션의 동작에 빠질 수 없는 개념인 Propagation 과 Isolation Level 에 대해 자세히 정리되어 있습니다. 블로그 내용을 간략하게 설명 드리면 다음과 같습니다. 📌 Propagation - 트랜잭션의 영역, 바운더리를 지정하는 개념으로 특정 트랜잭션 동작 도중 또다른 트랜잭션을 호출(실행) 하는 상황에서 트랜잭션을 어떻게 동작시킬 것인지 결정할 수 있습니다. (예: 트랜잭션이 적용된 메서드에서 트랜잭션이 적용된 또다른 메서드를 호출했을 경우 어떻게 처리할 것인가를 결정) - 어떻게 결정하느냐에 따라 호출 당한 트랜잭션 입장에서 호출한 쪽의 트랜잭션을 그대로 사용할 수도 있고, 새롭게 트랜잭션을 생성할 수도 있습니다. - @Transactional의 propagation 속성을 통해 지정이 가능합니다. 📌 Isolation Level - 동시 트랜잭션이 수행될때 다른 트랜잭션이 동일한 데이터에 대해서 어떻게 보일지에 대한 범위를 나타내는 개념입니다. - 만약 트랜잭션이 동시에 수행되지 못하도록 막고 순차적으로 수행하도록 한다면 데이터의 정합성은 유지할 수 있지만 성능이 떨어질 수 있습니다. - 따라서 여러 트랜잭션들을 동시에 수행시키면서 데이터의 정합성을 유지시킬 수 있는 적절한 격리 수준을 설정하면 성능적인 이점을 얻을 수 있습니다. 공유드린 링크에 Propagation 의 종류와 동작, Isolation Level 종류와 동작에 대해 자세하게 설명되어 있으니 관심있으신 분들께서는 한번 보시면 좋겠습니다. 🔗 원문 링크: https://devocean.sk.com/blog/techBoardDetail.do?ID=163799

면접 셤? 단골문제 JPA Propagation과 Isolation 이해하기

devocean.sk.com

면접 셤? 단골문제 JPA Propagation과 Isolation 이해하기

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 7월 28일 오전 6:49

 • 

저장 202조회 5,542

댓글 0

    함께 읽은 게시물

    우아한 고성능 프로그래밍 언어 Rust 입문 및 활용 강의 오픈

    또 하나의 강의를 오픈했습니다. 누구나 탄탄하고 효율적인 고성능 소프트웨어를 만들 수 있게 해주는 프로그래밍 언어, Rust를 배우는 강의입니다. 로우레벨 프로그래밍을 할 수 있으면서도 하이레벨 언어기능이 풍부하여 이상적입니다. https://inf.run/LPYW 호기심에 공부를 시작했다가, 이내 빠져들어서, 개인 사이드프로젝트 용도로 잘 활용하고 있습니다. 너무 마음에 들어서 강의로 만들게 되었네요. 언어 기능으로는 함수형 언어로 부를 수 있을 만큼 고급 기능이 많이 들어있... 더 보기

    우아한 고성능 프로그래밍 언어 Rust 입문 및 활용 - 인프런 | 강의

    인프런

    우아한 고성능 프로그래밍 언어 Rust 입문 및 활용 - 인프런 | 강의

    야근의 관성

    제가 한국에서 직장 생활을 시작하고 가장 먼저 배운 것은 아이러니하게도 야근이었습니다. 신입이었던 제게 야근은 선택의 문제가 아니었거든요. 선배들에게 야근은 너무나 당연한 루틴이었고, 저녁 5시가 되면 "퇴근 안 해?"가 아니라 "저녁 뭐 먹을까?"라는 질문을 던졌습니다. 누가 정해놓은 것처럼 부장님이 퇴근해야 과장님이, 과장님이 퇴근해야 대리님이, 대리님이 퇴근해야 비로서 저 같은 신입도 퇴근 생각을 할 수 있었습니다.

    ... 더 보기

     • 

    저장 15 • 조회 3,809


    < 가장 예쁜 사람이 아니라, 1등 할 사람에게 투표하라 >

    1. 유명한 경제학자 케인스는 단기 투자 전략을 미인선발대회에 비유했다.

    ... 더 보기

    간만에 재밌게 읽은 기술 포스트

    ... 더 보기

    무진장 힘들었지만 무진장 성장한 개발 이야기

    Medium

    무진장 힘들었지만 무진장 성장한 개발 이야기

    올해로 개발자 생활이 햇수로 20년째다

    2005년 7월에 일을 시작했으니, 올해로 개발자 생활이 햇수로 20년째다. 중간에 공백이 조금씩 있었으니 꽉 채운 스무 해는 아니지만, 숫자가 주는 무게는 여전하다. 20년이라는 시간이 흘렀다는 사실이 새삼 신기하게 느껴진다.

    ... 더 보기

    성장이 어려운 환경에서의 개발자 생활

    저런 개발자 생활도 한적이 있어서 다양한 생각이 든다.

    “어이 신입, 탈출각이다” | 요즘IT

    요즘IT

    “어이 신입, 탈출각이다” | 요즘IT