저장 프로시저·함수 기초: PL/SQL, T-SQL, MySQL 문법 비교
급여 인상은 대상 조회, UPDATE, 로그 기록 세 문장입니다. 이 문장들을 DB 안에 이름을 붙여 저장해 두고 한 번의 호출로 실행하는 것이 저장 프로시저입니다. 이 레슨은 프로시저 기본형(입력·출력 파라미터), 변수·IF·반복, 예외 처리, 값 하나를 돌려주는 함수, 호출 방법을 Oracle·MySQL·MSSQL 문법으로 비교합니다.
1. 왜 배우는가
프로시저를 쓰는 이유는 세 가지입니다. 여러 문장을 DB 안에서 한 번에 실행하면 애플리케이션과 DB 사이의 네트워크 왕복이 줄어듭니다. 테이블 권한 없이 프로시저 실행 권한만 주면 정해진 방식으로만 데이터를 바꾸게 할 수 있습니다. 여러 애플리케이션이 같은 규칙을 공유해야 할 때도 쓰입니다.
반대로 피해야 할 때도 분명합니다. 업무 로직이 DB 에 숨으면 Git 버전 관리와 단위 테스트가 어렵고, DB 를 옮길 때 문법을 전부 다시 써야 합니다. 세 DB 의 프로시저 문법은 서로 거의 호환되지 않습니다. 그래서 애플리케이션 개발에서는 업무 로직을 서비스 코드에 두고, 프로시저는 기존 시스템 유지보수나 대량 배치처럼 필요한 곳에만 씁니다.
이 레슨은 실무 06 트랜잭션(COMMIT 과 ROLLBACK)과 중급 05 CASE 를 알면 이해가 쉽습니다. 실무 프로젝트 "백엔드 04 MyBatis 다중 DB" 레슨의 호출 방식과도 이어집니다. 예제는 모두 가상의 사원 8명 데이터입니다.