1) Kotlin 소개

SOCICAL·2024년 6월 16일

android

목록 보기
20/20
post-thumbnail

# 소개

  • 이름의 유래: Kotlin 이름은 개발 당시 JetBrains의 R&D 센터가 위치했던 상트페테르부르크 근처의 코틀린(Ко́тлин) 섬에서 따왔습니다.

  • 출시: Kotlin은 IntelliJ IDEA의 개발사 JetBrains 에서 2011년에 공개한 오픈 소스 프로그래밍 언어입니다.

  • JVM 기반: Kotlin은 JVM(Java Virtual Machine)에서 실행되며, Java와 유사한 문법을 가지고 있지만, 더 간결하고 다양한 기능을 제공합니다.

  • 안드로이드 공식 언어: 2017년에 구글이 Kotlin을 안드로이드의 공식 언어로 추가했습니다. 2019년 1월부터 구글 내부의 안드로이드 프로젝트에서도 Kotlin을 사용하기 시작하면서, 안드로이드 공식 문서의 샘플 코드도 주로 Kotlin으로 제공됩니다.


# 특징

  • 간결한 문법: Kotlin은 간결한 문법을 제공하여 코드의 가독성을 높이면서도 런타임 오버헤드가 거의 없습니다.

  • 널 안정성: Kotlin은 널 안정성을 제공하여, 변수는 Nullable과 NotNull로 구분됩니다. 변수 선언 시 '?'를 붙여 Nullable로 만들 수 있습니다.

    var nullableString: String? = "Hello"
    var nonNullableString: String = "World"
  • 예외처리 강제 없음: Kotlin은 예외처리를 강제하지 않습니다. 예를 들어, JSON 객체를 만들 때 try-catch 블록을 필수로 사용하지 않아도 됩니다.

  • 모든 함수가 리턴값을 가짐: Kotlin의 모든 함수는 리턴값을 가집니다. Unit(Java의 void와 유사)을 리턴하는 함수도 있습니다.

    fun sayHello(): Unit {
        println("Hello")
    }
  • Primitive 타입은 객체로 취급: Kotlin에서는 모든 primitive 타입이 객체로 취급됩니다. 예를 들어, Int 타입의 변수는 객체 메서드를 호출할 수 있습니다.

    val number: Int = 10
    println(number.toString())  // "10"
  • 확장 함수와 연산자 오버로딩: Kotlin은 확장 함수와 연산자 오버로딩을 지원합니다.

    fun Int.power(x: Int): Int {
        return this.toDouble().pow(x).toInt()
    }
    
    val result = 3.power(4)  // 81
  • ==, != 연산자는 내용물 비교: Kotlin의 ==!= 연산자는 객체의 내용물을 비교합니다. Java의 equals() 메서드와 동일한 동작을 합니다.

    val string1 = "Hello"
    val string2 = "Hello"
    println(string1 == string2)  // true
    println(string1 === string2) // false, if different references
  • 정적 메서드 없음: Kotlin에서는 정적 메서드가 없으며, 대신 companion object를 사용하여 정적 멤버를 정의합니다.

    class MyClass {
        companion object {
            fun myMethod() = "Hello"
        }
    }
    
    println(MyClass.myMethod())  // "Hello"
  • Java와의 100% 상호 운용성: Kotlin은 Java와 완전히 상호 운용됩니다. Java 코드를 Kotlin에서 사용할 수 있고, 그 반대도 가능합니다.

    // Java 코드
    public class JavaClass {
        public static String greet() {
            return "Hello from Java";
        }
    }
    
    // Kotlin 코드
    fun main() {
        println(JavaClass.greet())  // "Hello from Java"
    }
  • open 키워드로 클래스 상속: Kotlin에서는 기본적으로 클래스가 final로 선언됩니다. 클래스 상속을 허용하려면 open 키워드를 사용해야 합니다.

    open class Parent
    class Child : Parent()




참고자료
나무위키: https://namu.wiki/w/Kotlin

0개의 댓글