Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- k for k
- 스택
- TS
- javascript
- 파이썬
- firebase
- Python
- 최적화
- 타입스크립트
- 파이어베이스
- 코딩테스트
- 리액트
- 프론트엔드
- JS
- react
- 알고리즘
- 자바스크립트
- stdin vs input
- nodejs
- next Link
- 백준 스택 시간초과 python
- Android
- NPM
- C++
- 백준 스택
- HTML
- CSS
- 안드로이드
- typescript
- kotlin
Archives
- Today
- Total
sooleeandtomas
프로시저와 함수의 차이 본문
컴퓨터 과학 개론 수업 중
'프로시저'와 '함수'의 차이에 대해 듣게 되었다.
먼저, 둘은 부프로그램이라는 뿌리를 갖는다.
" 자주 반복 사용되는 코드 부분을 하나의 단위로 묶어서, 이에 대해 고유의 이름을 정의하고 그 이름을 일반 명령어처럼 사용할 수 있도록 만든 것을 부프로그램이라고 한다. 부프로그램은 함수와 프로시저로 구분된다. 함수와 프로시저는 기능적으로 거의 동일하다."
둘의 차이에 대해 교제에서는
"일반적으로 함수는 함수의 코드부분의 실행 결과값을 돌려주고(return), 프로시저는 결과값을 돌려주지 않는다."
라고 적혀있었다.
여기서 일반적으로라는 키워드가 중요한게, 자칫 잘못 이해하면 프로시저는 결과값을 돌려주지 않는다라고 오해할 수 있을 것 같다.
프로시저도 결과값을 리턴할 수 있다.
프로시저를 함수와 가르는 중요한 포인트는 서버DB에서 만들어 두는 함수라는 것이다.
특1. 쿼리문을 함수화 해서 넣어두는것을 프로시저라고 한다. 이렇게 되면 SQL이 자체적으로 컴파일해서 사용한다고 한다.
만약 쿼리문을 그냥 프로그램 안에 둔다면 요청=>실행=>응답 순이 되어서 요청이 5번이라면 실행도 5번이 된다.
하지만 프로시져라면 요청 => 컴파일 => 실행 =>응답이 되기 때문에 요청이 5번이라면 요청 => 실행(캐시에 저장되어있음) => 응답 이 된다. 훨씬 빠른 속도로 수행이 된다.
*컴파일 된 커리 실행계획을 프로시저 캐시에 저장한다. 캐시에 저장되었단 말은 최적화와 컴파일 작업을 다시 하지 않는다는 이야기, 한 저장 프로시저가 여러번 쓰이는 경우 성능 향상에 도움이 된다.
특2. DB에서 클라이언트에 필요한 데이터의 결과값을 직접 반환해주는 용도로 사용되기도 한다. (프로시저 안에서 if, while 제어문을 사용할 수 있다)
라고 한다.
출처1: db프로그래밍 블로그
출처2: 인생제2장 블로그
출처3: siahn95 블로그
Comments