코틀린 기술면접  질문과 답변 10가지

코틀린 기술면접  질문과 답변 10가지
Cozy CodingPosted On Sep 10, 20243 min read

1. 질문: 코틀린이란 무엇이며, 왜 사용해야 하나요?

답변: 코틀린은 JVM(Java Virtual Machine)에서 실행되는 정적 타입의 프로그래밍 언어로, Java와 완전히 상호 운용이 가능합니다. 안드로이드 개발에 사용되며 간결한 구문, 안전 기능(예: null 안전성) 및 보일러플레이트 코드를 줄이는 데 도움이 되는 현대적인 언어 구조로 유명합니다.

2. 질문: 코틀린에서 변수를 선언하는 방법은 무엇인가요?

A: 코틀린에서는 val 또는 var을 사용하여 변수를 선언할 수 있습니다. val은 읽기 전용 변수(불변)에 사용되고, var은 변경 가능한 변수에 사용됩니다.

val name: String = "Taylor Alison Swift"
var age: Int = 34

3. Q: 코틀린에서 nullable 타입은 무엇이며, null 값은 어떻게 처리하나요?

A: 코틀린에서는 변수 타입 뒤에 물음표 ?를 추가하여 null 값을 보유할 수 있는 변수를 선언할 수 있습니다. null 값을 처리하기 위해 안전 호출 ?., 엘비스 연산자 ?: 또는 !!을 사용하여 값이 null 인 경우 NullPointerException을 throw할 수 있습니다.

var name: String? = null
println(name?.length ?: "이름이 제공되지 않았습니다") // 안전한 호출 및 엘비스 연산자

4. 질문: Kotlin에서 데이터 클래스란 무엇이며 어떻게 사용되나요?

A: Kotlin에서 데이터 클래스는 주로 데이터를 보유하는 데 사용되는 클래스입니다. 주요 생성자에 정의된 속성에 기반하여 equals(), hashCode(), toString(), copy()와 같은 유용한 메서드를 자동으로 생성합니다.

data class User(val name: String, val age: Int, val nation: String)

5. 질문: Kotlin에서 함수를 어떻게 정의하나요?

답변: Kotlin에서 함수는 fun 키워드를 사용하여 정의하며, 함수 이름, 매개변수 및 반환 유형을 포함합니다.

fun greetingToYou(name: String): String {
    return "How you doin', $name!"
}

6. 질문: Kotlin에서 확장 함수란 무엇인가요?

A: Kotlin에서의 확장 기능은 기존 클래스에 새로운 기능을 추가할 수 있게 해줍니다. 이 기능은 클래스 바깥에 정의되지만 클래스의 메소드인 것처럼 호출할 수 있습니다.

fun String.addExclamation(): String {
    return this + "!!"
}
// 사용 예:
val greetingForYou = "Yoo".addExclamation() // "Yoo!"

7. Q: Kotlin의 동반 객체란 무엇인가요?

A: 동반 객체는 클래스에 묶여 있지만 클래스의 인스턴스에 묶여 있지 않은 객체입니다. 정적 멤버와 함수를 보관하는 데 사용할 수 있습니다.

class MyClass {
    companion object {
        fun create(): MyClass = MyClass()
    }
}
// 사용법:
val classInstance = MyClass.create()

8. Q: Kotlin에서 싱글톤을 어떻게 생성하나요?

A: Kotlin에서는 object 키워드를 사용하여 싱글톤을 생성할 수 있습니다. object 선언은 한 번만 인스턴스를 가지고 있고 액세스 시에 생성되는 클래스입니다.

object InternetConnection {
    fun connectToInternet() {
        println("인터넷에 연결되었습니다.")
    }
}
// 사용법:
InternetConnection.connectToInternet()

9. 질문: Kotlin에서 ==와 ===의 차이는 무엇인가요?

답변: Kotlin에서 ==는 구조적 동등성을 확인합니다 (Java의 equals()와 동등), 즉 값들을 비교합니다. ===는 참조 동등성을 확인하며, 두 참조가 메모리에서 같은 객체를 가리키는지 확인합니다.

10. 질문: Kotlin에서 when 표현식을 어떻게 사용하나요?

답변: Kotlin에서 when 표현식은 다른 언어의 switch에 대한 강력한 대안입니다. 표현식이나 문으로 사용할 수 있습니다. 예시:

fun getMonthOfYear(day: Int): String {
    return when (day) {
        1 -> "January"
        2 -> "February"
        3 -> "March"
        4 -> "April"
        5 -> "May"
        6 -> "June"
        7 -> "July"
        8 -> "August"
        9 -> "September"
        10 -> "October"
        11 -> "November"
        12 -> "December"
        else -> "Invalid month"
    }
}