07. 일곱 번째 수업: 코드로 짜보는 함수 공장 (Python Functions)
수만 줄의 엄청나게 지저분한 계산 로직이나 방정식 풀이 덩어리 코드를 함수 상자 하나로 포장(Wrap)해두면, 나중에 상자에 숫자만 하나 던져주고 엔터키 한 번으로 재활용 결과를 수천 번 빨아낼 수 있습니다!
지금까지 배워온 위대한 수학의 머신, 함수 $f(x)$ 들이 파이썬 (Python) 이라는 언어의 세계에서 어떻게 컴퓨터 문법 명령어 덩어리로 창조되는지 그 아름다운 톱니바퀴 조립 실습을 진행합니다.
1. 나의 첫 번째 1차 함수 팩토리 def f(x)
파이썬에서 함수 조립 설명서를 선언할 때는 “지금부터 기계를 정의(Define) 하겠다” 라는 뜻으로 def 라는 위대한 3글자 주문을 입력합니다.
- 수학 수식: $f(x) = 3x + 5$
- 이 1차 함수 식을 똑같이 파이썬 문법 팩토리로 조립하면?
# [Python Code] 수학의 1차 함수 수식을 파이썬 기계로 변환 (Define Function)
# 1. f 라는 껍데기 기계를 만들고, x라는 빈 동전 투입구를 뚫어준다.
def machine_f(x):
# 2. 기계 뱃속 내부 가공 톱니바퀴 로직
# x가 들어오면, 3배를 튀기고 5를 강제로 더한 Y 결과를 만들어라.
y_result = (3 * x) + 5
# 3. 배출구(return)를 열고, 최종 뜨끈한 y 결과물 덩어리를 바깥세상(모니터)으로 뿜어내라.
return y_result
# -----------------
# 기계가 다 만들어졌으니, 동전을 넣어 기계를 [호출/Call] 하여 돌려볼까?
coin_input = 10
output_cola = machine_f(coin_input) # f(10) 수학식 입력과 동일!
print(f"내가 입력한 동전 원인 X: {coin_input}")
print(f"자판기가 뿜어낸 결과물 Y: {output_cola}")
# [실행 결과창 화면]: 자판기가 뿜어낸 결과물 Y: 35
보이시나요? 저 문법은 여러분이 수학 교재 뒷장에서 죽어라 풀던 “$f(10)$ 의 함숫값을 구하시오” 수학 문제를 컴퓨터라는 무자비한 하드웨어를 통해 실물로 렌더링 물리 구현시킨 기적의 순간입니다.
2. 모듈 합성: 공장과 공장의 연결 파이프 (Composite)
이전 챕터에서 배웠던 상자 속의 상자 파이프라인 합체 스킬, 합성함수 $g(f(x))$ 기억나시죠? 앞놈이 싼 결과 똥을 뒷놈 자판기 입구에 바로 파이프로 꽂아버리는 기법입니다. 이 논리를 파이썬 연속 코드로 시공해 봅시다!
# [Python Code] 두 함수를 직렬 연결 파이프로 결합하는 합성 함수 (Composite Functions)
def function_f(x):
# 기계 F는 오직 + 10 만 해주는 반듯하고 착한 1차 함수 덧셈 엔진
return x + 10
def function_g(y):
# 기계 G는 들어온 녀석을 미친듯이 제곱 폭발시켜버리는 공포의 2차 함수 곱셈 엔진
return y ** 2
# ----- [메인 공장 생산 라인 통제실 구동] -----
# 1. 초기 원석 투입 (x = 5)
start_x = 5
# 2. 미친 파이프라인 합성 가동!
# g 머신의 입력 투입구 안에, f(5) 의 덩어리 결과를 통째로 쑤셔 락인 시킴!
final_y = function_g( function_f(start_x) )
print(f"입력 {start_x}가 파이프를 연속 2번 거친 최종 합성 도출물 Y: {final_y}")
# [작동 로그 역추적]
# 1. f(5) 작동 -> 5 + 10 = 15 배출
# 2. g(통입구) 에 15가 처박힘 -> g(15) 구동 -> 15 ** 2 = 225 폭발 배출.
# [출력값 모니터]: 225
3. 수학과 프로그래밍은 결국 한 몸
함수 챕터는 사실상 “수능 수학 수식 기호들을 어떻게 백엔드 컴퓨터 파이썬 코드로 이식하는가” 에 대한 아주 거대한 단 한 편의 번역 언어 튜토리얼 문서와도 같습니다.
어떤 데이터를 집어넣어, 공식을 거쳐 튀어나온 예측된 결과 산출물을 얻는다.
우주 탐사선 아폴로 호가 달의 중력장에 진입할 틈새 미분 각도($y$) 조준을 위해, 현재 탐사선의 질량 데이터와 분사 속도 수치($x$) 조합을 우주 왕복선 컴퓨터의 calculate_trajectory(x) 함수 팩토리에 집어넣어 구동 돌렸던 것과 완벽히 본질이 같습니다. 세상 만물은 이 예측 가능성의 마법, 함수 자판기로 돌아가고 있습니다!