Function   함수

(2019-05-23)
1. 프로그램에서, 함수 이란?

  ㅇ 특정 기능을 수행하는 코드의 묶음  ☞ 부프로그램 서브루틴 함수 프로시저 비교 참조

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

  ※ 여러 프로그래밍 언어 상의 함수 例) ☞ C 함수, 자바스크립트 함수 등 참조

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

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

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


3. 함수의 구성 요소

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

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

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

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

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


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

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


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

  ㅇ 값 전달 (Call by Value)
     - 실 매개변수의 값을 형식 매개변수에 전달하는 방법
     - 가장 일반적인 데이터 전달 방법으로, 함수 간의 독립성 유지에 적합한 방식

  ㅇ 참조 전달 (Call by Reference) / 주소 전달 (Call by Address)
     - 실 매개변수주소(l-value, Address)를 형식 매개변수에 넘겨주는 방법
     - 실 매개변수형식 매개변수가 동일 변수 임
        . 例) 주소포인터 타입의 매개변수로 직접 전달
        . 例) 배열의 경우, 배열 이름이 배열 주소이므로 자연스레 주소 전달이 이루어짐

  ㅇ 이름 전달 (Call by Name)


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

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

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


[부프로그램/함수/프로시저] 1. 부 프로그램 2. 함수 3. 함수 선언/정의/호출 4. 함수 인수 5. 콜백 함수 6. 블록 구조 7. 클로저
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램, 프로그래밍
          2. 프로그래밍 기법
      1.   프로그래밍 언어론
            1. 프로그래밍 언어
        1.   구문
        2.   변수
        3.   자료형/데이터형
        4.   부프로그램/함수/프로시저
          1.   1. 부 프로그램
              2. 함수
              3. 함수 선언/정의/호출
              4. 함수 인수
              5. 콜백 함수
              6. 블록 구조
              7. 클로저
        5.   예외,이벤트 처리
      2.   구조적 프로그래밍
      3.   객체지향 프로그래밍
      4.   자료표현코드
      5.   자료구조
      6.   알고리즘
      7.   시스템 소프트웨어
      8.   프로그래밍언어 종류
      9.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록     참고문헌