Day 46 · 3/5
🌿 중급 DB

데이터베이스 트리거란?

쉽게 이해하기

현관문 센서와 비슷해요. 누군가 문을 열면 자동으로 조명이 켜지고 알림이 울리는 것처럼, 데이터베이스에서도 데이터가 변경되면 자동으로 정해진 작업이 실행되도록 설정할 수 있어요. 직접 명령하지 않아도 조건에 맞으면 알아서 동작하죠.

핵심 정리

특정 이벤트가 발생하면 자동으로 실행되는 데이터베이스 함수예요.

자세히 알아보기

트리거(Trigger)는 데이터베이스에서 특정 이벤트가 발생했을 때 자동으로 실행되는 저장 프로시저예요. INSERT, UPDATE, DELETE 같은 작업이 일어나기 전(BEFORE) 또는 후(AFTER)에 미리 정의한 로직을 자동으로 실행할 수 있어요. 실무에서는 주로 데이터 검증, 로그 기록, 자동 계산 등에 사용해요. 예를 들어 쇼핑몰에서 주문이 삭제되면 자동으로 재고를 복구하는 트리거를 만들 수 있어요. 또는 회원 정보가 수정될 때마다 변경 이력을 자동으로 기록하는 용도로도 많이 써요. 구체적인 예시를 들면, 게시판에서 댓글이 추가될 때마다 게시글의 댓글 수를 자동으로 업데이트하는 트리거를 만들 수 있어요. 이렇게 하면 애플리케이션 코드에서 일일이 댓글 수를 계산하지 않아도 데이터베이스가 알아서 관리해줘요. 하지만 트리거는 신중하게 사용해야 해요. 트리거가 너무 많으면 데이터 변경 시 어떤 일이 일어나는지 파악하기 어렵고, 성능에도 영향을 줄 수 있어요. 또 트리거 안에서 또 다른 트리거를 실행하는 경우 예상치 못한 무한 루프가 발생할 수도 있죠. 그래서 최근에는 애플리케이션 레벨에서 로직을 처리하는 경우가 더 많아지고 있어요.