"송금 버튼을 누르는 순간 앱이 멈췄습니다. 내 계좌에서는 1만 원이 차감됐는데, 친구 계좌에는 입금되지 않았다면 어떻게 될까요?" 우리가 개발하는 프로그램이나 서비스는 언제나 완벽하게 끝까지 실행될 것이라 기대하지만, 현실은 다릅니다. 서버 장애, 네트워크 오류, 데이터베이스 문제 등으로 인해 프로그램은 언제든 중간에 멈출 수 있습니다. 이때 가장 위험하고 치명적인 상황은 '시작 전' 상태도 아니고 '완료' 상태도 아닌, 자동문이 절반만 열리고 멈춘 것과 같은 '어중간한 상태'로 데이터가 남는 것입니다. 이러한 최악의 데이터 불일치 상황을 방지하고, 결과를 신뢰할 수 있게 만들어주는 데이터베이스의 최후의 보루가 바로 트랜잭션(Transaction)입니다. 오늘은 백엔드 개발자라면 반드시 알아야 할 트랜..