728x90
DB와 관련된 명령어를 작성하다보면 Procedure(프로시저)에 관한 이야기가 많이 나온다.
위키백과에서는 프로시저를 함수라고 명명하지만 세부적인 의미로는 구별되어서 사용되는데 그 차이를 알아보자.
프로시저(Procedure)의 개념 및 특징
- 프로시저는 절차형 SQL문들을 활용하여 특정 기능을 수행할 수 있는 트랜잭션 언어다.
- 프로시저는 DB에서 어떠한 업무를 수행하기 위한 절차라고 생각할 수 있다.
- 프로시저는 호출을 통해 실행되며 API처럼 여러 어플리케이션들과 공유가 가능하다.
- 특정한 기능을 변경하고자 할 때 프로시저만 변경하면 된다는 편리성이 있다.
- 하나의 요청으로 여러 SQL문을 실행하여 네트워크의 부하를 줄일 수 있는 장점이 있다.
- 프로시저의 사용을 추적 관리하기는 어려워 유지보수에 어려움이 있다.
프로시저의 개념을 보면 함수와 매우 유사하다. 함수의 개념과 특징을 알아보고 그 차이를 표로 나열해보자.
함수(Function)의 개념 및 특징
- 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합이다.
- 프로시저에서 정의하는 각각의 절차들을 수행하는 단위가 각각의 함수라고 할 수 있다.
- 즉 로직을 구성하는 각 부분의 기능이라고 생각할 수 있다.
Procedure(프로시저)와 Function(함수)의 차이
프로시저 | 함수 |
특정한 작업을 수행한다. | 특정한 계산을 수행한다. |
리턴값을 가질 수도 있고 안가질 수도 있다. | 리턴값을 반드시 가진다. |
서버(DB)에서 기술한다. | 화면(Client)에서 기술한다. |
수식 내에서 사용이 불가능하다. | 수식 내에서만 사용이 가능하다. |
단독으로 문장 구성이 가능하다. | 단독으로 문장 구성이 불가능하다. |
함수는 프로시저를 포함하고 있는 개념이다.
특히 프로시저를 포함한 여러개의 함수들이 모여서 하나의 프로그램을 이루도록 하는 것을 절차지향적 프로그래밍이라고 한다.
참고사이트
https://benggri.tistory.com/76
https://seohee-ha.tistory.com/125
728x90