Kotlin

코틀린과 자바는 한글 네이밍이 가능하다. (변수명, 클래스명 등) 하지만 우리는 주석을 제외하고는 코드에서 한글을 마주치는 경우가 거의 없다. 또 영문으로 코드를 작성하는 것에 익숙하기에, 의미가 잘 전달되더라도 한글 네이밍을 보면 눈살이 찌뿌려질 수 있다. 그렇다면 한글 변수는 나쁜가? 사람들이 한글 변수를 사용하지 않는 이유를 개인적으로 추측해보았다. 코드를 영어로 작성하는데 중간에 한글을 섞으려면 한/영 키를 눌러야한다. (즉 키보드를 한 번 더 눌러야한다.) 영어로 전부 작성되어있는 코드 사이에 한글이 박혀있으면 굉장히 생소하다. 카멜케이스 같은 네이밍 컨벤션을 적용하기 어렵다. 한번쯤 생각해 보았더라도 동료들을 설득할 수 있을지 모르겠다. ... 읽어보면 카멜케이스를 적용하기 어렵다 를 제외하면..
· Kotlin
당신이 코틀린을 사용하고 있다면, '확장 함수'를 사용해봤거나 들어봤을 것이다. (아니어도 상관없다. 지금부터 알아보자) 코틀린은 확장 함수라는 기능을 제공한다. 우선 확장 함수가 어떻게 생긴 녀석인지 예시를 한 번 보자! 예시 String 클래스는 문자열의 처음, 끝을 가져올 수 있는 first(), last() 함수를 제공한다. 그런데 정말 만약에 문자열의 두 번째 글자가 필요한 일이 생겼다고 가정해보자. 이때 String에 대한 확장함수로 second() 함수를 만들어 볼 수 있을 것이다. (물론 [1]로 가져올 수 있겠지만, 좀 더 예쁘게 확장함수를 만들어보자!) fun String.second(): Char { if (this.isEmpty()) { throw NoSuchElementExcept..
· Kotlin
코틀린을 처음 시작하면 프로퍼티라는 용어가 굉장히 헷갈릴 수 있다. 그래서 프로퍼티에 대한 용어 정리를 한 번 해보려고 한다. 프로퍼티 Kotlin In Action의 말을 빌리자면 코틀린 프로퍼티는 자바의 필드와 접근자 메서드(getter, setter)를 완전히 대신한다. 오해하지 말자. 이 말은 필드와 접근자 메서드를 모두 합친게 프로퍼티라는 말이 아니다. 프로퍼티는 필드의 역할도, 접근자 메서드의 역할도 할 수 있구나! 라고 받아들이면 된다. + 코틀린에선 자바의 필드를 뒷받침하는 필드(backing field) 라고 부른다. 코틀린을 처음 배울 때 가장 먼저 접하는 프로퍼티는 아래와 같은 형태일 것이다. val name: String = "빅스" 위 name 프로퍼티는 뒷받침하는 필드와 접근자 ..
· Kotlin
코틀린에서의 인터페이스와 추상클래스의 차이에 대해 알아보자 구현적 관점에서의 차이 개념적 관점에서의 차이 구현적인 관점에서의 차이 프로퍼티 선언 다중, 단일 상속 구현적인 관점에서 (코틀린의) 인터페이스와 추상클래스의 큰 차이는 없다고 생각한다. 프로퍼티 선언 인터페이스와 추상클래스 모두 자체로는 생성이 불가능하며 구현부(함수 바디)가 있는 함수가 존재할 수 있다. 뿐만 아니라 프로퍼티 또한 둘다 선언할 수 있는데 여기서 조금의 차이가 발생한다. 코틀린 인 액션 (이하 코인액)에서는 이렇게 말한다. (말이 어렵다면 넘어가도 좋다) 인터페이스에는 추상 프로퍼티뿐 아니라 게터와 세터가 있는 프로퍼티를 선언할 수도 있다. 물론 그런 게터와 세터는 뒷받침하는 필드를 참조할 수 없다. (뒷받침하는 필드가 있다면 ..
· Kotlin
코틀린의 인터페이스를 알아보도록 하자 코틀린의 인터페이스는 자바의 인터페이스와는 차이가 있다. 코틀린의 인터페이스에서는 프로퍼티 선언이 가능하지만 자바는 불가능하다. 자바에는 implements를 통해 인터페이스를 구현하지만 코틀린은 콜론(:)을 사용한다. 코틀린의 인터페이스 안에는 추상 메서드뿐 아니라 구현이 있는 메서드도 정의할 수 있다. (이는 자바 8의 디폴트 메서드와 비슷하다고 한다) 그럼 지금부터 코틀린 인터페이스의 예시들을 보며 알아가보도록 하자. 자바 코드는 이해를 돕기 위해 참고용으로 매 코드마다 넣어놨다. override 키워드와 인터페이스 우선 간단하게 인터페이스를 선언해보자 interface Soccer { fun kick() } 자바 코드 // java도 큰 차이는 없다 publi..
· Kotlin
Java와 비교해서 Kotlin 맛보기 먼저 Kotlin을 잠시 맛보고 가도록 하자 클래스(Class)라는 개념의 목적은 데이터를 캡슐화하고 캡슐화한 데이터를 다루는 코드를 한 주체 아래 가두는 것이다. // java code 1-1 public class Person { private final String name; public Person(String name) { this.name = name; } public String getName() { return name; } } java code 1-1을 코틀린으로 변환해보자 // kotlin code 1-1 class Person(val name: String) 11줄을 차지하던 Person 클래스의 코드가 단 1줄로 변환되었다. 이와 같이 코틀린은..
인터루드
'Kotlin' 태그의 글 목록