[파이썬 공학 시뮬레이션 1단계] 4화. 나만의 공학 공식, 함수(Function)로 박제하기

지난 시간에는 컴퓨터의 지치지 않는 체력을 활용하여 수천 번이고 반복해서 일을 시키는 반복문과, 그 시간의 흐름을 다루는 타임스텝의 개념을 알아보았지요. 오늘은 그 지치지 않는 기계에게 매번 똑같은 공식을 일일이 알려주지 않아도 스스로 알아서 계산하게 만드는 아주 똑똑한 도구, ‘함수(Function)’에 대해 이야기해보려 합니다.

함수는 쉽게 말해 ‘자동판매기’와 같습니다. 자판기에 동전과 버튼이라는 입력을 넣으면, 내부 기계가 돌아가서 시원한 음료수라는 결과를 내어놓지요. 우리는 그 기계 내부가 어떻게 복잡하게 작동하는지 매번 고민할 필요 없이, 그저 동전만 넣으면 됩니다.

“함수는 복잡하고 위험한 수식들을 안전하게 보관해두는 나만의 튼튼한 공구함입니다.”

공학에서 가장 기본이 되는 공식 중 하나인 스프링의 탄성력, 즉 후크의 법칙 \(F = kx\)를 예로 들어볼까요? 여기서 \(F\)는 힘, \(k\)는 스프링 상수, \(x\)는 늘어난 길이를 의미합니다. 매번 코드를 짤 때마다 이 곱셈을 타이핑하는 대신, 함수라는 자판기를 만들어두는 것이죠.

📚 새내기 용어 사전:
– 매개변수(Parameter): 함수라는 자판기에 뚫려 있는 ‘동전 투입구’와 같습니다. 우리가 함수를 호출할 때 값을 전달해주면, 그 구멍을 통해 함수 내부로 값이 쏙 들어가서 계산에 사용됩니다.

파이썬에서 함수를 정의할 때는 `def`라는 키워드를 사용합니다. 아래 예제 코드를 코랩에 복사해서 실행해보세요.

# 함수 정의하기: 'calculate_spring_force'라는 이름의 자판기
def calculate_spring_force(k, x):
    # k는 탄성계수(동전1), x는 변위(동전2)
    force = k * x  # 내부에서 수식을 계산합니다
    return force   # 계산 결과를 밖으로 내보냅니다

# 함수 사용해보기
my_k = 100 # 스프링 상수
my_x = 0.5 # 0.5미터 늘어남

# 함수에 값을 넣고 결과를 받아봅니다
result = calculate_spring_force(my_k, my_x)
print(f"스프링에 작용하는 힘은 {result} N 입니다.")

여기서 주목해야 할 점은 바로 `return`입니다.

💡 선배의 실무 Note: ‘Return이 없으면 함수는 일하고도 돈을 못 번다’는 말을 꼭 기억하세요. 화면에 단순히 보여주기만 하는 `print()`와, 계산된 값을 밖으로 확실하게 전달하여 다른 변수에 저장할 수 있게 해주는 `return`은 완전히 다릅니다. `return`이 있어야만 그 값을 나중에 다른 계산의 재료로 다시 사용할 수 있답니다.

함수를 만들어서 사용하면, 나중에 복잡한 공학 프로젝트를 할 때 이 함수만 쏙 가져와서 조립하면 되니 훨씬 효율적이겠지요?

다음 시간에는 1단계의 대미를 장식할 진정한 공학용 계산기, ‘넘파이(Numpy)’가 등장할 예정입니다. 파이썬의 기본 리스트가 가진 속도와 기능의 한계를 단번에 깨부수는 마법 같은 ‘배열(Array)’이라는 개념을 배우게 될 거예요. 공학자들에게는 없어서는 안 될 소중한 도구이니 기대하셔도 좋습니다. 그럼 다음 시간에 또 즐겁게 공부해보아요!

댓글 남기기