안녕하세요! 지난 시간에는 리스트와 딕셔너리 내포 표현식을 통해 데이터를 더욱 간결하고 효율적으로 다루는 방법을 배웠습니다. 이제 데이터를 저장하고 조작하는 다양한 도구들을 익히셨을 거예요.
이번 시간에는 프로그래밍의 핵심 개념 중 하나인 **함수(Function)**에 대해 알아보겠습니다. 함수는 특정 작업을 수행하는 코드 덩어리를 하나로 묶어 이름을 붙인 것입니다. 이렇게 묶어두면 코드를 필요할 때마다 다시 작성할 필요 없이, 그 이름만 불러서(호출해서) 재사용할 수 있습니다.
마치 복잡한 요리 과정을 하나의 레시피(함수)로 만들어두고, 필요할 때마다 그 레시피를 보고 요리하는 것과 같습니다. 그럼, 파이썬에서 함수를 어떻게 만들고 사용하는지 함께 살펴볼까요?
Part 1: 함수(Function)란 무엇인가? 왜 사용할까?
함수는 "블록화된 코드" 또는 "재사용 가능한 코드 조각"이라고 할 수 있습니다.
1. 함수의 필요성 (왜 함수를 사용할까요?)
- 코드 재사용(Reusability): 똑같은 작업을 여러 번 반복해야 할 때, 함수로 만들어두면 한 번만 작성하고 여러 곳에서 호출하여 사용할 수 있습니다. 이는 코드의 양을 줄이고 개발 시간을 단축시킵니다.
- 코드 관리 및 가독성(Readability & Maintainability): 복잡한 프로그램을 여러 개의 작은 함수로 나누면, 각 함수가 특정 기능만을 담당하게 되어 코드를 이해하기 쉽고, 문제가 발생했을 때 원인을 찾기(디버깅) 편리합니다.
- 오류 방지(Error Prevention): 한 번 검증된 함수는 계속 재사용될 수 있으므로, 동일한 코드를 반복해서 작성할 때 발생할 수 있는 휴먼 에러를 줄일 수 있습니다.
Part 2: 함수의 정의(Defining) - def 키워드
파이썬에서 함수를 정의할 때는 def (define의 약자) 키워드를 사용합니다.
1. 기본 형식
def 함수이름():
# 함수가 호출될 때 실행될 코드
# 이 부분은 들여쓰기(Indentation) 필수!
- def: 함수를 정의할 때 사용하는 키워드입니다.
- 함수이름(): 함수를 식별하는 고유한 이름입니다. 함수 이름 뒤에는 반드시 괄호 ()를 붙여야 합니다.
- 함수 이름은 변수 이름 짓는 규칙과 유사하게 소문자로 시작하며, 여러 단어는 밑줄(_)로 연결하는 것이 관례입니다. (예: my_function, calculate_sum)
- : (콜론): 함수 이름 괄호 뒤에는 반드시 콜론을 붙여야 합니다.
- 들여쓰기(Indentation): 함수 정의 아래의 코드 블록은 반드시 들여쓰기를 해야 합니다. 이 들여쓰기 된 부분까지가 함수에 속하는 코드입니다.
예시: 간단한 인사말 함수
# 파일 이름: define_function_greet.py
# 'greet' 함수 정의
def greet():
print("안녕하세요!")
print("파이썬 함수를 배우고 있습니다.")
# 이 부분은 함수에 속하지 않습니다.
print("함수 정의가 끝났습니다.")
[VS Code 터미널 출력]

(주의: 이 단계에서는 아직 함수를 '호출'하지 않았으므로, 함수 내부의 print 문은 실행되지 않습니다. 터미널에는 print("함수 정의가 끝났습니다.")만 출력됩니다.)
Part 3: 함수의 호출(Calling) - 함수 실행하기
함수를 정의만 해두면 아무 일도 일어나지 않습니다. 정의된 함수 안의 코드를 실행하려면 해당 함수를 **호출(Call)**해야 합니다. 함수를 호출하는 방법은 간단합니다.
1. 기본 형식
함수이름()
- 함수를 정의할 때 사용한 이름 뒤에 괄호 ()를 붙여주면 됩니다.
예시: 정의된 greet() 함수 호출하기
# 파일 이름: call_function_greet.py
# 'greet' 함수 정의
def greet():
print("안녕하세요!")
print("파이썬 함수를 배우고 있습니다.")
print("함수를 호출하기 전입니다.")
greet() # greet 함수 호출
print("함수 호출이 끝났습니다.")
greet() # greet 함수를 다시 호출
print("프로그램이 완전히 종료되었습니다.")
- greet()를 호출할 때마다 함수 내부에 있는 print 문들이 실행됩니다. greet()를 두 번 호출하면 print 문도 두 번 실행됩니다.
[VS Code 터미널 출력]

Part 4: 함수를 이용한 간단한 계산 예제
함수는 단순히 메시지를 출력하는 것 외에도 다양한 작업을 수행할 수 있습니다. 숫자를 더하는 간단한 함수를 만들어볼까요?
예시: 두 숫자를 더하는 함수
# 파일 이름: add_numbers_function.py
def add_numbers():
num1 = 10
num2 = 20
sum_result = num1 + num2
print(f"두 숫자의 합: {sum_result}")
print("덧셈 함수 호출 전.")
add_numbers() # 함수 호출
print("덧셈 함수 호출 후.")
# 다시 호출하여 같은 작업을 반복 수행
add_numbers()
[VS Code 터미널 출력]

마무리하며
이번 시간에는 파이썬에서 함수를 정의하고 호출하는 기본적인 방법에 대해 알아보았습니다. 함수는 코드의 재사용성을 높이고, 프로그램을 구조화하여 관리하기 쉽게 만드는 프로그래밍의 핵심 개념입니다.
지금까지 배운 변수, 자료형, 연산자, 조건문, 반복문 등은 함수 안에서 다양하게 활용될 수 있습니다. 이제 여러분은 프로그램을 더 크고 효율적인 단위로 쪼개어 만들 수 있는 첫걸음을 내디딘 것입니다!
다음 포스팅에서는 함수에 데이터를 전달하고, 함수가 결과를 반환하는 방법인 **매개변수(Parameter)와 리턴값(Return Value)**에 대해 자세히 알아보겠습니다.
궁금한 점이 있다면 언제든지 질문해주세요! 다음 포스팅에서 만나요!
'Python' 카테고리의 다른 글
4-5. 지역변수 vs 전역변수 (0) | 2025.06.26 |
---|---|
4-4. 람다(lambda) 함수 (0) | 2025.06.26 |
3-6. 리스트/딕셔너리 내포 표현식 (0) | 2025.06.25 |
3-5. 자료구조 메서드 정리 (append, pop, update 등) (0) | 2025.06.24 |
3-4. 세트(Set)의 특성과 중복 제거 (0) | 2025.06.24 |