Kotlin-In-Action | #1. 코틀린이란 무엇이며, 왜 필요한가?

보람·2022년 4월 21일
0

Kotlin-In-Action

목록 보기
2/12

코틀린(Kotlin)

코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 코틀린은 간결하고 실용적이며, 자바 코드와의 상호운용성(interoperability)을 중시한다. 코틀린의 주목적은 현재 자바가 사용되는 모든 용도에서 적합하면서도 간결하고 생산적이며 안전한 대체 언어를 제공하는 것이다.

코틀린 맛보기

/**
 * '데이터' 클래스 Person
 * 읽기전용 파라미터 name, age(null을 허용)
 **/
data class Person(val name: String,
                  val age: Int? = null) 

// 최상위 함수 main
fun main(args: Array<String>) {
    //Person 객체 리스트 변수
    //Person의 두번째 파라미터인 age는 값을 넣어도 되고 안넣어도 된다.
    //또한 age라는 이름을 명시해서 age=29라는 코드를 작성해도 된다.
    val persons = listOf(Person("Alice"),
                         Person("Bob", age = 29))

    //람다식과 엘비스연산자(?:)
    //나이가 가장 많은 사람을 구하되 age가 없으면(null이면) 0으로 둔다.
    val oldest = persons.maxBy { it.age ?: 0 }
    //문자열 템플릿 "" <- 안에 $oldest라는 변수를 사용할 수 있다.
    println("The oldest is: $oldest")
}

자바를 사용해본 사람이면 굉장히 짧아졌다라는 것을 느낄 수 있다!

코틀린의 주요 속성

타입추론을 지원하는 "정적 타입 지정 언어"

  • 타입 추론 : 컴파일러가 문맥을 고려해 변수 타입을 결정
  • 소스코드의 정확성과 성능을 보장 & 간결하면서도 소스코드를 간결하게 유지 가능
    • 성능 : 실행 시점에 어떤 메서드를 호출할지 알아내는 과정이 필요 없으므로 메서드 호출이 더 빠르다.
    • 신뢰성 : 컴파일러가 프로그램의 정확성을 검증하여 실행시 프로그램이 오류로 중단될 가능성이 더 적어진다.
    • 유지 보수성 : 객체가 어떤 타입에 속하는지 알 수 있어 처음 보는 코드를 다루기 쉽다.

함수형 프로그래밍, 객체지향 프로그래밍 스타일 모두 지원

  • 함수형 프로그래밍 핵심 개념
    • 함수를 일반 값처럼 다룰 수 있다.
    • 불변성 : 생성후 내부 상태가 절대 바뀌지 않음
      • 다중 스레드 환경에서 유용
    • 쉬운 테스트 : 독립적인 테스트 가능

이 모든 것을 함수형 프로그래밍을 지원하는 코틀린에서 누릴 수 있다!

코틀린의 철학

간결성

개발자는 코드를 새로 작성하는 시간보다 기존 코드를 읽는 시간이 더 오래 걸린다(사실임..)
코드가 더 간단하고 간결할수록 내용을 파악하기가 더 쉽다.
코틀린 설계자들은..

  • 작성에 의미없는 부분을 줄이고
  • 언어의 요구를 만족하고자 넣은 부수적인 요소를 줄이기 위해 노력했다.
    • 게터,세터 제거
    • 생성자 파라미터 개선

(등등 앞으로 더 감동받을 만한 것들이 많이 나온다🌝)

안전성

프로그래밍 언어가 안전하다는 말은 프로그램에서 발생할 수 있는 오류를 프로그램 설계가 원천적으로 방지해준다는 뜻이다. 그 어떤 언어도 모든 오류를 다 막을 수는 없지만 코틀린은 자바보다 더 높은 안전성을 달성하되 더 적은 리소스를 지불하도록 설계했다.

  • JVM에서 실행 : 메모리안전성 보장, 버퍼 오버플로 방지
  • NullPointerException을 막기위한 노력(T?, T)
  • ClassCastException을 막기위한 노력 -> 타입 검사(value is String)

상호운용성

많은 자바개발자들이 원하는 "기존 라이브러리를 사용할 수 있는가" -> Yes이다.
자바와 아무런 제약 없이 통합될 수 있는 언어를 맞추는데 초점을 맞췄다는 뜻이다.

TMI

  • 코틀린 개발팀 대부분이 살고 있는 러시아의 상트페테르부르크 근처에 있는 섬이름인 코틀린
profile
백엔드 개발자

0개의 댓글