프로그래밍 기타 용어

(2021-07-27)

Memoization, 메모이제이션, 꼬리 재귀, make 빌드, Lambda Expression, 람다 표현식

1. 메모이제이션 (Memoization)재귀적 함수 호출에서, 중복 계산이 없도록, 한 번 계산된 값을 저장해서,
     프로그램이 빠르게 수행하는 기법
     - 즉, 그때그때의 계산결과를 저장하고, 다음 계산에 이를 사용함

  ㅇ 주요 구현 방식
     - 함수에서, 주어진 매개변수에 의해 연산을 할 때 마다,
        . 그 결과 값을 주어진 매개변수를 키 값으로 하는 캐시에 저장해 두고,
     - 후에, 이 함수가 같은 매개변수로 호출되면, 
        . 같은 연산을 하는 대신에, 기존에 저장된 캐시의 값을 반환하게 함


2. 꼬리 재귀 (Tail Recursion)재귀 함수를 호출할 때, 스택 메모리를 재사용하면서 메모리를 과도하게 사용하지 않도록,
     최적화 하는 방법


3. 디자인 패턴 (Design Pattern)

  ㅇ 모든 프로그램 형식에 일반적으로 적용 가능한,
     - 자료 구조프로그램 구조를 다루는 이론


4. 코드 리펙토링 (Code Refactoring)

  ㅇ 기존 코드와 동일한 임무를 수행하되, 좀 더 효율적이고 우아하게 작동되도록 고치는 것


5. 리액티브 프로그래밍 기법 (Reactive Programming)데이터 흐름(data flow)과 변경 전파(propagation of change)에 촛점을 둔 프로그래밍 기법


6. make 빌드

  ㅇ 빌드 바이너리를 생성하기 위한 기본 규칙을 제공하는 빌드 도구
  ㅇ 빌드 프로세스 : 소스 파일에서 실행 파일로의 빌드 구축
      - 전처리 -> 컴파일 -> 어셈블라 -> 링크프로그램 소스와 이미 컴파일라이브러리에서, 어플리케이션라이브러리를 구축할 때 유용


7. 람다 표현식, 람다식 (Lambda Expression)함수를, 하나의 식(Expression) 그 자체로써 표현한 것
     - 따라서, 함수람다식으로 표현하면, 이름이 필요 없으므로,
     - 람다식은, 익명 함수(Anonymous Function)의 형태 임

  ㅇ 특징
     - [장점]
        . 코드의 간결성 (불필요한 반복문 대신 사용, 복잡한 식을 단순하게 표현 가능)
        . 표현식 자체에 개발자의 의도가 명확히 드러나, 가독성이 높아짐
        . 병렬프로그래밍 용이 (멀티 스레드 활용 가능)
     - [단점]
        . 람다에 의한 익명함수는 재사용 불가능해짐
          .. (람다의 남발은 유사 함수의 중복 생성으로 코드가 지저분해짐)
        . 디버깅이 다소 어려움
        . 재귀로 만들기에 부적합
 

8. 익명 함수 (Anonymous Function)함수의 이름이 없는 함수로써, 익명함수들은 모두 일급 객체이다.
     - (일급 개체 : 일급 함수변수처럼 사용가능하며, 매개 변수로 전달이 가능하는 등)


[프로그래밍 기타일반] 1. 프로그래밍 기타 용어 2. 래퍼 함수 3. 핸들 4. 플러그인 5. 템플릿 6. 히어 도큐먼트

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