seegongsik
프로그래밍

어떻게 묶어서 이름 붙이기

라면을 끓이는 여러 단계에 '라면 끓이기'라는 이름을 붙여 두면, 다음부터는 그 말 한마디면 된다. 함수는 여러 일을 한 덩어리로 묶고 이름을 붙이는 것이다. 이름만 부르면 그 일이 전부 일어나요.

01

묶고 이름을 붙인다

물 끓이기, 면 넣기, 스프 넣기, 그릇에 담기.
이 네 단계를 '라면 끓이기'라는 한 덩어리로 묶고 이름을 붙인다.
이 묶음이 함수다.
아래에서 흩어진 단계가 한 덩어리로 묶이는 모습을 볼 수 있어요.

물을 끓여요
면을 넣어요
스프를 넣어요
그릇에 담아요
네 단계가 따로 흩어져 있어요.

흩어진 단계 → 이름 붙인 한 덩어리. 네 단계가 '라면 끓이기'로 묶인다.

묶어서 이름을 붙이면 머릿속이 깔끔해진다.
'물 끓이고, 면 넣고…'를 하나하나 말하지 않아도 '라면 끓이기' 한마디면 통한다.
복잡한 것을 이름 하나 뒤에 감추는 셈이에요.

02

부르면 다 일어난다

이름을 붙여 두었으니 이제 이름만 부르면 된다.
'라면 끓이기'라고 하면 안에 묶인 네 단계가 차례로 다 일어난다.
속을 다시 들여다볼 필요 없이, 이름이 그 일을 대신해요.

라면 끓이기
물을 끓여요
면을 넣어요
스프를 넣어요
그릇에 담아요
'라면 끓이기'를 부르면, 안의 네 단계가 차례로 실행돼요.

이름을 부르면 묶인 단계가 차례로 실행된다. '라면 끓이기' → 네 단계가 하나씩.

이것이 편한 까닭은 '어떻게'를 잊어도 되기 때문이다.
이름과 '무엇을 하는지'만 알면 속이 어떻든 그냥 부르면 된다.
복잡함을 이름 뒤에 숨겨 두는 거예요.

03

재료를 넣고 결과를 받는다

함수에는 재료를 넣을 수 있다.
'두 배로'라는 함수에 5를 넣으면 10이, 7을 넣으면 14가 나온다.
무언가를 넣으면(입력) 안에서 일하고 결과를 돌려주니(출력), 작은 기계와 같아요.

→
두 배로
넣은 수 × 2
→10
같은 함수라도 넣는 값에 따라 나오는 값이 달라져요. (5 → 10, 7 → 14)

입력 → (함수) → 출력. 두 배로: 5 → 10. 넣는 값에 따라 결과가 달라진다.

이름이 같아도 넣는 것이 다르면 나오는 것도 다르다.
'두 배로'에 3을 넣으면 6, 100을 넣으면 200이다.
재료만 바꿔 같은 일을 시키는 셈이에요.

04

만든 함수를 다시 쓴다

함수의 진짜 좋은 점은 다시 쓸 수 있다는 것이다.
'두 배로'를 한 번 만들어 두면, 5에도 8에도 12에도 필요할 때마다 이름만 부르면 된다.
한 번 만들고 여러 번 쓰는 거예요.

5→두 배로10
8→두 배로16
12→두 배로24
같은 함수를 세 번 불렀어요. 만드는 건 한 번이면 돼요.

한 번 만든 '두 배로'를 여러 번 부른다. 5 → 10 · 8 → 16 · 12 → 24.

7강의 반복도 '한 번 적고 여러 번'이었다.
함수도 비슷해서, 한 번 잘 만들어 두면 프로그램 곳곳에서 계속 꺼내 쓴다.
좋은 함수 하나가 두고두고 일을 줄여 줘요.

05

복잡함을 다스리는 법

함수는 복잡함을 다스리는 방법이다.
여러 일을 묶고, 이름을 붙이고, 다시 꺼내 쓴다.
큰 프로그램도 사실은 함수들이 서로를 부르며 굴러가요.

함수 = 묶어 이름 붙여 다시 쓰기
이름만 부르면 그 일이 · 재료를 넣으면 결과가 · 한 번 만들고 여러 번.
자료 모음
여럿을 한데 담기
큰 프로그램
함수들이 서로 부르기
그 너머
더 깊은 세계로
다음 레슨에서는 함수가 자기 자신을 부르는 '재귀'를 만나요.

묶어 이름 붙였으니 다음으로. 함수 = 묶어 이름 붙여 다시 쓰기 → 자료 모음 · 큰 프로그램 · 그 너머.

여기까지 오느라 애썼다.
값에 이름을 붙이고, 종류를 알고, 판단하고, 계산하고, 되풀이하고, 이제 묶어서 이름까지 붙였다.
프로그램을 짓는 기본 연장을 거의 다 손에 쥔 셈이에요.

한 줄 정리함수는 여러 일을 한 덩어리로 묶고 이름을 붙이는 것이다. 이름만 부르면 그 일이 다 일어나고, 재료를 넣으면 결과가 나오며, 한 번 잘 만들어 두면 프로그램 곳곳에서 다시 꺼내 쓴다. 함수는 복잡함을 이름 뒤에 숨겨 큰 프로그램을 다스리는 방법이에요.
← 프로그래밍
이 페이지가 도움 됐다면 후원하기