Back-End/Spring Boot + Kotlin
Kotlin 기본 문법
김검정
2025. 3. 5. 15:00
1. 변수와 상수
Kotlin에서는 변수를 선언할 때 var 와 상수를 선언할 때 val 키워드를 사용한다.
- var : 값이 변경 가능한 변수
- val : 값이 변경 불가능한 변수
fun main() {
var age: Int = 20 // 가변 변수
val name: String = "Alice" // 불변 변수 (상수)
println("이름: $name, 나이: $age")
age = 21 // 값 변경 가능
println("변경된 나이: $age")
}
2. 타입 추론
Kotlin은 변수의 타입을 자동으로 추론한다. 명시적으로 타입을 지정하지 않아도, 초기 값으로부터 타입을 유추할 수 있다.
fun main() {
val language = "Kotlin" // String 타입으로 추론됨
val version = 1.5 // Double 타입으로 추론됨
println("언어: $language, 버전: $version") // "언어 : Kotlin, 버전 : 1.5"
}
따라서 타입을 생략해도 컴파일러가 올바른 타입을 추론해주므로 코드가 간결해진다.
3. 문자열 템플릿
Kotlin에서는 문자열 내에서 변수 값을 쉽게 사용할 수 있는 문자열 템플릿 기능을 제공한다.
fun main() {
val name = "Bob"
val greeting = "안녕하세요, $name 님!"
println(greeting)
}
문자열 내에 $name 과 같이 사용하면 해당 변수의 값이 문자열에 삽입된다.
4. 조건문
if 문
Kotlin의 if 문은 값으로 반환될 수 있어, 삼항 연산자 대신에 많이 사용된다.
fun main() {
val score = 85
val result = if (score >= 90) "합격" else "불합격"
println("시험 결과: $result")
// 식으로도 사용 가능
val max = if( a > b) {
print("Choose a") // "Choose a" 를 출력하고 max에 a를 대입
a
} else {
print("Choose b") // "Choose b" 를 출력하고 max에 b를 대입
b
}
}
when 문
when 문은 여러 조건을 처리할 때 사용하며, Java의 switch 문보다 더 유연하다.
fun main() {
val day = 3
val dayName = when(day) {
1 -> "월요일"
2 -> "화요일"
3 -> "수요일"
4 -> "목요일"
5 -> "금요일"
6 -> "토요일"
7 -> "일요일"
else -> "알 수 없음"
}
println("오늘은 $dayName 입니다.")
// 값 비교
val x = 5
when (x) {
1 -> println("x는 1이다")
2, 3 -> println("x는 2 또는 3이다")
in 4..10 -> println("x는 4와 10 사이에 있다")
else -> println("x는 다른 수이다")
}
// 타입 비교
val data: Any = "Hello, World!"
when (data) {
is String -> println("data is a String: $data")
is Int -> println("data is an Int: $data")
is Boolean -> println("data is a Boolean: $data")
else -> println("data is something else: $data")
}
// 조건식
val y = 7
val z = when {
y == 5 -> "y는 5이다"
y == 7 -> "y는 7이다"
else -> "y는 다른 수이다."
}
println(z)
}
5. 반복문
for 문
for 문은 컬렉션이나 범위(range)를 쉽게 순회할 수 있다.
fun main() {
for (i in 1..5) { // 1부터 5까지의 범위
println("현재 값: $i")
}
val fruits = listOf("사과", "바나나", "체리")
for (fruit in fruits) {
println("과일: $fruit")
}
}
while 문
기본적인 while 루프도 Java와 동일하게 사용할 수 있다.
fun main() {
var count = 0
while (count < 3) {
println("카운트: $count")
count++
}
}
6. 함수
Kotlin에서 함수는 fun 키워드를 사용해 정의한다.
// 인사를 출력하는 함수
fun sayHello(name: String): String {
return "안녕하세요, $name 님!"
}
fun main() {
val message = sayHello("Charlie")
println(message)
}
또, 함수의 몸체가 단 한줄이라면 중괄호와 return 키워드를 생략할 수도 있다.
fun add(a: Int, b: Int) = a + b
fun main() {
println("5 + 3 = ${add(5, 3)}")
}
7. 클래스와 객체
Kotlin에서는 클래스를 사용해 객체 지향 프로그래밍을 할 수 있다.
// Person 클래스 정의
class Person(val name: String, var age: Int) {
fun introduce() = "제 이름은 $name이고, 나이는 $age살입니다."
}
fun main() {
val person = Person("David", 30)
println(person.introduce())
// age 값 변경 가능 (var로 선언)
person.age = 31
println("나이 업데이트: ${person.age}")
}
Person 클래스를 정의하고, 생성자를 통해 name과 age 값을 초기화하며, 멤버 함수 introduce()로 자기소개를 한다.