본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
함수의 개념과 활용
함수(Function)
- 하나의 단위로 패키지 된 특정 작업을 수행하는 프로그램 명령 시퀀스
- 프로그램의 품질과 신뢰성을 높이며 유지보수 비용을 대폭 절감할 수 있음
함수의 정의
- def {function_name}({parameters}) : 로 함수의 정의 시작
- 들여쓰기(indent)로 기존 코드와 구분됨
- 매개변수가 없을 경우, 생략 가능
- 반환값이 없을 경우, 생략 가능
- '함수의 정의'로는 실제 명령문이 실행되지 않음
- 동일한 함수명으로 정의할 경우, 함수가 재정의 됨
- 함수는 반환되는 순간 종료됨(return statement)
함수의 호출
- 정의한 함수를 실제로 사용
- function_name(arguments) 형태로 호출
- 매개변수(parameter) : 함수의 정의에 사용되는 변수명
- 인자(argument) : 함수의 호출 시 전달되는 실제 값 - 결과값을 변수에 저장할 수 있음
함수의 활용
- 코드 재사용성 증가
- 가독성 향상
- 유지보수성 향상
- 재귀호출
※ 재귀 호출 주의사항
- 종료 조건 필수
- 잘못 설계하면 스택 오버플로우
- 반복문보다 직관적인 경우에만 사용
def sum(num1, num2):
print(f"첫 번째 숫자: {num1}")
print(f"두 번째 숫자: {num2}")
return num1 + num2
함수명(function name)
함수 바깥에서 해당 함수를 호출하기 위한 식별자
매개변수(parameters)
함수가 실행되는데 필요한 변수
(num1, num2)
- 매개변수도 변수이기 때문에 다양한 형태의 값을 전달할 수 있음.
- 함수 정의에 따라서 매개변수를 전달하지 않은 것도 가능.
- 하나의 값이 아니라 여러 개의 값을 동시에 정의해서 전달하는 것도 가능.
본문(function body)
함수가 호출되었을 때 실행될 명령문의 집합
print(f"첫 번째 숫자: {num1}")
print(f"두 번째 숫자: {num2}")
- 전체적인 생산성이 향상되는 '코드의 재사용'을 위해 본문을 재사용 가능하도록 잘 구성해야함.
- 잘 정의된 함수는 반복적으로 사용될 수 있는 코드를 하나의 함수로 대체할 수 있게 만들어주기 때문에 전체 코드의 양을 줄이고, 신뢰할 수 있게 작성된 함수는 전체 프로그램의 짜임새를 높여줌.
반환값(return value)
함수 실행이 완료된 후 함수를 호출한 곳에 반환할 결과값
사실 '함수'라는 개념은 프로그래밍을 배우기 전부터 여러 분야에서 이미 익숙하게 접해왔죠. y=f(x) 형태의 함수 말입니다. 함수는 어떤 값 x가 주어졌을 때, 정해진 규칙에 따라 하나의 결과 y를 반환하는 관계를 의미하죠. 중요한 점은, 같은 입력값이 들어오면 항상 같은 결과가 나온다는 겁니다. 즉, 함수는 입력값과 출력 사이의 일관된 규칙을 정의한 개념이라고 볼 수 있습니다.
이 개념을 조금 더 확장해 보겠습니다. 함수는 단순히 숫자 계산에만 국한되지는 않죠. 어떤 값이 들어오면, 그 값에 대해 미리 정의된 과정을 거쳐 결과를 만들어내는 블랙박스와 같다고 볼 수 있죠. 우리는 함수 내부에서 어떤 계산이 이루어지는지 몰라도, 입력과 출력의 관계만 알면 함수를 사용할 수 있습니다. 수학에서 함수가 복잡한 계산을 단순화해 주는 도구였다면, 프로그래밍에서의 함수도 역시나 같은 역할을 하죠.
프로그래밍에서 함수는 수학적 개념을 그대로 확장한 형태라고 볼 수 있어요. 특정 입력값(매개변수)를 받아서 정해진 로직을 수행한 뒤 결과값을 반환한다는 점에서 y=f(x)와 구조적으로 동일하죠. 다만, 프로그래밍 함수는 숫자뿐만 아니라 문자열, 리스트, 객체 등 다양한 형태의 데이터를 입력과 출력으로 다룰 수 있다는 점이 달라요. 또한 단순한 계산 뿐만 아니라 출력, 저장, 조건 판단 등 복잡한 작업도 하나의 함수로 묶을 수 있죠. 이렇게 보면 파이썬의 함수는 '코드를 묶는 문법'이라기보다 생각을 정리하는 방식에 가깝다는 생각이 들어요. 어떤 문제를 해결할 때, 입력은 무엇이고 그 입력을 받아 어떤 처리를 하며, 어떤 결과를 반환해야 하는지를 명확히 정의하는 과정이 곧 함수 설계니까요.
오늘 함수 개념을 다시 정리하면서, 함수는 프로그래밍을 위한 새로운 개념이 아니라 이미 익숙했던 사고 방식을 코드로 옮긴 것이라는 사실을 다시 느낄 수 있었어요. 앞으로 코드를 작성할 때도 단순히 '동작하는 코드'를 만드는 것이 아니라, 입력과 출력이 명확한 함수로 문제를 나누는 습관을 들일 수 있도록 생각하면서 연습해야겠어요. 결국 '좋은 프로그램'이라는 것은, 잘 정의된 함수들의 조합이라는 생각이 드네요.
오늘은 메리크리스마스!!




커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
'RAG' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 46일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.27 |
|---|---|
| 패스트캠퍼스 환급챌린지 45일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.26 |
| 패스트캠퍼스 환급챌린지 43일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.24 |
| 패스트캠퍼스 환급챌린지 42일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.23 |
| 패스트캠퍼스 환급챌린지 41일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.22 |