프로그래밍/Python

함수와 람다 함수: 효율적인 코드 작성을 위한 핵심 도구

shimdh 2025. 2. 25. 10:08
728x90

프로그래밍을 하다 보면 특정 작업을 반복적으로 수행해야 하는 경우가 많습니다. 이때 함수는 코드의 재사용성을 높여주고, 프로그램의 가독성과 유지보수성을 향상시키는 데 아주 중요한 역할을 합니다. 이와 더불어, 간단한 기능을 빠르게 구현할 수 있는 람다 함수는 코드 작성의 효율성을 극대화하는 데 도움을 줍니다.

1. 함수, 왜 사용해야 할까?

함수란 특정 작업을 수행하는 코드 블록을 의미합니다. 마치 레고 블록처럼, 함수는 프로그램의 여러 곳에서 필요에 따라 호출되어 실행될 수 있습니다. 함수를 사용함으로써 얻을 수 있는 주요 이점은 다음과 같습니다.

  • 코드 재사용성 향상: 동일한 코드를 반복해서 작성할 필요 없이, 함수를 한 번 정의해두면 필요할 때마다 호출하여 사용할 수 있습니다.
  • 코드 가독성 증대: 복잡한 프로그램을 여러 개의 함수로 분할하면, 각 함수가 담당하는 기능을 명확하게 파악하기 쉽습니다.
  • 유지보수 용이성: 함수 단위로 코드를 수정하면, 전체 프로그램에 미치는 영향을 최소화할 수 있습니다.
  • 프로그램 효율성 향상: 함수를 사용하여 코드를 모듈화하면, 프로그램의 실행 속도와 메모리 사용량을 최적화할 수 있습니다.

1.1 함수 정의하기

함수를 정의할 때는 def 키워드를 사용합니다. 함수 이름, 매개변수(선택적), 함수 내용(실행할 코드 블록), 그리고 반환 값(선택적)으로 구성됩니다.

def 함수이름(매개변수1, 매개변수2, ...):
    """
    함수에 대한 설명 (docstring)
    """
    # 실행할 코드 블록
    return 반환값 (선택적)

1.2 함수 호출하기

정의된 함수를 사용하려면, 함수의 이름과 함께 괄호 안에 필요한 인수를 전달하여 호출합니다.

함수이름(인수1, 인수2, ...)

1.3 함수 사용 예시: greet 함수

def greet(name):
    """
    이름을 입력받아 인사 메시지를 반환하는 함수
    """
    return f"안녕하세요, {name}님!"

print(greet("홍길동"))  # 출력: 안녕하세요, 홍길동님!

2. 람다 함수, 언제 사용해야 할까?

람다 함수는 익명 함수라고도 불리며, 간단한 함수를 한 줄로 정의하는 데 사용됩니다. lambda 키워드를 사용하여 정의하며, 일반 함수와 달리 이름이 없습니다. 람다 함수는 주로 다음과 같은 경우에 유용합니다.

  • 간단한 기능 구현: 두 수의 합을 구하는 함수처럼, 간단한 연산을 수행하는 함수를 빠르게 정의할 때 유용합니다.
  • 함수 인자로 전달: sorted(), map()과 같은 함수의 key 매개변수에 람다 함수를 전달하여 정렬 기준이나 매핑 규칙을 간결하게 표현할 수 있습니다.
  • 코드 간결성: 복잡한 함수를 여러 줄에 걸쳐 작성하는 대신, 람다 함수를 사용하여 코드를 간결하게 만들 수 있습니다.

2.1 람다 함수 문법

lambda 매개변수1, 매개변수2, ...: 표현식

2.2 람다 함수 사용 예시 1: add 함수

add = lambda x, y: x + y
print(add(3, 5))  # 출력: 8

2.3 람다 함수 사용 예시 2: 리스트 정렬

students = [("홍길동", 25), ("김철수", 22), ("이영희", 23)]
sorted_students = sorted(students, key=lambda student: student[1])
print(sorted_students)  # 출력: [('김철수', 22), ('이영희', 23), ('홍길동', 25)]

3. 함수와 람다 함수 활용 팁

  • 함수: 복잡한 로직을 수행하거나, 여러 번 재사용될 가능성이 있는 코드를 함수로 정의하는 것이 좋습니다.
  • 람다 함수: 간단한 기능을 빠르게 구현하거나, 함수를 인자로 전달해야 하는 경우에 람다 함수를 사용하는 것이 효율적입니다.

함수와 람다 함수는 프로그래밍 능력을 향상시키는 데 필수적인 도구입니다. 적절한 상황에 맞는 함수 형태를 선택하고 활용함으로써, 보다 효율적이고 가독성이 높은 코드를 작성할 수 있습니다.

728x90