본문 바로가기
Android/Kotlin

백킹프로퍼티(Backing Properties)란?

by KDGdev 2023. 4. 6.

프로퍼티부터 설명하겠습니다.

 

자바클래스는 기본적으로 필드(변수 등)들을 private으로 설정하고 외부에서 값을 사용하거나 변경할 때 getter와 setter를 사용하여 접근 가능하게 해 줍니다. 이러한 getter와 setter를 프로퍼티라고 합니다.

 

class C {
    private val _elementList = mutableListOf<Element>()

    val elementList: List<Element>
         get() = _elementList
}

 

코틀린으로 개발하시는 분들은 많이 보셨을만한 코드입니다.

 

익숙지 않으신 분들은 _elementList와 elementList가 왜 분리되어 있고 차이가 뭐지? 라고 생각하실 수 있습니다.

 

이는 말씀드렸던 것처럼 _elementList란 필드를 private으로 설정하여 외부에서 접근하지 못하게 했습니다.

 

이는 자바와 코틀린이 객체지향 언어이기 때문에 데이터를 캡슐화하려는 목적과 연관이 있습니다.

 

 

즉, 데이터를 은닉하기 위해 원본 필드를 private으로 설정하고 이에 접근이 가능하게 하는 것이 프로퍼티를 입니다. 캡슐화를 하더라도 사용할 수 없으면 의미가 없잖아요? 결국 데이터에 너무 직접적으로 접근하지 말라는 의미입니다.

 

 

class C {
    private val _elementList = mutableListOf<Element>()

    val elementList: List<Element>
         get() = _elementList


    fun addElement(element: Element){
            _elementList.add(element)
    }
}

 

위와 같이 값의 사용은 elementList를 사용하고 값의 수정은 클래스 내에 함수를 만들어서 사용합니다.

 

감사합니다!

 

 

※ 잘못된 정보, 혹은 다른 의견이 있다면 댓글로 말해주세요. 감사합니다.

'Android > Kotlin' 카테고리의 다른 글

Kotlin 연산자 - ? / !! / ?: / is / as  (0) 2023.02.22
Scope Function  (0) 2023.02.21
List, Set, Map  (0) 2023.02.20