
273
13
장
함수와 추상적 사고
생각하십시오.
이상적인 경우는 함수가 하는 일을 이름만으로 완벽하게 나타내는 것이겠지만, 그렇게 하면 지
나치게 번거로울 수 있습니다. 예를 들어
오늘이윤년인지계산해서콘솔에기록한다
같은 이름
을 쓴다면 (즉,
calculateCurrentLeapYearStatusAndPrintToConsole
등으로 쓴다면) 더 많
은 정보를 얻을 수 있겠지만, 너무 길어서 의미가 없습니다.
13.2
값을 반환하는 서브루틴으로서의 함수
이전 예제의
printLeapYearStatus
는 재사용하기 편리하도록 어떤 동작을 하나로 묶었고, 그
이상은 아무 것도 하지 않았으니 서브루틴이라는 용어를 잘 반영했다고 할 수 있습니다. 하지
만 이렇게 단순한 함수를 사용하는 일은 별로 없을 테고, 복잡하고 추상적인 문제에 도전하게
되면 더 줄어들 겁니다. 한 단계 더 추상화해서 함수를
값을 반환하는
서브루틴으로 생각해 봅
시다.
printLeapYearStatus
함수는 잘 동작하지만, 프로그램이 커지면 콘솔에 기록하는 것은 곧 쓸
모없어집니다. 이제
HTML
에 결과를 출력하거나, 파일에 저장하거나, 다른 계산에 사용해야
할 수도 있는데 지금 가진 서브루틴은 그렇게 활용할 수 없습니다. 하지만 지금이 윤년인지 아
닌지 알아야 할 때마다 그에 맞게 알고리즘을