프로시저(procedure)란게 뭔가요?

youngjae6의 이미지

안녕하세요.

아직 진도는 안나갔지만 procedure call이라는 ppt에서

procedure라는것의 의미는 설명이 없고

재귀때 쓰이고(?) 동적할당때 쓰이고 어쩌고 저쩌고 이런식인데

function이랑은 다른 개념인가요??

무엇을 지칭하는지 알고 싶습니다.

익명 사용자의 이미지

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의 차이와는 다릅니다. 공부하시는 와중에 혹시 헷갈리실까봐 첨언합니다.

youngjae6의 이미지

정말 감사합니다!

shint의 이미지

- 윈도우 프로시저'는 운영체제가 호출하는거라고 합니다.
- 오라클 프로시저'도 있습니다. ㅇ_ㅇ;;
- 비동기 프로시저. 로컬 프로시저. 원격 프로시저 등도 있나봅니다.
- 한국어로는 절차 호출'이라고 하나봅니다.

패키지/함수/프로시저 - 리눅스 포털
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

youngjae6의 이미지

정말 감사합니다!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.