함수란?

함수는 코드의 중복된 내용들을 하나의 블록으로 분리하는 작업 과정입니다.
또한 분리된 함수들은 다시 사용할 수 있도록 포장하는 과정이라고 이해하면 쉽습니다.

이렇게 코드들은 함수화 같은 분리 작업을 통해 중복된 소스의 크기를 줄일 수 있는 장점도 있습니다. 또한 이러한 함수형 코드 개발 방법론은 소프트웨어를 고도화함으로써 보다 유지보수가 편리해지고 성능도 향상될 수 있습니다.

대부분의 프로그램은 함수의 집합으로 동작을 합니다. 따라서 어떠한 언어를 통해 프로그램을 개발하기 위해서는 함수의 사용법은 반드시 알아야 하는 필수 프로그램 기법입니다.

함수는 크게 두 가지 종류로 구분할 수 있습니다. 내장 함수, 사용자 정의 함수입니다. 내장 함수는 프로그램 자체적으로 제공되는 기본 함수로 프로그램 언어가 소스 코드를 개발하는 데 필요한 기초적인 기능을 함수화하여 제공합니다.

내장 함수는 언어의 참고 레퍼런스를 통해 찾아볼 수 있습니다. 사용자 정의 함수는 기본적으로 언어에서 제공하는 함수 이외에 자신만의 처리 로직 및 여러 함수의 집합을 사용자가 임의적으로 만들어 사용하는 함수를 말합니다.

함수는 하나의 블랙박스와 같습니다. 값을 입력하면 데이터를 처리하거나 처리한 결과의 값을 출력합니다. 함수는 또 다른 함수를 실행을 할 수 있습니다. 함수의 계층적인 실행으로 먹이사슬처럼 작은 함수들을 먼저 만들고 이를 이용한 좀 더 큰 함수, 그보다 좀 더 큰 함수 형태로 만들어 갑니다. 이러한 과정을 최적화한다고 표현하기도 합니다.