🍚전공이 밥 먹여준다믄/🐍 파이썬
🐍 [기초] def 함수는 왜 써야 해? return은 왜 넣지?
code.with.siyeon
2025. 5. 15. 23:14
처음 def를 배웠을 때,
딱 이렇게 외웠던 기억이 난다.
def 함수이름(매개변수):
실행할 코드
return 결과값
“그냥 저렇게 쓰면 돼~”
“return 안 써도 되긴 하는데, 쓰면 뭔가 출력됨~”
🧠 그땐 솔직히… 함수는 ‘형식’처럼 느껴졌다.
🔹 진짜 궁금했던 건 이거였다 🤷♀️
❓ “굳이 저렇게 묶어서 써야 해?”
❓ “그냥 코드를 쓰면 안 되는 이유는 뭘까?”
❓ “return이 없으면 안 되는 건가?”
그 의문이 풀린 건,
내가 프로젝트에서 같은 코드를 복붙하다가 지치던 어느 날이었다.
🔹 반복되는 코드를 ‘한 번만’ 쓰고 싶었던 순간 ♻️
예를 들어, 사용자의 이름과 인사말을 출력하는 코드가
여기에도, 저기에도 자꾸 필요했던 상황:
print(f"{name}님, 환영합니다!")
매번 이걸 쓰는 게 너무 비효율적이라
처음으로 **‘함수로 묶는다는 것’**의 필요성을 느꼈다.
def greet(name):
return f"{name}님, 환영합니다!"
print(greet("시연"))
print(greet("우석"))
👀 여기서 처음으로 return의 의미도 알게 됐다.
그냥 출력만 하는 게 아니라,
**“그 값을 돌려주니까 어디서든 재사용할 수 있다”**는 걸.
🔹 함수는 ‘코드를 정리하는 도구’ 그 이상이었다 🛠️
내가 느낀 함수의 힘은 이거였다:
- ✅ 같은 로직을 반복하지 않게 한다
- ✅ 코드를 더 읽기 쉽게 만든다
- ✅ 어디서든 재사용 가능하게 만든다
- ✅ 흐름을 명확하게 설계할 수 있게 한다
🔹 함수 안에서만 통하는 변수들이 있다는 것도 나중에야 알았다
처음엔 왜 name을 밖에서 쓰면 오류 나는지 이해 못했었다.
def hello():
name = "시연"
print(name) # 에러!
이때 알게 된 게 바로
함수 내부에서 정의된 변수는, 함수 바깥에선 쓸 수 없다는 개념.
이걸 **“지역 변수 (local variable)”**라고 부른다는 것도 그때 처음 알게 됐다.
✍️ 정리하자면…
- def는 코드를 묶는 틀이자 논리 구조의 최소 단위
- return은 결과를 돌려주는 통로이고,
없어도 되지만 있어야 활용이 가능하다 - 함수는 단순히 '한 번만 정의해서 여러 번 쓰는 구조' 그 이상으로,
코드를 설계하고 정리하는 가장 기본적인 수단이다
지금도 함수가 어려울 때가 있지만,
그 구조 안에서 점점 내 코드를 다듬는 재미를 배우는 중이다.
📌 "코드를 줄이는 게 아니라, 흐름을 더 명확하게 만드는 것"
그게 내가 함수를 쓰는 이유다.
📘 다음 글 예고:
🐍 [기초] input과 print 진짜 이해하기 – 단순한 입출력에서 흐름이 시작된다