function과 procedure를 구분하는 경우에는 보통 값을 리턴하느냐 하지 않느냐로 구분합니다. function은 어떤 값을 반환하고 procedure는 반환하지 않습니다. 언어에 따라서는 (예를 들어 파스칼?) function과 procedure를 다른 문법을 사용해서 선언 또는 정의하기도 합니다. 하지만 요새 널리 쓰이는 언어들에서는 문법으로 그 둘을 구분하지는 않고 반환값의 타입을 특정한 타입으로 정해주면 반환값이 없음을 나타내는 방식이 널리 쓰입니다. 예를 들어 C 언어 (또는 C 언어로부터 파생된 문법을 사용하는 언어들, C++/java/C#/...) 에서는 반환값의 타입이 void면 아무 값도 반환하지 않는 것을 나타내지요. 요새는 문법적인 차이만 없는 것이 아니라 딱히 function과 procedure라는 용어를 구분해서 사용하지도 않습니다. 여전히 굳이 그 둘을 구분하려는 책이나 사람도 있기는 하지만 제 생각에는 별 의미 없는 구분입니다. 그냥 예전에는 그런 식으로 구분해서 썼다. 문법적으로 구분하는 언어도 있었다. 요새는 별 구분 없이 그냥 같은 뜻으로 쓴다는 정도로 알고 계시면 될 것 같습니다.
한가지 덧붙이자면 요새 함수형 언어(functional language)가 널리 쓰이면서 "pure function"과 "non-pure function"을 구분하는 경향이 있습니다. side effect가 있느냐 없느냐의 구분입니다. 이 구분은 function과 procedure의 차이와는 다릅니다. 공부하시는 와중에 혹시 헷갈리실까봐 첨언합니다.
http://www.knowledgetransfer.net/dictionary/Storage/en/procedure_call.htm
프로 시저 호출 : 1. 한 가지 일을하는 일반적인 의도로 하나 이상의 명령문 블록으로 그룹화 된 큰 프로그램의 일부로 특정 작업을 수행하는 프로그래밍 방식의 서브 루틴 (함수, 프로 시저 또는 서브 프로그램) 또는 일련의 코드 잘. 2. [SAM-4] SAL 및 STPL이 모두 포함 된 인터페이스에 대해 SCSI 아키텍처 모델에서 사용되는 모델로, 프로그래밍 언어 기능 호출이 나타납니다.
참고 사항 : 클래스 계층 구조
개념
프로 시저 호출은 잠재적으로 시스템 또는 라이브러리 호출로 프로그램 계층 구조 (기계어, 어셈블러, 시스템 호출 및 라이브러리 호출)에 적합하지만 더 높은 수준에있을 가능성이 큽니다.
메시지 처리 함수란 메시지가 발생할 때 프로그램의 반응을 처리하는 일을 하며 WinMain 함수와는 별도로 WndProc이라는 이름으로 존재한다. 윈도우 프로시저(Window Procedure)라는 뜻이지만 통상 읽을 때는 "윈드프록"이라고 읽는다. WndProc은 WinMain에서 호출하는 것이 아니라 윈도우즈에 의해 호출된다. WinMain내의 메시지 루프는 메시지를 메시지 처리 함수로 보내주기만 할 뿐이며 WndProc은 메시지가 입력되면 윈도우즈에 의해 호출되어 메시지를 처리한다. 이렇게 운영체제에 의해 호출되는 응용 프로그램내의 함수를 콜백(CallBack) 함수라고 한다.
function과 procedure를 구분하는
function과 procedure를 구분하는 경우에는 보통 값을 리턴하느냐 하지 않느냐로 구분합니다. function은 어떤 값을 반환하고 procedure는 반환하지 않습니다. 언어에 따라서는 (예를 들어 파스칼?) function과 procedure를 다른 문법을 사용해서 선언 또는 정의하기도 합니다. 하지만 요새 널리 쓰이는 언어들에서는 문법으로 그 둘을 구분하지는 않고 반환값의 타입을 특정한 타입으로 정해주면 반환값이 없음을 나타내는 방식이 널리 쓰입니다. 예를 들어 C 언어 (또는 C 언어로부터 파생된 문법을 사용하는 언어들, C++/java/C#/...) 에서는 반환값의 타입이 void면 아무 값도 반환하지 않는 것을 나타내지요. 요새는 문법적인 차이만 없는 것이 아니라 딱히 function과 procedure라는 용어를 구분해서 사용하지도 않습니다. 여전히 굳이 그 둘을 구분하려는 책이나 사람도 있기는 하지만 제 생각에는 별 의미 없는 구분입니다. 그냥 예전에는 그런 식으로 구분해서 썼다. 문법적으로 구분하는 언어도 있었다. 요새는 별 구분 없이 그냥 같은 뜻으로 쓴다는 정도로 알고 계시면 될 것 같습니다.
한가지 덧붙이자면 요새 함수형 언어(functional language)가 널리 쓰이면서 "pure function"과 "non-pure function"을 구분하는 경향이 있습니다. side effect가 있느냐 없느냐의 구분입니다. 이 구분은 function과 procedure의 차이와는 다릅니다. 공부하시는 와중에 혹시 헷갈리실까봐 첨언합니다.
정말 감사합니다
정말 감사합니다!
참고해보세요.
- 윈도우 프로시저'는 운영체제가 호출하는거라고 합니다.
- 오라클 프로시저'도 있습니다. ㅇ_ㅇ;;
- 비동기 프로시저. 로컬 프로시저. 원격 프로시저 등도 있나봅니다.
- 한국어로는 절차 호출'이라고 하나봅니다.
패키지/함수/프로시저 - 리눅스 포털
https://www.linux.co.kr/home/lecture/index.php?cateNo=&secNo=&theNo=&leccode=10164
함수는 리턴값이 있고, 프로시저는 없다. 사실 프로시저도 리턴값을 패러미터로 받을 순 있다.
C언어에서의 call by reference정도로 생각하면 되겠다.
저장 프로시저
스토어드 프로시저(stored procedure)
https://ko.wikipedia.org/wiki/%EC%A0%80%EC%9E%A5_%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80
http://www.knowledgetransfer.net/dictionary/Storage/en/procedure_call.htm
프로 시저 호출 : 1. 한 가지 일을하는 일반적인 의도로 하나 이상의 명령문 블록으로 그룹화 된 큰 프로그램의 일부로 특정 작업을 수행하는 프로그래밍 방식의 서브 루틴 (함수, 프로 시저 또는 서브 프로그램) 또는 일련의 코드 잘. 2. [SAM-4] SAL 및 STPL이 모두 포함 된 인터페이스에 대해 SCSI 아키텍처 모델에서 사용되는 모델로, 프로그래밍 언어 기능 호출이 나타납니다.
참고 사항 : 클래스 계층 구조
개념
프로 시저 호출은 잠재적으로 시스템 또는 라이브러리 호출로 프로그램 계층 구조 (기계어, 어셈블러, 시스템 호출 및 라이브러리 호출)에 적합하지만 더 높은 수준에있을 가능성이 큽니다.
절차 호출
http://terms.naver.com/entry.nhn?docId=833601&cid=50376&categoryId=50376
절차의 실행을 일으키기 위한 언어 구성 요소.
2-2-라. WndProc
http://soen.kr/lecture/win32api/lec2/lec2-2-4.htm
메시지 처리 함수란 메시지가 발생할 때 프로그램의 반응을 처리하는 일을 하며 WinMain 함수와는 별도로 WndProc이라는 이름으로 존재한다. 윈도우 프로시저(Window Procedure)라는 뜻이지만 통상 읽을 때는 "윈드프록"이라고 읽는다. WndProc은 WinMain에서 호출하는 것이 아니라 윈도우즈에 의해 호출된다. WinMain내의 메시지 루프는 메시지를 메시지 처리 함수로 보내주기만 할 뿐이며 WndProc은 메시지가 입력되면 윈도우즈에 의해 호출되어 메시지를 처리한다. 이렇게 운영체제에 의해 호출되는 응용 프로그램내의 함수를 콜백(CallBack) 함수라고 한다.
http://egloos.zum.com/printf/v/344927
https://m.blog.naver.com/PostView.nhn?blogId=winterwolfs&logNo=10165694656&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
- 윈도우 프로시저 -> CALLBACK 함수
- 일반 함수 = 사용자가 호출하는 함수.
- 콜백 함수 = 운영체제가 호출하는 함수.
https://m.blog.naver.com/PostView.nhn?blogId=kater102&logNo=122081480&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
http://funnymins.tistory.com/entry/%EB%A9%94%EC%8B%9C%EC%A7%80-%EB%A7%B5%EA%B3%BC-%EC%9C%88%EB%8F%84%EC%9A%B0-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80
http://debugjung.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-API
http://dakuo.tistory.com/44
Java 저장 함수/프로시저
https://www.cubrid.org/manual/ko/9.3.0/sql/jsp.html
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
정말 감사합니다!
정말 감사합니다!
댓글 달기