정의
사용자 정의 함수(英: user‑defined function)는 프로그래밍 언어에서 프로그램 작성자가 직접 선언하고 구현한 함수를 의미한다. 미리 정의된 내장 함수와 달리, 동작이나 이름, 매개변수 목록 등을 사용자가 자유롭게 결정한다.
개요
함수는 입력값(인자)을 받아 일정한 연산을 수행한 뒤 결과값을 반환하는 코드의 단위이다. 대부분의 현대 프로그래밍 언어는 기본적인 연산을 수행하는 내장 함수를 제공하지만, 복잡한 로직이나 응용 프로그램 특유의 처리를 위해서는 사용자가 직접 함수를 정의해야 한다. 이러한 함수를 ‘사용자 정의 함수’라 부르며, 모듈화·재사용·가독성 향상 등의 목적을 위해 활용된다.
어원/유래
‘사용자 정의 함수’라는 용어는 영어 표현 user‑defined function을 직역한 것으로, 20세기 후반부터 객체지향·절차형 프로그래밍 언어가 보편화되면서 널리 사용되기 시작했다. 정확한 최초 사용 시점이나 출처에 대한 확정된 기록은 확인되지 않는다.
특징
- 독립적 선언·정의
- 함수의 이름, 매개변수 목록, 반환 타입(있는 경우) 등을 프로그래머가 명시한다.
- 재사용성
- 한 번 정의한 함수를 프로그램 내 여러 위치에서 호출함으로써 코드 중복을 줄일 수 있다.
- 스코프(범위)
- 정의된 위치에 따라 전역(global) 혹은 지역(local) 스코프를 갖는다.
- 다양한 반환 형태
- 반환값이 없을 수도 있고, 단일 값, 복합 자료형, 혹은 객체를 반환할 수도 있다.
- 재귀 호출 가능
- 함수 내부에서 자신을 다시 호출하는 재귀(recursion)가 허용되는 경우가 많다.
- 언어별 문법 차이
- C/C++:
return구문을 사용해 결과를 반환한다. - Python:
def키워드로 정의하고,return문으로 값을 반환한다. - JavaScript:
function키워드 또는 화살표 함수(=>) 문법을 사용한다.
- C/C++:
관련 항목
- 함수 (Function)
- 내장 함수 (Built‑in function)
- 프로시저 (Procedure)
- 모듈 (Module)
- 라이브러리 (Library)
- 스코프 (Scope)
- 재귀 (Recursion)
- 매개변수 (Parameter)
- 반환값 (Return value)