본문 바로가기
728x90

kotlin/insight3

Kotlin에서의 프로퍼티, Java에서의 필드와 프로퍼티 서론 자바에서는 클래스의 속성이나 상태를 나타낼 때 주로 필드와 프로퍼티라는 두 가지 용어를 사용합니다. 코틀린에서는 클래스의 속성과 상태를 나타낼 때 프로퍼티라는 용어만 사용합니다. 그렇다면 Java에서의 필드와 프로퍼티, Kotlin에서의 프로퍼티는 어떤 차이가 있는 걸까요? 우선 자바의 필드와 프로퍼티를 살펴 보겠습니다. Java의 field와 property field: 자신이 속한 클래스의 내부 변수. (속성 및 상태) property: 클래스의 내부 변수(필드)에 대해 접근자(getter/setter)를 사용해 접근하는 것. 필드와 접근자를 통틀어 가리키는 용어. 필드는 외부에서 직접 접근이 가능합니다. 그러나 클래스 밖에서 직접 접근은 권장되지 않습니다. 즉, 접근자를 사용하는 프로퍼티 사용.. 2023. 4. 10.
Kotlin 에서의 원시값 포장과 그에 적합한 클래스 선택하기 서론 원시값들을 모두 포장하다보니 클래스 외부에서 비교를 할 때 아래와 같이 코드가 길어지고 복잡해지는 경우가 많았다. 예제) 로또의 번호들이 중복되었는지 검사하는 코드 require(numbers.size == numbers.distinctBy { it.number }.size) { LOTTERY_NUMBERS_DUPLICATE_ERROR } 따라서, 외부에서 사용시 복잡해지지 않도록 equals를 override하였다. 두 객체를 비교할 때 객체의 주소가 아닌 객체의 내부 변수를 이용해 비교를 하도록 하였다. 하지만 이렇게 원시값을 포장할 때는 class 보다는 data class가 더 적절할 수 있다. 때에 따라서는 value class가 더 적절할 수도 있다. class, data class, v.. 2023. 4. 8.
intellij에서 ktlint를 사용해 Kotlin 컨벤션 준수하기 컨벤션과 ktlint 대화를 할 때 최소한의 단어만 있다면 어느정도 의사소통은 가능합니다. 하지만 맞춤법, 문법과 같은 것들이 추가되면 더 많은 양의 내용들을 문장에 담을 수 있습니다. 반대로 맞춤법, 문법과 같은 것들이 지켜지지 않는다면, 읽기 싫고 잘못 이해되기 쉬운 문장이 됩니다. 마찬가지로 코드를 통해 개발자의 의사를 명확하고 이해하기 쉽게 전달하고자 한다면 국어에서의 맞춤법 문법과 같은 컨벤션(규칙)을 지켜줘야 합니다. 아래의 kotlin 언어의 규칙, git commit 메시지의 규칙 등과 같은 것들이 있습니다. https://kotlinlang.org/docs/coding-conventions.html#control-flow-statements Coding conventions | Kotli.. 2023. 2. 7.
728x90