Kotlin intro

Kotlin intro

Updated 2026. 2. 1.

Chapter 1
Avatarby taehwandev
@taehwandev
over 9 years ago

Kotlin 기본 문법 - 1

Android를 Kotlin으로 연습하면서 코틀린 플러그인을 통해 제공하는 Convert Java를 이용하여 기본 문법을 익혔습니다. 그와 Kotlin에서 제공하는 기본 문법을 정리하였습니다. 코틀린 기본 문법 코틀린은 ;을 사용하지 않고, 아래와 같이 변수 타입이 뒤에 붙는 형태입니다. 또한 변수 타입을 지정하지 않을 수도 있습니다. 코틀린 기본 문법 -

00
Chapter 2
Avatarby taehwandev
@taehwandev
over 9 years ago

Kotlin 안전한 null 처리

NullPointerException은 아주 흔하게 볼 수 있는 오류입니다. NullPointerException을 줄여서 NPE라고도 하는데 이 Null을 처음 도입한 "찰스 앤터니 리처드 호어"가 다음과 같이 말했다고 합니다. The Billion Dollar Mistake. : wikipedia 코틀린도 null에 대한 예외는 따로 없습니다. 하지만

00
Chapter 3
Avatarby taehwandev
@taehwandev
over 9 years ago

Kotlin 기본 문법 - 2

코틀린을 사용하기 위한 기본 문법 정리를 진행하였습니다. 이어서 좀 더 심화된 문법을 정리해보고자 합니다. Kotlin에서 제공하는 Data class의 사용법과 함수에 default 정의 등을 알아보려고 합니다. Kotlin 문서 중 Idioms를 참조하여 정리하였습니다. DTOs(Data Transfer Object)(POJOs/POCOs) 생성하기 참

00
Chapter 4
Avatarby taehwandev
@taehwandev
over 9 years ago

Kotlin 기본 타입

코틀린을 시작하기 전에 정리했어야 할 부분인데 지금 정리해보려고 합니다. Kotlin의 기본 타입을 간단하게 정리해보겠습니다. 코틀린 Type 정의 코틀린은 아래와 같은 Type을 사용합니다. Java와 비교해보면 모두 대문자로 시작합니다. Int : 123으로 표현 Long : 123L으로 표현 Double : 123.5로 표현 Float : 123.0F

00
Chapter 5
Avatarby taehwandev
@taehwandev
over 9 years ago

kotlin 주요 class

Kotlin의 기본 클래스를 정리합니다. Kotlin은 별도의 클래스 정의하지 않고, Util을 생성하기도 합니다. 이러한 방법 및 상속시에 사용 가능한 추상 클래스 등을 살펴보도록 하겠습니다. Abstract class Java의 static 메소드 사용하기 Sealed Classes 마무리 코틀린 클래스를 정리해보았습니다. 기본 클래스 선언하는 방법부터

10
Chapter 6
Avatarby taehwandev
@taehwandev
about 9 years ago

Kotlin Function - default, 변수 순서 변경

코틀린 함수에 대해서 정리합니다. default 지정 함수 및 변수 지정 변수 순서 변경 Infix notation default 지정 함수 및 변수 지정 default 지정을 통해 초깃값을 지정할 수 있습니다. 위와 같이 초깃값을 지정할 수 있습니다. setUserInfo를 사용할 때 다음과 같이 지정하면 오류가 발생합니다. !kotlinerror01 초

00
Chapter 7
Avatarby taehwandev
@taehwandev
about 9 years ago

Kotlin Getters/Setters properties 살펴보기

kotlin Getters/Setterss에 대해서 정리합니다. 코틀린 문서 properties 부분에 정리되어 있는 Getters and Setters의 내용을 참고하시면 되겠습니다. Getters/Setters Getters/Setters을 java에서는 직접 구현해야 합니다. annotations을 이용하여 get/set을 자동으로 생성할 수도 있지만

00
Chapter 8
Avatarby taehwandev
@taehwandev
almost 8 years ago

Kotlin lazy property - lateinit/lazy 살펴보기

Kotlin에는 늦은 초기화를 위한 방법 2개를 제공한다. class의 전역에 아래와 같이 값을 생성하면, 클래스가 만들어지는 시점에 변수를 함께 초기화한다. class 생성과 동시에 변수가 초기화되면, 재 접근시 빠르게 접근이 가능하여 이득을 볼 수 있다. 하지만 위 변수를 꼭 사용하는 게 아니라면 오히려 메모리 손해를 볼 수 있다. 필수 요건이 아닌 경

00
Chapter 9
Avatarby taehwandev
@taehwandev
over 8 years ago

Kotlin Higher-Order Functions 사용방법

Kotlin에는 Higher-Order Functions이 제공됩니다. Higher-Order Functions은 함수를 변수로 넘겨주거나, 이를 반환하는 것을 말합니다. 아래 코드는 레퍼런스 문서에 나와있는 lock 함수를 그대로 옮겨왔습니다. lock 함수에 포함된 파라메터 중 body: () -> T는 Higher-Order Functions에 해당합

00
Chapter 10
Avatarby taehwandev
@taehwandev
about 9 years ago

Kotlin constructor init 이란?

