본문 바로가기
TYLER SONG2026
블로그 목록
computer science

함수: 코드의 재사용성과 모듈화를 위한 핵심 도구

함수는 특정 작업을 수행하는 코드 블록을 의미하며, 코드 중복을 줄이고 가독성을 높여 유지보수를 용이하게 한다. 입력(parameter)을 받아 처리하고 출력(return value)을 반환하는 방식으로 동작한다. 프로그래밍의 모든 영역에서 핵심적인 역할을 담당한다.

송민성2분 읽기

1. 개념

함수(function)는 특정 작업을 수행하는 코드 블록이다. 입력값(argument 또는 parameter)을 받아 정의된 로직을 실행하고, 결과값(return value)을 반환할 수 있다. 함수는 프로그램 구조를 잘게 나눠 같은 코드를 여러 번 쓰게 해준다.

2. 왜 사용하는가

  • 코드 재사용: 같은 작업을 여러 번 해야 할 때 함수로 정의해두면 코드를 반복하지 않고 호출만 하면 된다.
  • 모듈화와 가독성: 복잡한 로직을 작은 함수로 쪼개면 읽기도 고치기도 쉬워진다.
  • 추상화: 내부 구현은 숨기고 인터페이스(입력과 출력)만 드러내므로, 쓰는 쪽은 속을 몰라도 간편하게 쓸 수 있다.

3. 동작 원리

함수를 호출하면 프로그램은 그 함수가 정의된 위치로 이동해 코드 블록을 실행한다. 이때 호출 스택(call stack)에 현재 함수 정보를 저장하고, 함수 안에서 또 다른 함수를 호출하면 그 정보도 스택에 쌓인다. 함수가 끝나면 스택에서 제거되고 원래 호출 지점으로 돌아간다.

4. 코드 예제 (Python)

python
def greet(name): """ 이름을 입력받아 인사말을 출력하는 함수입니다. """ return f"안녕하세요, {name}님!" # 함수 호출 및 결과 출력 message = greet("철수") print(message) # 출력: 안녕하세요, 철수님!

5. 시간 복잡도 또는 성능 특성

함수의 시간 복잡도는 내부 로직에 따라 달라진다. 단순한 연산만 하는 함수는 O(1) 상수 시간에 끝나지만, 반복문이나 재귀 호출이 들어가면 그만큼 복잡도가 올라간다. 호출 자체에도 오버헤드가 있어서, 지나치게 잦은 호출은 성능을 떨어뜨린다.

6. 실무 사용 사례

  • API 엔드포인트 처리: 웹 서버에서 특정 URL 요청을 처리하는 로직을 함수로 구현한다.
  • 데이터 가공: 데이터베이스에서 가져온 데이터를 원하는 형태로 변환하는 함수를 작성한다.
  • UI 컴포넌트 이벤트 핸들러: 버튼 클릭이나 텍스트 입력 같은 사용자 인터페이스 이벤트를 처리하는 함수를 정의한다.

7. 주의할 점

  • 함수 이름: 좋은 이름은 함수의 목적을 그대로 드러낸다.
  • 입력과 출력: 무엇을 받고 무엇을 반환하는지 분명해야 쓰는 쪽이 헷갈리지 않는다.
  • 사이드 이펙트(side effect): 함수 외부의 상태를 바꾸는 코드는 되도록 피한다. 사이드 이펙트가 있으면 결과를 예측하기 어려워지고 디버깅도 힘들어진다.
  • 재귀 호출: 재귀 호출은 강력하지만, 잘못 사용하면 스택 오버플로우(stack overflow)로 이어진다.

8. 핵심 정리

함수는 프로그래밍의 기본 구성 요소이고, 코드를 다시 쓰고 나누고 읽기 쉽게 만드는 데 빠질 수 없다. 함수를 잘 설계하면 프로그램 성능과 유지보수성이 함께 올라간다.

© 2026 Tyler Song