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

웨스님의 프로필 이미지

작성한 질문수

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

트랜잭션 사용 유의점

해결된 질문

작성

·

204

0

안녕하세요.

지난번 질문에 빠른 답변감사합니다.

 

트랜잭션 공부 중 주의사항에 대한 블로그 글을 짧게 봤는데요, 트랜잭션은 꼭 필요한 최소의 코드에만 적용하는 것이 좋다는 내용이었습니다. 결제 부분만 트랜잭션을 사용하고 나머지 게시판, 채팅 등 다른 기능 구현시 굳이 트랜잭션 사용 안해도 되는거죠?

답변 1

0

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

안녕하세요! 웨스님!

1.조회에 비하여 일반적으로 등록은 요청 횟수가 적은 이유, 일반적으로 2.등록은 여러테이블에 함께 등록되어야 하는 경우가 많은 이유 등에 의하여, 등록과 관련된 부분은 트랜잭션을 처리해 주시면 좋을 것 같아요!


따라서, 트랜잭션을 하지 않기보단 꼭 필요한 부분에만 범위를 축소하여 사용하실 필요가 있습니다!
예를들면 아래의 로직이 있다고 한다면,
[[ 로그인체크 => 게시글오류체크 => 게시글등록 => 파일등록 => 등록완료알람 ]]

트랜잭션의 범위를 꼭 필요한 부분으로 축소하여 아래와 같이 변경해 주시는게 좋을 것 같아요!
로그인체크 => 게시글오류체크 => [[ 게시글등록 => 파일등록 ]] => 등록완료알람


혹시라도 성능 등의 문제가 예상되는 부분이라 제외하셨다면, 해당 부분은 트랜잭션이 아니더라도 문제 발생시 동기화 방안 및 시스템을 도입해 주시는게 좋습니다!

웨스님의 프로필 이미지
웨스
질문자

네 ^^

설명 감사합니다 ~ !

웨스님의 프로필 이미지

작성한 질문수

질문하기