Function   함수

(2022-02-02)

1. 프로그램에서, 함수 이란?

  ㅇ 특정 기능을 수행하는 코드의 묶음  ☞ 부프로그램 서브루틴 함수 프로시저 비교 참조
     - 일련의 수행 과정을 문장으로 표현하고, 
     - 이를 코드 블록으로 감싸서,
     - 하나의 실행 단위화 한 것 

  ㅇ 함수는, 프로세스 추상화의 일종 임
     - 복잡한 실행 절차를 구분지어 감싸 묶고, 이를 단순화시켜 이름을 붙인 것

  ※ 한편, 수학 함수와는 달리, 
     - 파라미터(입력),반환값(출력)이 없을 수도 있음

  ※ 한편, 특정 프로그래밍 언어 상의 함수 例) 
     - C 함수, 자바스크립트 함수, PHP 함수, 파이썬 함수 등 참조

  
2. 함수의 장점프로그램 재사용으로 인한 절약
     - 메모리 공간, 코딩 시간의 절약, 프로그램 크기를 줄임 

  ㅇ 가독성 증가 
     - 1개 호출문에 의해 실행
        . 세부사항을 숨기면서 프로그램논리 구조를 강조함
           .. 사용자는 함수 호출이름,매개변수,기능 정도 만을 알면 됨

  ㅇ 유지보수확장성 용이, 문제 해결성 및 분할성 제고, 사용 용이 등


3. 함수의 구성 요소

  ㅇ 이름 (Name)
     - 수행 동작에 이름을 부여함

  ㅇ 매개변수/인수 (Parameter)
     - 함수에게 전달하는 정보

  ㅇ 출력 값 (Return Value)
     - 함수 수행 결과의 반환

  ㅇ 몸체 (Body)
     - 변수 선언 및 실행부

  ㅇ 참조 환경 (Reference Environment)
     - 참조될 수 있는 모든 변수들의 집합으로 그려지는 환경


4. 함수선언/정의/호출/문법

  ※ ☞ 함수 선언, 함수 정의, 함수 호출, 함수 문법 참조
     - 함수 선언 : 일련의 동작을 추상화시켜줌
     - 함수 정의 : 수행 동작을 자세하게 기술
     - 함수 호출 : 함수는 호출을 통해서 만 실행됨


5. 함수에서 매개변수 전달 방법의 종류

  ※ ☞ 매개변수 전달 기법 참조
     - 값 전달 (call by value) : 실 매개변수의 값을 형식 매개변수에 전달
     - 참조 전달 (call by reference) : 실 매개변수의 저장 장소를 전달
     - 이름 전달 (call by name) : 실 매개변수의 이름을 전달


6. [참고사항]고차 함수
     - 함수인수(파라미터)로써 받을 수 있거나, 함수를 반환할 수 있는 함수클로저
     - 자기 자신이 정의된 환경으로부터, 함수 내 자유 변수식별자 결정을 하는 기능 구조

  ㅇ 중첩 함수
     - 함수 내 또다른 함수로써 정의되는 함수메모이제이션
     - 재귀적 함수 호출에서, 중복 계산이 없도록, 한 번 계산된 값을 저장해서,
       프로그램이 빠르게 수행하는 기법

  ㅇ 화살표 함수
     - function 키워드 및 중괄호 {} 를 줄이려고 고안된 단축 문법콜백 함수
     - 함수(또는,객체)를 매개로 전달하고서, 그것으로하여금 역 호출 등을 하게 하는 기법

  ㅇ 함수형 프로그래밍
     - 함수들의 집합/조합으로써 프로그램을 구성

부프로그램/함수/프로시저
   1. 부 프로그램   2. 함수   3. 함수 선언/정의/호출   4. 매개변수   5. 콜백 함수   6. 블록 구조   7. 클로저  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"