120
자바에서 코틀린으로
이 책에서는 결과를 돌려주는 함수와 그렇지 않은 서브루틴을, 객체와 연관이 되어 있든 그렇
지 않고 함수 자체로 존재하든 관계없이
함수
라는 용어로 가리킨다. 함수가 특정 객체와 연관
되어 있다는 점이 아주 중요한 경우에는 메서드라고 부르기도 한다.
우리가 무엇이라 부르건 간에 함수는 소프트웨어를 구축할 때 토대가 되는 빌딩 블록이다. 우
리는 어떤 표기법을 사용해 함수를 정의하는 데, 보통은 우리가 사용하는 프로그래밍 언어가
제공하는 표기법을 사용한다. 일반적으로는 프로그램이 실행되는 동안 함수 정의가 고정된다.
적어도 정적인 언어의 경우 함수를 그때그때 재정의하지는 않는다.
이 부분이 함수가 소프트웨어의 토대가 되는 다른 빌딩 블록인 데이터와 다른 점이다. 우리는
프로그램을 실행하면서 데이터가 변하리라 기대한다. 그리고 변수에 다른 데이터가 연관되리
라 기대한다. 변수가 변수라 불리는 이유는 저장된 값이 달라질 수 있기 때문이다 (변수라는 한
자어에서 ‘변’이라는 글자는 변한다는 뜻이며, 영어 ‘
variable
’은 변수라는 뜻의 명사와 변하다
는 뜻의 형용사로 쓰인다). 변수를
final
이나
val
로 지정해도 함수를 호출할 때마다 각 이름
에 다른 값이 연관될 수 있다.
앞에서 함수를 결과를 반환하는 함수와 그렇지 않은 함수로 구분한다는 언급을 했다. 이런 차
이가 근본적인 차이인 것처럼 보일수 있다. 하지만 실제로 함수를 나누는 더 유용한 방법은
계
산
calculation
과
동작
action
으로 나누는 것이다. ...