3.1 함수란 무엇인가
3.1.1 문제를 나누어 해결하기
큰 문제를 작은 문제로 나눈다
우리는 큰 문제를 해결할 때 먼저 문제를 작은 문제로 나눈다. 문제를 나누어 다루는 것은 프로그래머가 아니더라도 누구에게나 좋은 전략이다. 예를 들어, 카페라테를 만드는 레시피(조리법)를 생각해 보자.
카페라테 레시피
A. 에스프레소 추출하기
- 분쇄된 커피 원두를 에스프레소 추출 기계에 넣는다.
- 기계에 컵을 받치고 추출 버튼을 누른다.
B. 우유 거품 만들기
- 냄비에 우유를 넣고 끓인다.
- 끓인 우유를 거품기로 거품이 충분히 날 때까지 젓는다.
C. 카페라테 만들기
- (A 과정에 따라) 에스프레소를 추출한다.
- (B 과정에 따라) 우유 거품을 만든다.
- 에스프레소에 우유를 붓고, 우유 거품을 올린다.
‘A. 에스프레소 추출하기’와 ‘B. 우유 거품 만들기’는 카페라테를 만드는 전체 과정의 부분 과정이다. 이렇게 부분 과정을 나누지 않고 전체 과정을 한꺼번에 나열해도 레시피를 쓸 수 있다. 하지만 의미상 구분되는 부분끼리 나누어 생각하면 작업의 의미와 과정을 파악하고 이해하기가 더 쉽다.
3.1.2 함수는 작은 문제를 해결하는 프로그램
카페라테 만드는 방법을 세부 과정으로 나누는 것처럼, 프로그래밍에서도 문제를 작게 나누어 각각의 작은 문제들을 해결하는 작은 프로그램들을 만들 수 있다. 이 작은 프로그램을 함수라고 한다. 각 기능을 구현한 함수를 모아 놓으면 하나의 전체 프로그램이 된다.
개념 정리
- 크고 복잡한 문제는 작고 간단한 문제로 나누어 해결해야 한다.
- 함수: 작은 문제를 해결하는 작은 프로그램
작은 프로그램이 이해하기 쉽다
프로그래밍에서 문제를 나누는 건 사람을 위한 것이다. 프로그램이 중간 과정의 구분 없이 한 덩어리로 쭉 나열되어 있더라도 컴퓨터는 아무 불평 없이 정확하게 수행할 수 있다. 하지만 그런 프로그램은 사람이 이해하기는 쉽지 않다. 사람은 한꺼번에 여러 가지를 기억하고 처리하지 못하기 때문이다. 그 때 그 때 필요한 데만 관심을 집중해야 헷갈리지 않는다. 그래서 작은 의미 단위로 나누어 작성된 프로그램이 더 이해하기 쉽다.
파이썬의 함수
파이썬에서 함수는 어떤 작업을 수행하는 코드를 모아 이름을 붙인 것이다. 변수를 이용해 데이터에 이름을 붙이는 것처럼, 함수를 이용해 프로그램 조각에 이름을 붙일 수 있다. 이렇게 코드를 묶어 이름을 붙이는 것을 함수 정의라고 한다.
대상에 이름을 붙여두면 이름만으로 그 대상을 부를 수 있다. 함수의 이름을 불러 함수 내용으로 정의된 코드를 실행시킬 수 있다. 이것을 함수 호출이라고 한다.
개념 정리
- 함수 정의: 어떤 작업을 수행하는 코드를 모아 이름을 붙이는 것
- 함수 호출: 함수의 이름을 불러 함수의 내용을 실행시키는 것
댓글 남기기