kotlin의 constructor 정리해보려고 합니다. 우선 일반적인 java에서의 생성자는 아래와 같이 className(매개 변수) 형태로 정의 가능합니다. 생성자를 여러 개 두더라도 Overloading을 이용하여 이를 해결할 수 있습니다. Kotlin constructor 코틀린 클래스에서 언급하였던 constructor에 대해서 정리하면 아래와

00
Chapter 11
Avatarby taehwandev
@taehwandev
over 8 years ago

Android Kotlin 시작하기

Google I/O 2017 이후 Kotlin은 안드로이드를 개발할 수 있는 또 하나의 정식 언어가 되었습니다. 기존에 작성하였던(2016. 07. 31) 글을 최신으로 업데이트합니다. Android Studio 3.0 정식 버전이 나오면 다음 글은 의미가 없어지긴 하지만 플러그인 설치하는 과정을 다시 정리합니다. Android Studio와 Kotlin

00
Chapter 12
Avatarby taehwandev
@taehwandev
over 8 years ago

Kotlin Generics 정의

kotlin의 Generics을 정리합니다. Java에서 사용하는 Generics과 동일하게 사용할 수 있지만, Kotlin은 Generics 정의한 클래스를 상속받을 때 명시적으로 지정해야 합니다. 다시 말해 java에서는 제네릭 정의를 하지 않아도 기본 Object로 만들어주지만, 코틀린에서는 명시적으로 꼭 적어주도록 만들었습니다. Java Generi

00
Chapter 13
Avatarby taehwandev
@taehwandev
over 8 years ago

Kotlin SAM(Single Abstract Method)을 사용하는 방법

Kotlin에는 SAM Conversions이 제공됩니다. Single Abstract Method의 약자로 SAM이라고 합니다. 이름에서 알 수 있듯 SAM은 하나의 추상 메서드에 대해서 lambdas 식을 제공합니다. 단, Java에서 작성한 Interface 정의와 이를 활용하는 setOnClickListener를 kotlin에서 부르는 경우에만 이에

00
Chapter 14
Avatarby taehwandev
@taehwandev
almost 8 years ago

Kotlin Lambdas

Kotlin을 활용하여 개발을 하면 무조건 만나는 Lambdas 식. 기존 Android 개발에서는 Java 7을 주로 사용하다 보니 Lambda 식을 사용할 일은 없었다. 하지만 Backport 활용으로 Lambda을 적용할 수 있었는데 retrolambda이다. 현재는 Android Studio 3.0 이상에서 구글이 직접 Lambda을 제공하여, 간단

00
Chapter 15
Avatarby taehwandev
@taehwandev
almost 8 years ago

Kotlin 연산자 Overloading

Kotlin에서 기본으로 제공하는 산술 연산자 plus, minus 등을 +, -로 접근한다. 이러한 기법을 Kotlin에서는 Convention이라고 한다. 이번 글에서는 이러한 Convention을 확장하여 사용할 수 있는 Kotlin의 기법을 살펴보려고 한다. 대부분 산술 연산자이며, List와 Map에 접근할 때 사용하는 []등에 대해서 살펴본다.

00
Chapter 16
Avatarby taehwandev
@taehwandev
almost 8 years ago

Kotlin 작성한 코드 Decompile

내가 작성한 Kotlin 코드가 Java로 어떻게 표현되는지 궁금할 수 있다. 이런 경우 Android Studio에서 제공하는 byte 코드 Decompile을 통해 Java로 표현되는 코드를 확인할 수 있는데 이 글에서 간단하게 디컴파일 하는 방법을 살펴보려고 한다. Kotlin Decompile Android Studio에서 Kotlin 플러그인이 설

00
Chapter 17
Avatarby taehwandev
@taehwandev
over 7 years ago

Kotlin 더 잘 활용하기

러닝 커브가 낮은 Kotlin 학습 방법 및 적용 방법은 다양하다. Java와 Kotlin 언제든 혼용해서 사용할 수 있는 매력적인 언어이다. 그렇다고 안드로이드 전용의 개발 언어는 아닌데 JVM 위에서 동작하는 대부분에 적용이 가능하며, 더 나아가 Kotlin native를 통해 LLVM 컴파일을 할 수 있도록 배포 중인데 우선 iOS에서 이를 활용할 수

00
Chapter 18
Avatarby taehwandev
@taehwandev
over 7 years ago

Kotlin Coroutines을 알아보고, 안드로이드에 library 적용하기

async/await 이야기가 가장 흔한 coroutine. 안드로이드 개발자도 이제 coroutine을 적용할 수 있다. kotlin에 Coroutine을 제공하고 있는데, Kotlin 1.1부터 제공하고 있다. 다만 아직은 별도 라이브러리를 통해 Coroutine을 제공하고 있다. 추후 Coroutine은 1.3부터 공식적으로 Kotlin에 포함되어있어

00
Chapter 19
Avatarby taehwandev
@taehwandev
over 5 years ago

Kotlin Delegation을 알아보고, Delegated Properties와 class에서의 Delegation을 알아본다.

Kotlin은 Delegation을 제공하고, 매우 유용하게 사용할 수 있다. 매우 흔하게 볼 수 있는 by lazy {}를 통해 Delegated Properties을 알아보고, class에서 활용할 수 있는 Delegation을 알아본다. 이 글에서 알아볼 내용 Delegation을 알아본다. Delegated Properties를 알아본다. Lazy를

00