코딩하는 개굴이

[Kotlin IN ACTION] 코틀린이란 무엇이고 왜 필요할까? 본문

안드로이드/KOTLIN

[Kotlin IN ACTION] 코틀린이란 무엇이고 왜 필요할까?

개굴이모자 2021. 3. 21. 16:39
반응형

본 내용은 Kotlin IN ACTION (드미트리 제메로프, 스베트라나 이사코바 지음 / 에이콘 출판사) 책을 기반으로 작성되었습니다.

Kotlin IN ACTION 1강 : 코틀린이란 무엇이며, 왜 필요한가?

Kotlin 이란?

  • 코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어
  • 대표적으로 서버상의 코드 (웹 애플리케이션의 백엔드 등), 안드로이드의 모바일 애플리케이션에 활용 가능
  • 자바와 같이 정적 타입 (statically typed) 지정 언어
    • 정적 타입 지정 언어 : 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있으며, 프로그램 안에서 객체의 필드, 메소드 등의 사용시에 컴파일러가 타입을 검증해 준다.
    • 동적 타입 지정 언어 : 타입과 관계없이 모든 값을 변수에 넣을 수 있고, 객체의 필드, 메소드 등의 검증이 실행 시점에 일어난다. 코드가 더 짧아지고, 데이터 구조를 더 유연하게 사용할 수 있으나, 네이밍 및 실수 등이 컴파일 시 걸러지지 않고 실행 시점에 오류로 발생한다. Groovy, JRuby 가 예시이다.
  • 정적 타입 지정 언어임에도, 자바와 달리 코틀린은 컴파일러가 문맥으로부터 변수 타입을 자동으로 유추하여 모든 변수의 타입을 직접 명시하지 않아도 변수 타입을 결정하는 타입 추론 가능
  • 코틀린은 또한 null 이 될 수 있는 타입인 nullable type을 지원
    • 컴파일 시점에 Null pointer exception 여부를 검사하여 신뢰성을 넢임
  • 함수 타입을 지원하여, 함수형 프로그래밍의 장점인 간결성, 다중 스레드 사용에도 안전성, 독립적인 테스트를 확보할 수 있다.
  • 무료 오픈소스
  • 실용적이고 안전하며, 간결하고 상호운용성이 좋다.

코틀린 응용

코틀린 서버 프로그래밍

  • 자바 코드와 상호운용 가능
  • 빌더 패턴을 활용하여 간결하게 구현 가능
  • DSL 기능을 사용가능 (Exposed 프레임워크로 SQL 데이터베이스의 구조를 기술할 수 있는 DSL제공)

    코틀린 안드로이드 프로그래밍

  • 애플리케이션의 신뢰성이 높아짐 (Null pointer 문제를 줄여준다.)
  • 자바 6와 완전히 호환된다.
  • 성능 측면에서 손해가 없다.
    • 자바와 비교해 런타임 시스템 및 패키징 애플리케이션도 그리 늘어나지 않는다.
    • 람다 함수를 inlining 하여 람다 사용시에도 새로운 객체가 생성되지 않으므로, 객체 증가로 인한 가비지 컬렉션 유발을 최소화한다.
반응형
Comments