[kotlin] 가이드라인

목차

들어가기

Kotlin은 JetBrains에 의해 만들어진 정적 타입 프로그래밍 언어로, Java Virtual Machine (JVM) 상에서 동작합니다. 안드로이드 개발을 비롯한 다양한 애플리케이션 개발에 널리 사용되고 있습니다.

변수 및 데이터 타입

Kotlin에서는 변수를 선언할 때 var 또는 val 키워드를 사용합니다. var는 일반적인 변수를 선언할 때 사용하고, val은 불변(immutable) 변수를 선언할 때 사용합니다.

var x: Int = 10
val name: String = "John"

조건문과 반복문

조건문인 if-else 문과 반복문인 for 루프, while 루프가 Kotlin에서 사용됩니다.

// if-else 문
if (x > 5) {
    println("x는 5보다 큽니다")
} else {
    println("x는 5보다 작거나 같습니다")
}

// for 루프
for (i in 1..5) {
    println(i)
}

// while 루프
var i = 0
while (i < 5) {
    println(i)
    i++
}

함수와 람다 표현식

Kotlin에서 함수를 정의할 때는 fun 키워드를 사용합니다. 람다 표현식은 { } 안에 파라미터와 함수 본문을 정의하는 방식으로 사용됩니다.

// 함수 정의
fun add(a: Int, b: Int): Int {
    return a + b
}

// 람다 표현식
val sum: (Int, Int) -> Int = { a, b -> a + b }

클래스와 객체

클래스와 객체는 Kotlin에서 주요한 개념으로, class 키워드를 사용하여 클래스를 정의하고, object 키워드를 사용하여 싱글톤 객체를 생성합니다.

// 클래스 정의
class Person(val name: String, var age: Int)

// 객체 생성
val person = Person("John", 30)

확장 함수 및 멤버 함수

Kotlin은 기존 클래스에 새로운 함수를 추가할 수 있는 확장 함수를 제공합니다. 또한, 멤버 함수도 일반적으로 사용됩니다.

// 확장 함수
fun String.addHello(): String {
    return "Hello, $this"
}

// 멤버 함수
class Person {
    fun speak() {
        println("Hello!")
    }
}

널 안전성

널 안전성은 Kotlin에서 중요한 특징으로, 변수의 값이 null이 될 수 있는지 여부를 명시적으로 표시합니다.

val name: String = "John"
val nullableName: String? = null

코루틴

코루틴은 Kotlin에서 제공하는 비동기 프로그래밍을 위한 라이브러리로, 블로킹되지 않고 비동기 코드를 작성할 수 있게 합니다.

fun fetchData() {
    viewModelScope.launch {
        val data = fetchDataFromNetwork()
        // 비동기 작업 처리
    }
}

확장함수

확장함수는 Kotlin에서 기존 클래스의 멤버 함수를 추가하는 데 사용되며, 확장 함수를 통해 라이브러리 클래스에 새로운 함수를 추가할 수 있습니다.

fun String.removeWhitespace(): String {
    return this.replace(" ", "")
}

모든 Kotlin 프로그래밍 언어의 기능 및 사용법은 Kotlin 공식 문서에서 확인할 수 있습니다.