프로시저란
- 데이터베이스 내에 저장되어 실행 가능한 SQL 코드 집합
- 특정 작업을 수행하는 SQL 문들을 미리 컴파일해 저장해 둔 것
- 애플리케이션에서 반복적으로 사용되는 복잡한 로직을 DB 내부에 넣고 호출해서 사용
특징
- 컴파일된 코드이기 때문에 일반 SQL문보다 실행 속도가 빠름
- 일련의 SQL문들을 하나의 논리적 단위로 관리 가능
- 파라미터를 받아서 다양한 입력에 대응 가능
- 보통
CREATE PROCEDURE 구문으로 작성
- 여러 개의 SQL문, 제어문(조건문, 반복문) 포함 가능
장점
- 네트워크 왕복 감소, DB 서버 내부에서 실행되어 속도가 빨라 성능 향상에 도움
- 여러 프로그램에서 공통 로직 호출이 가능하므로 재사용 가능
- 애플리케이션에선 직접 SQL문을 다루지 않아 SQL Injection 위험 감소
- 로직 변경 시 프로시저만 수정하면 되므로 유지보수가 용이
- 트랜잭션 처리 용이
단점
- DB 종속적이기 때문에 DB가 변경되면 재작성 필요
- 복잡한 로직이 많아지면 관리 어려움
- 비즈니스 로직이 DB에 너무 많아지면 유지보수가 힘들 수 있음