이 프로젝트는 Kotlin을 처음 배우는 Java 개발자를 대상으로 기본 문법부터 고급 주제까지 다룹니다. Kotlin의 간결함과 강력한 기능을 이해하고 활용할 수 있도록 예제와 설명을 제공합니다.
- 기초 문법
- Kotlin 소개
- 기본 구조
- 변수와 타입
- 함수
- 조건문과 반복문
- 중급 문법
- 클래스와 객체
- 상속과 다형성
- 인터페이스
- 컬렉션
- 람다와 고차 함수
- 고급 문법
- 확장 함수
- 코틀린 DSL
- 코루틴
- null 안정성
- Kotlin/JVM, Kotlin/Native, Kotlin/JS
Kotlin은 JetBrains에서 개발한 프로그래밍 언어로, 간결함과 안정성을 목표로 만들어졌습니다. Java와 100% 호환되며 Android 개발에서 널리 사용됩니다.
fun main() {
println("Hello, Kotlin!")
}Kotlin에서는 val과 var 키워드를 사용해 변수를 선언합니다.
val: 변경 불가능한 변수(Immutable)var: 변경 가능한 변수(Mutable)
val name: String = "Kotlin" // 변경 불가
var age: Int = 10 // 변경 가능
age = 20Kotlin의 함수는 fun 키워드로 선언합니다.
fun sum(a: Int, b: Int): Int {
return a + b
}
// 단일 표현식 함수
fun multiply(a: Int, b: Int) = a * b// 조건문
val max = if (a > b) a else b
// 반복문
for (i in 1..5) {
println(i)
}
while (x > 0) {
x--
}Kotlin에서 클래스는 간결하게 정의할 수 있습니다.
class Person(val name: String, var age: Int)
val person = Person("John", 30)
println(person.name) // JohnKotlin의 클래스는 기본적으로 final입니다. 상속하려면 open 키워드를 사용합니다.
open class Animal {
open fun sound() {
println("Animal sound")
}
}
class Dog : Animal() {
override fun sound() {
println("Bark")
}
}interface Drivable {
fun drive()
}
class Car : Drivable {
override fun drive() {
println("Driving a car")
}
}Kotlin에서는 List, Set, Map 등의 컬렉션을 쉽게 사용할 수 있습니다.
val numbers = listOf(1, 2, 3) // 읽기 전용 리스트
val mutableNumbers = mutableListOf(1, 2, 3)
mutableNumbers.add(4)람다 표현식과 고차 함수로 간결한 코드를 작성할 수 있습니다.
val sum = { a: Int, b: Int -> a + b }
println(sum(3, 4)) // 7
fun applyOperation(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
println(applyOperation(3, 4, sum)) // 7기존 클래스에 함수를 추가할 수 있습니다.
fun String.addPrefix(prefix: String): String {
return "$prefix$this"
}
println("Kotlin".addPrefix("Hello, ")) // Hello, KotlinKotlin DSL(Domain-Specific Language)로 간결한 문법을 구현할 수 있습니다.
fun html(block: Html.() -> Unit): Html = Html().apply(block)
class Html {
fun body(block: Body.() -> Unit) {
println("<body>")
Body().apply(block)
println("</body>")
}
}
class Body {
fun p(text: String) {
println("<p>$text</p>")
}
}
// 사용 예시
html {
body {
p("Hello, Kotlin DSL!")
}
}비동기 작업을 쉽게 관리할 수 있습니다.
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000L)
println("World!")
}
println("Hello,")
}Kotlin은 NullPointerException을 방지하기 위해 null 안전성을 제공합니다.
var name: String? = null
println(name?.length) // nullKotlin은 다양한 플랫폼에서 실행될 수 있습니다.
- Kotlin/JVM: Java와 완벽히 호환
- Kotlin/Native: 네이티브 코드로 컴파일
- Kotlin/JS: JavaScript로 컴파일