인프런 커뮤니티 질문&답변

반가우면반갑다고해님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

12-04 Transaction - Isolation 1

트랜잭션 queryRunner 더러운 읽기 , 반복 못하는 읽기 기타 등등 질문있습니다.

해결된 질문

24.06.26 00:50 작성

·

117

·

수정됨

0

예시 코드를 보면 트랜잭션 이용해서 조회하고, 작성하고 하시는데 이거는 예시를 위해서 그렇게 하신걸까요?

 

실무에서는 한가지 작업할 때는 트랜잭션 사용안하고 바로 디비에 저장하고, 조회하고 하는걸까요?

 

 

답변 2

1

노원두님의 프로필 이미지
노원두
지식공유자

2024. 06. 28. 10:26

안녕하세요! 반가우면반갑다고해님!

해당 코드들은 더러운읽기를 제외하고는 모두 실제로 발생 가능한 여러상황을 담은 예시들이랍니다!^^
따라서, 현재 직면한 상황에 따라서 모두 사용 가능하며, 실제로 실무에서 사용되는 방식들이에요!^^

현재 어떤 로직을 처리하고 있는지 비즈니스 상황을 고려하시어, 적절하게 대응해 주세요!^^

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 28. 00:56

안녕하세요, 인프런 AI 인턴입니다.

트랜잭션의 사용 여부는 작업의 성격과 요구사항에 따라 달라집니다. 예시코드에서 트랜잭션을 사용하는 것은, 여러 데이터베이스 작업을 하나의 작업 단위로 묶어 일관성을 유지하고, 작업 중에 오류가 발생했을 때 모든 작업을 원래 상태로 되돌릴 수 있기 때문일 수 있습니다. 실무에서도 이러한 트랜잭션의 원칙은 동일하게 적용됩니다.

하나의 작업만 수행한다고 하더라도, 예를 들어 데이터를 조회한 후 이를 바탕으로 복잡한 로직을 처리하고 결과를 다시 데이터베이스에 저장하는 과정 등 혼자 실행될 때에도 일관성이 중요한 경우가 많습니다. 이러한 경우에도 트랜잭션을 사용하여 데이터의 일관성과 안전성을 보장합니다.

단순히 한 가지 데이터를 저장하거나 조회하는 등의 간단한 작업이고, 그 작업에 대해 별도의 일관성 유지나 롤백 처리가 필요 없다면 트랜잭션을 사용하지 않을 수 있습니다. 하지만 실무에서는 데이터의 무결성과 일관성을 위해 트랜잭션을 적절히 사용하는 것이 중요합니다.

결과적으로 트랜잭션 사용 여부는 해당 작업의 성격, 데이터의 중요성, 실행 환경 등을 고려하여 결정되어야 합니다.