본문 바로가기
프로그래밍언어/Kotlin

[Kotlin] : 코틀린이란 무엇이며 왜 필요한가?

by 오주현 2022. 4. 17.
반응형

코틀린,Kotlin은 무엇인가?

 

자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 간결하고 실용적이고 자바 코드와 호환을 중시한다. 서버 개발 및 안드로이드 앱 개발 분야에서 사용된다.

 

또, 자바 라이브러리나 프레임워크와 함께 사용도 가능하고 성능도 자바와 같은 수준이다.


코틀린 맛 보기 

 

package kotlinInAction

data class Person(
    val name: String,
    val age: Int? = null
)

fun main(args: Array<String>) {

    val persons = listOf(
        Person("영희"),
        Person("철수", age = 29)
    )

    val oldset = persons.maxByOrNull{it.age ?: 0}

println("나이가 제일 많은 사람: $oldset")
}

name, age라는 프로퍼티가 들어간 데이터 클래스를 만든다. age 디폴트 값은 null이 된다.(영희 나이는 null)

 

리스트에서 가장 나이가 많은 사람을 찾기 위해 maxByOrNull 함수를 사용했다.

 


코틀린의 주요 특성

 

서버, 안드로이드, 자바가 실행되는 모든 곳에서 사용이 가능하며 코틀린을 도입하면 더 적은 코드로 더 편하게 프로그래밍 할 수 있다. 이 중에서 주 사용처는, 서버 상의 코드(백엔드)와 안드로이드 디바이스에서 실행되는 모바일 애플리케이션이다.

 

자바와 마찬가지로 코틀린은 정적 타입 지정 언어이다. 컴파일 시점을 알 수 있고 프로그램 안에서 객체의 필드나 메서드를 사용할 떄 마다 컴파일러가 타입을 검증해 준다는 뜻이다.

 

하지만 자바와 달리 모든 변수 타입을 프로그래머가 직접 명시할 필요가 없다. 코틀린 컴파일러가 변수 타입을 자동으로 유추한다.

var x = 1

이렇게 변수 타입을 적지 않아도 자동으로 정수로 초기화한다. 이렇게 문맥을 고려해 변수 타입을 결정하는 기능을 타입 추론, type inference라고 한다.

 

정적 지정 타입의 장점은 아래와 같다.

  1. 메서드 호출이 더 빨라 성능이 좋다.
  2. 컴파일러가 정확성을 검증하기 때문에 신뢰성이 높다.
  3. 객체가 어떤 타입에 속하는지 알 수 있어 유지 보수가 편하다.
  4. 안전하게 리팩토링이 가능하고 더 정확한 코드 완성 기능을 제공한다. 즉, 도구 지원이 좋다.

코틀린 코드 컴파일

 

코틀린 소스 코드를 저장할 때 .kt 라는 확장자를 사용한다. 컴파일을 하면 코틀린 컴파일러가 .class 파일을 만든다.

 

코틀린 컴파일러로 컴파일한 코드는 코틀린 런타임 라이브러리에 의존한다. 런타임 라이브러리에는 코틀린 자체 표준 라이브러리 클래스와 코틀린에서 자바 API의 기능을 확장한 내용이 있다. 코틀린으로 컴파일한 애플리케이션을 배포할 때 런타임 라이브러리도 같이 배포해야 한다.

 

메이븐, 그레이들은 애플리케이션을 패키지할 때 알아서 코틀린 런타임을 포함시켜준다.


반응형

댓글