반응형
프로시저(Stored Procedure)는 데이터베이스 관리 시스템(DBMS) 내에 저장되고 실행되는 하나 이상의 SQL 문 및 PL/SQL 코드의 모음입니다. 프로시저는 특정 작업을 수행하거나 비즈니스 로직을 캡슐화하여 데이터베이스 내에서 반복적으로 사용할 수 있는 프로그램 단위입니다.
주요 특징 및 장점
- 재사용성:
- 한 번 작성된 프로시저는 여러 번 호출하여 사용할 수 있습니다. 이는 코드의 중복을 줄이고 유지보수를 쉽게 합니다.
- 캡슐화:
- 복잡한 비즈니스 로직을 프로시저로 캡슐화하여 데이터베이스 레이어에 숨길 수 있습니다. 이는 애플리케이션 코드와 데이터베이스 로직을 분리하여 시스템의 모듈화를 촉진합니다.
- 성능 향상:
- 프로시저는 데이터베이스 서버 내에서 실행되므로 네트워크를 통해 데이터를 주고받는 오버헤드를 줄일 수 있습니다. 또한, 프로시저는 미리 컴파일되므로 반복 호출 시 실행 속도가 빠릅니다.
- 보안 강화:
- 프로시저를 통해 데이터베이스 접근을 제어할 수 있습니다. 사용자는 프로시저를 통해서만 데이터를 조작할 수 있으므로, 직접적인 SQL 문 실행보다 보안성이 높습니다.
- 트랜잭션 관리:
- 프로시저 내부에서 트랜잭션을 관리할 수 있습니다. 여러 SQL 문을 하나의 트랜잭션으로 묶어 원자성을 보장할 수 있습니다.
프로시저의 구성 요소
- 헤더: 프로시저의 이름과 매개변수를 정의합니다.
- 본문: 프로시저가 수행할 SQL 문과 PL/SQL 코드로 구성됩니다.
- 예외 처리: 프로시저 실행 중 발생할 수 있는 예외를 처리하는 블록입니다.
기본 예제
CREATE OR REPLACE PROCEDURE greet_user (p_name IN VARCHAR2)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, ' || p_name || '!');
END;
- 헤더: CREATE OR REPLACE PROCEDURE greet_user (p_name IN VARCHAR2) 부분으로 프로시저의 이름(greet_user)과 입력 매개변수(p_name)를 정의합니다.
- 본문: BEGIN ... END; 블록 내에 프로시저가 수행할 작업을 정의합니다. 여기서는 DBMS_OUTPUT.PUT_LINE를 사용하여 사용자에게 인사말을 출력합니다.
프로시저 호출방법
프로시저를 호출하려면 'EXEC' 또는 'CALL' 문을 사용합니다.
EXEC greet_user('Alice');
CALL greet_user('Alice');
프로시저는 데이터베이스 작업을 단순화하고, 일관되게 관리할 수 있는 강력한 도구입니다.
다음엔 좀더 자세하게 프로시저 사용법에 대해 알려드리겠습니다.감사합니다.
반응형