개발/Python

[초급반] Step 7. 함수(Function) 정의 및 활용: 코드를 모듈화하는 방법

ophelisis 2025. 12. 16. 17:43
반응형

안녕하세요! 파이썬 학습 일곱 번째 시간입니다. 지금까지 우리는 파이썬의 기본적인 문법과 자료 구조를 모두 마스터했습니다.

이제 이 지식들을 효율적으로 엮어 크고 복잡한 프로그램을 만들기 위한 가장 중요한 개념인 **함수(Function)**에 대해 알아보겠습니다. 함수는 코드를 재사용 가능한 블록으로 만들어 코드의 가독성과 유지보수성을 극대화합니다.


1. 함수란 무엇인가?

함수는 특정 작업을 수행하도록 미리 정의된 코드 블록입니다. 마치 자판기처럼, **입력(Input)**을 받아서 정해진 작업을 처리하고 **출력(Output)**을 돌려주는 역할을 합니다.

💡 함수를 사용하는 이유

  1. 재사용성 (Reusability): 같은 코드를 여러 번 복사/붙여넣기 할 필요 없이, 함수 이름만 호출하면 됩니다.
  2. 모듈화 (Modularity): 프로그램을 기능별로 나누어 관리하기 때문에 코드를 이해하기 쉽고, 수정이 용이합니다.
  3. 오류 방지: 한 곳에서만 수정하면 되기 때문에 오류 발생 가능성이 줄어듭니다.

2. 함수 정의 및 기본 구조

파이썬에서 함수는 def 키워드를 사용하여 정의합니다.

Python
 
# 1. def 키워드와 함수 이름
def welcome_message(name): 
    # 2. 매개변수 (parameter): 함수가 외부에서 받는 입력값
    
    # 3. 함수 본문 (들여쓰기 필요)
    print(f"안녕하세요, {name}님. 환영합니다!")

# 4. 함수 호출 (call): 함수를 사용하기 위해 정의된 이름과 인자(argument)를 전달
welcome_message("Alice") 
welcome_message("Bob")
# 결과:
# 안녕하세요, Alice님. 환영합니다!
# 안녕하세요, Bob님. 환영합니다!

규칙: 함수 정의 시에도 if/for와 마찬가지로 def 뒤에 **콜론(:)**을 붙이고, 함수 본문은 반드시 들여쓰기 해야 합니다.

3. 입력과 출력: 매개변수와 반환 값

3-1. 매개변수 (Parameters)

함수가 외부로부터 받는 입력값을 매개변수라고 합니다. 함수 호출 시 전달하는 실제 값은 **인자(Argument)**라고 부릅니다.

3-2. 반환 값 (return)

함수가 작업을 완료한 후 그 결과를 호출자에게 되돌려줄 때 return 키워드를 사용합니다. return이 실행되는 즉시 함수는 종료됩니다.

Python
 
def add_and_multiply(num1, num2):
    sum_result = num1 + num2
    product_result = num1 * num2
    
    # 두 개의 값을 튜플 형태로 반환합니다. (Step 5 참조)
    return sum_result, product_result 

# 함수 호출 및 반환 값 받기
total, multiplied = add_and_multiply(10, 5)

print(f"합계: {total}, 곱셈: {multiplied}") # 결과: 합계: 15, 곱셈: 50

만약 return이 없다면? 함수는 자동으로 None이라는 값을 반환합니다.

4. lambda 함수: 한 줄짜리 익명 함수

파이썬에는 매우 간결하게 함수를 정의하는 방법이 있습니다. lambda 함수는 이름이 없는(익명) 함수이며, 주로 간단한 기능을 한 줄로 표현할 때 사용됩니다.

💡 lambda 함수의 구조

Python
 
lambda 매개변수1, 매개변수2, ... : 반환될 표현식
Python
 
# 일반 함수
def square(x):
    return x * x

# lambda 함수로 변환
square_lambda = lambda x: x * x

print(square_lambda(4)) # 결과: 16

lambda 함수는 리스트를 정렬하거나(sort) 특정 함수를 다른 함수의 인자로 전달할 때 매우 유용하게 사용됩니다.

5. 변수의 범위: 지역 변수와 전역 변수

파이썬에서 변수는 선언된 위치에 따라 유효한 범위가 결정됩니다.

  • 지역 변수 (Local Variable): 함수 내부에서 선언된 변수입니다. 함수가 종료되면 사라지며, 함수 외부에서는 접근할 수 없습니다.
  • 전역 변수 (Global Variable): 함수 **외부(최상단)**에서 선언된 변수입니다. 프로그램 전체에서 접근 가능합니다.
Python
 
global_var = 100 # 전역 변수

def my_function():
    local_var = 50 # 지역 변수
    print(global_var) # 함수 내부에서 전역 변수 접근 가능

my_function()
# print(local_var) # 오류 발생! local_var는 함수 밖에서 접근 불가능
반응형