Skip to Content
Java에서 Kotlin으로
book

Java에서 Kotlin으로

by Duncan McGregor, Nat Pryce
May 2025
Beginner to intermediate
424 pages
7h 7m
Korean
O'Reilly Media, Inc.
Book available
Content preview from Java에서 Kotlin으로

7장. 계산 작업

이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com

Java나 Kotlin 모두 명령형 코드와 함수형 코드를 공식적으로 구분하지는 않지만, Kotlin이 불변성과 표현식에 중점을 두면 일반적으로 더 기능적인 프로그램이 만들어집니다. 코드를 더 기능적으로 만들어서 개선할 수 있을까요?

기능

업계에서는 큰 프로그램 내에서 호출 가능한 하위 프로그램을 설명하기 위해 많은 문구를 발명했습니다. 매우 일반적인 서브루틴이 있습니다. 일부 언어(특히 파스칼)는 결과를 반환하는 함수와 그렇지 않은 프로시저를 구분하지만 대부분의 개발자는 두 용어를 혼용해서 사용합니다. 그리고 객체(또는 정적메서드의 경우 클래스)와 관련된 서브루틴인 메서드가 있습니다.

C 언어는 모든 함수를 호출하지만 반환값이 없음을 나타내는 특수 void 유형이 있습니다. 이것은 Java로 이어졌습니다. Kotlin은 Unit 을 거의 동일한 방식으로 사용하지만 Unit 은 반환값이 없는 것이 아니라 대신 반환되는 싱글톤 값이라는 점을 제외하면 다릅니다.

이 책에서는 독립적이든 객체와 연관되어 있든 결과를 반환하는 서브루틴과 결과를 반환하지 않는 서브루틴을 모두 가리킬 때 함수라는 용어를 사용합니다. 객체와 연관되어 있는 것이 중요한 경우에는메서드라고 부르겠습니다.

함수는 무엇이라고 부르든 소프트웨어의 기본 구성 요소 중 하나이며, 일반적으로 사용 중인 프로그래밍 언어에 따라 일종의 표기법으로 정의합니다. 또한 함수는 일반적으로 프로그램이 실행되는 동안 고정되며, 적어도 정적 언어에서는 함수를 즉석에서 재정의하지 않는 것이 보통입니다.

이 은 다른 기본 구성 요소인 데이터와 대조적입니다. 우리는 프로그램을 실행하면서 데이터가 달라질 것으로 예상하고, 다양한 데이터가 변수에 바인딩됩니다. 변수를 변수라고 부르는 이유는 바로 가변적이기 때문입니다. final 또는 val 이라고 하더라도 함수를 호출할 때마다 다른 데이터에 바인딩되는 것이 보통입니다.

앞서 함수를 결과를 반환하는 함수와 반환하지 않는 함수로 세분화하는 방법에 대해 설명했습니다. 이것은 근본적인 차이처럼 보일 수 있지만 실제로는 계산과 동작으로 함수를 나누는 것이 더 유용합니다.

액션은 실행 시기나 횟수에 따라 달라지는 함수이고, 계산은 그렇지 않은 함수입니다. 우리가 작성하는 대부분의 함수는 액션이기 때문에 실행 시기에 의존하지 않는 코드를 작성하려면 특별한 주의를 기울여야 합니다. 어떻게 하면 그럴 수 있을까요?

계산

계산이 되려면 함수는 동일한 입력이 주어질 때 항상 동일한 결과를 반환해야 합니다. 함수에 대한 입력은 함수가 호출될 때 인수에 바인딩되는 매개변수입니다. 따라서 계산은 동일한 인수를 사용하여 호출할 때 항상 동일한 결과를 반환합니다.

fullName 함수를 사용합니다:

fun fullName(customer: Customer) = "${customer.givenName} ${customer.familyName}" ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

코드 밖 커뮤니케이션

코드 밖 커뮤니케이션

재퀴 리드
실리콘밸리 리더십

실리콘밸리 리더십

김정혜, 마이클 롭

Publisher Resources

ISBN: 9798341656055Supplemental Content