Kotlin 문법 기초 가이드
코틀린(Kotlin)은 현대적인 프로그래밍 언어로, 간결한 문법과 강력한 기능을 제공하여 Java의 대안으로 널리 사용되고 있습니다. JetBrains에서 개발한 코틀린은 Android 개발뿐만 아니라 백엔드 애플리케이션 개발에서도 큰 인기를 끌고 있습니다. 본 문서에서는 코틀린의 핵심 문법을 실무 중심으로 정리하고, 예제 코드를 통해 실용적인 활용 방법을 소개합니다.
1. 변수 선언 (Variables)
코틀린은 val과 var 키워드를 사용하여 변수를 선언합니다.
- val : 불변 변수 (Immutable). 값을 변경할 수 없습니다.
- var : 가변 변수 (Mutable). 값을 변경할 수 있습니다.
fun main() {
val name: String = "임나현" // 불변 변수
var age: Int = 28 // 가변 변수
println("Name: $name, Age: $age")
// age 값을 변경
age = 29
println("Updated Age: $age")
}
실무 팁:
- 가능한 한 val을 사용하여 불변성을 유지하는 것이 권장됩니다. 이는 코드의 안정성과 가독성을 높이는 데 도움이 됩니다.
2. 함수 선언 (Functions)
코틀린에서 함수는 fun 키워드를 사용하여 선언합니다.
fun add(a: Int, b: Int): Int {
return a + b
}
fun main() {
val result = add(3, 5)
println("Result: $result")
}
단일 표현식 함수:
코틀린에서는 단일 표현식 함수를 = 기호로 간결하게 표현할 수 있습니다.
fun multiply(a: Int, b: Int) = a * b
3. 조건문 (Conditional Statements)
코틀린의 조건문은 if와 when을 사용합니다.
if-else 문:
fun maxOf(a: Int, b: Int): Int {
return if (a > b) a else b
}
when 문:
when은 Java의 switch 문을 대체하며 더욱 강력하고 유연한 문법을 제공합니다.
fun getGrade(score: Int): String {
return when (score) {
in 90..100 -> "A"
in 80..89 -> "B"
in 70..79 -> "C"
else -> "F"
}
}
4. 클래스와 객체 (Classes and Objects)
코틀린은 클래스 선언이 간결하며, constructor 키워드를 생략할 수 있습니다.
class Person(val name: String, var age: Int) {
fun introduce() {
println("Hello, my name is $name and I am $age years old.")
}
}
fun main() {
val person = Person("임나현", 28)
person.introduce()
}
데이터 클래스 (Data Classes):
코틀린은 데이터 보관용 클래스를 간단히 만들 수 있도록 data class를 제공합니다.
data class User(val id: Int, val name: String)
fun main() {
val user = User(1, "임나현")
println(user)
}
5. 컬렉션 (Collections)
코틀린은 다양한 컬렉션 타입을 제공합니다: 리스트(List), 집합(Set), 맵(Map).
리스트:
val fruits = listOf("Apple", "Banana", "Cherry") // 불변 리스트
val mutableFruits = mutableListOf("Apple", "Banana") // 가변 리스트
mutableFruits.add("Cherry")
맵:
val userMap = mapOf(1 to "임나현", 2 to "김철수")
val mutableUserMap = mutableMapOf(1 to "임나현")
mutableUserMap[2] = "김철수"
6. Null 처리 (Null Safety)
코틀린은 NullPointerException(NPE)을 방지하기 위해 강력한 Null 안전성을 제공합니다.
Nullable 타입:
var name: String? = null
fun printLength(name: String?) {
println(name?.length ?: "Name is null")
}
엘비스 연산자 (?:):
엘비스 연산자는 값이 null일 경우 기본값을 제공하는 데 사용됩니다.
val length = name?.length ?: 0
7. 확장 함수 (Extension Functions)
기존 클래스에 새로운 함수를 추가할 수 있는 확장 함수는 코틀린의 강력한 기능 중 하나입니다.
fun String.addPrefix(prefix: String): String {
return "$prefix$this"
}
fun main() {
val name = "나현"
println(name.addPrefix("임"))
}
결론
코틀린은 간결하고 안전한 문법을 제공하여 개발자의 생산성을 높이고 코드 품질을 향상시킵니다. 본 가이드에서는 코틀린의 핵심 문법을 소개하였으며, 이를 실무 프로젝트에 적용하여 더 나은 코드 품질을 유지할 수 있습니다. 앞으로 코틀린의 심화 기능과 Best Practice도 지속적으로 학습하여 적용해 나가는 것이 중요합니다.
'프로그래밍 언어 > Kotlin' 카테고리의 다른 글
[Kotlin] 코루틴 (Coroutines) 활용법 (0) | 2025.01.05 |
---|---|
[들어가며, Kotlin 기초] Java 백엔드 개발자의 코틀린 입문. (0) | 2024.09.22 |