파이썬/기초 프로그래밍

일급 객체(First-class Object)란 무엇일까?

Data Jun 2025. 9. 7. 21:34

프로그래밍 언어에서 자주 나오는 개념 중 하나가 바로 일급 객체입니다. 어렵게 들리지만, 사실 핵심은 값처럼 자유롭게 다룰 수 있느냐에 있어요.

 

1. 일급 객체의 최소 조건 3가지

어떤 대상이 일급 객체라 불리려면 보통 아래 세 가지 조건을 만족해야 합니다.

  • 변수에 담을 수 있다
  • 함수의 인자로 전달할 수 있다
  • 함수의 반환값으로 사용할 수 있다

이 3가지를 충족하면, 그 언어에서 해당 대상은 “일급 객체”입니다.

 

2. Python 예시로 보기

1️⃣ 변수에 담을 수 있다

def greet(name):
    return f"Hello, {name}"

say_hello = greet  # 함수 → 변수에 담기
print(say_hello("미영"))  
# 출력: Hello, 미영

 

2️⃣ 함수의 인자로 전달할 수 있다

def run_twice(func, value):
    return func(value) + " / " + func(value)

print(run_twice(greet, "ChatGPT"))  
# 출력: Hello, ChatGPT / Hello, ChatGPT

 

3️⃣ 함수의 반환값으로 사용할 수 있다

def outer():
    def inner():
        return "나는 inner 함수!"
    return inner   # 함수 자체를 반환

f = outer()
print(f())  
# 출력: 나는 inner 함수!

 

 

 

정리하면

  • 일급 객체란 → 변수에 저장, 인자로 전달, 반환값으로 사용 가능한 객체
  • 함수가 일급 객체라면, 함수도 숫자나 문자열처럼 자유롭게 다룰 수 있음
  • 덕분에 고차 함수, 콜백, 함수형 프로그래밍 같은 강력한 기능이 가능해짐