프로퍼티 3

[Kotlin] 프로퍼티 접근자 로직 재활용: 위임 프로퍼티

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 위임 프로퍼티(delegated property)는 코틀린이 제공하는 convention(관례)에 의존하는 독특하면서 강력한 기능이다. 이를 사용하면 값을 backing property 에 단순히 저장하는 것보다 더 복잡한 방식으로 작동하는 프로퍼티를 쉽게 구현할 수 있다. 또 그 과정에서 접근자(getter/setter)로직을 매번 재구현할 필요도 없다. 예를 들어 자신의 값을 필드가 아닌, DB TABLE 이나 브라우저 세션, 맵 등에 저장할 수 있다. 위임은 객체가 직접 작업을 수행하지 않고 다른 도우미 객체가 그 작업을 처리하게 맡기는 디자인 패턴이다. 이 때 도우미 객체를 위임 객..

Kotlin 2024.01.25

[Kotlin] 인터페이스의 프로퍼티 & 접근자에서 backing field 에 접근, 접근자의 가시성

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 인터페이스에 선언된 프로퍼티 코틀린에서는 인터페이스에 추상 프로퍼티 선언을 넣을 수 있다. interface User { val nickname: String } `User` 인터페이스를 구현하는 클래스는 `nickname` 의 값을 얻을 수 있는 방법을 제공해야 한다. 인터페이스에 있는 프로퍼티 선언에는 어떠한 상태를 포함할 수 없다. 즉, backing field 에 대한 정보가 들어있지 않다. 프로퍼티 선언을 가진 인터페이스 구현 인터페이스를 구현하는 방법을 코드로 보자 class PrivateUser(override val nickname: String) : User class Su..

Kotlin 2024.01.09

[Kotlin] 클래스와 프로퍼티 기초

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 이번에는 클래스를 선언하는 기본 문법, 그리고 프로퍼티를 다룬다. JavaBean 클래스를 코틀린 코드로 보기 먼저 간단한 `JavaBean` 클래스 `Person` 을 봅시다. public class Person { private final String name; public Person(String name) { this.name = name; // 필드가 늘어날 수록 생성자 바디에 비슷한 코드가 반복적으로 들어간다. } public String getName() { return name; } } `Person` 클래스는 필드를 오직 `String` 타입의 `name` 만을 가진다. 만..

Kotlin 2023.12.27