Stored Procedure로 배치 로직 성능을 개선하고 디버깅 습관을 만든 경험을 정리한 결
인턴 기간에 월별 정산 배치 로직을 Stored Procedure로 작성하는 과제를 맡았습니다. 처음에는 애플리케이션 레이어에서 루프로 돌렸더니 실행 시간이 40분을 넘겼고, SP로 이전해 집합 연산 기반 쿼리로 재작성하니 같은 작업이 3분 이내로 줄었습니다. 트랜잭션 분리 수준과 예외 처리 블록(BEGIN...EXCEPTION...END)을 명시적으로 설정하는 패턴도 이때 익혔습니다. 이후 SP 디버깅이 일반 코드보다 어렵다는 점을 실감했고, 중간 결과를 임시 테이블에 기록해 실행 흐름을 추적하는 습관을 만들었습니다. 성능 문제는 로직 구조를 바꾸는 것만으로도 수십 배 차이가 날 수 있다는 것을 이 경험에서 처음 몸으로 배웠습니다.