Transaction3 데드락: 당황하지 말고 줄을 서시오 시작하며;아무 소리가 없던 채널에서 연달아 로그가 쏟아졌다. 심쿵했다. 로그 내용은 아래와 같다. 내용은 MySQL 에서 트랜잭션을 실행하는 도중, 두 개 이상의 트랜잭션이 서로의 리소스를 기다리며 교착 상태가 (Deadlock) 발생했을 때 MySQL 이 이를 해결하기 위해 한 트랜잭션을 강제로 롤백하면서 발생하는 에러라고 한다.Deadlock found when trying to get lock; try restarting transactionDeadlock 이란 무엇인가;MySQL 은 데이터를 변경하거나 조회할 때, 다른 작업과 충돌하지 않도록 잠금을 건다. 예를 들어, 테이블 A의 데이터를 변경 중이라면, MySQL 은 해당 데이터를 다른 트랜잭션이 접근하지 못하도록 잠금을 걸게 된다. 하지만 작.. 2025. 1. 7. AsyncLocalStorage 를 이용한 트랜잭션 데코레이터 구현 시작하며;현재 이집트, 베트남, 인도 등의 국가들을 대상으로 치과 플랫폼에서 백엔드 개발자로 일하고 있다. 치과 플랫폼은 의사가 진료를 보면서도 병원 운영을 쉽고 정확하게 수행할 수 있도록 도움을 줄 수 있다. 치과 플랫폼이 제공하는 주요 기능은 환자 생성부터 진료 예약, 접수, 수납, 그리고 직원 급여 지급, 재무 관리 등이 있다. TypeORM 을 이용한 트랜잭션 데코레이터 예제는 많다. 하지만 회사에서는 mongoose 를 쓰고 있었고 적절한 예제가 없었다. 그래서 더욱 좋았던 것 같다. 한편, 기존 코드는 데이터 정합성을 보장하기 위해 하나 이상의 논리적인 작업을 모두 완벽하게 적용하거나 원상태로 복구하기 위해 아래처럼 트랜잭션을 사용하고 있다. 개발자는 트랜잭션이 필요한 지점마다 startSes.. 2024. 3. 13. [Transaction] 의미와 목적 시작하며;현재 재직 중인 회사에서는 비즈니스 로직 단에서 Transaction 의 처리를 중요하게 보는 것 같다. 그래서 Transaction 이 무엇인지 그리고 무슨 목적으로 사용을 하는 건지 궁금하여 여기에 기록을 남겨둘까 한다. Transaction 이란;예를 들어, 게시판을 읽고 쓰고 삭제해볼게요. "읽기" 로직이 끝나고 다음 "쓰기" 로직이 시작된다. 그리고 이어서 "삭제" 로직이 수행되게 된다. 순차적으로 진행하다면 데이터의 무결성 등이 보장되지만 장기적으로 보면 솔루션/서비스의 속도는 느려질 것이다. DBMS 는 CPU 보다 I/O 작업을 더 빈번하게 수행되기 때문이다. 그래서 순차적으로 수행될수록 CPU 의 idle time 은 길어지고 서비스 제공하는 입장에서도 자연스레 최적의 성능을 제.. 2021. 8. 4. 이전 1 다음