[Effective Kotlin] 아이템 30. 요소의 가시성을 최소화하라

Jimin Lim·2023년 8월 27일
0

Effective Kotlin

목록 보기
30/39
post-thumbnail

아이템 30

요소의 가시성을 최소화하라

API를 설계할 때 간결한 API를 선호하는 데는 여러 가지 이유가 있다.

  1. 작은 인터페이스는 배우고 쉽고 유지하기 쉽다.
  2. 변경을 가할 때는 기존의 것을 숨기는 것보다 새로운 것을 노출하는 것이 쉽다.
    외부에 노출된 것을 변경하면 이 코드를 사용하는 모든 부분이 영향을 받는다.
  3. 클래스의 상태를 나타내는 프로퍼티를 외부에서 변경할 수 있다면, 클래스는 자신의 상태를 보장할 수 없다.
    private set으로 접근자의 가시성을 제한하는 것이 좋다.

가시성 한정자 사용하기

접근제어자

  • public : 모든 곳에서 사용 가능
  • private : 클래스 내에서만 사용 가능
  • protected : 해당 클래스와 하위 클래스에서만 사용 가능
  • internal : 모듈 내부에서만 사용 가능

톱레벨 요소

  • public : 모든 곳에서 사용 가능
  • private : 같은 파일 내부에서만 사용 가능
  • internal : 모듈 내부에서만 사용 가능

참고로 모듈은 함께 컴파일되는 코틀린 소스를 의미한다. 만약 모듈이 다른 모듈에 의해서 사용될 가능성이 있다면 internal을 사용해서 공개하고 싶지 않은 요소를 숨긴다.

DTO의 경우 고냥 프로퍼티를 사용할 수 있게 눈에 띄도록 만들자. 필요하지 않으면 그냥 프로퍼티를 제거하자

profile
💻 ☕️ 🏝 🍑 🍹 🏊‍♀️

0개의 댓글