본문 바로가기
Study/다재다능 코틀린 프로그래밍

Day 1. 코틀린 시작하기

반응형
본 포스트는 지인들과 스터디한 내용을 정리한 포스트입니다

 

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788931463422 

 

다재다능 코틀린 프로그래밍 - 교보문고

다양한 프로그래밍 패러다임으로 살펴보는 코틀린 기본서 | 코틀린은 멀티패러다임 프로그래밍 언어다. 코틀린은 스크립트로 사용할 수도 있고, 객체지향 코드나 함수형 코드, 비동기 프로그램

www.kyobobook.co.kr


1. 코틀린을 왜 배워야할까?

  • 코틀린은 많은 언어들의 장점만 뽑아서 블랜더에 넣고 섞은 결과물이다 ( 다양성 )
  • 코틀린은 기존에 사용하던 언어들이 지닌 익숙한 개념을 통해 처음 접한 개발자들에게도 편안함을 준다
    • 코틀린은 Java와 형태는 다르지만, 의미상으로는 유사한 문법을 가지고 있다 ( Java 개발자라면 더 편안함 )
  • 추가로 새로운 개념 도입을 통해 이전에 사용하던 언어보다 더 생산성을 높이도록 만들어준다
  • 보일러 플레이트(Boilerplate Code, 프로그래밍 언어에서 기본적으로 작성해야만 하는 코드) 코드를 덜 쓰도록 해준다.
  • 명령형 프로그래밍 + 함수형 프로그래밍을 섞어서 쓸 수 있게 해준다 ( 한 가지 방식으로 만든 후 나중에 원하는 방식으로 리팩토링을 빠르게 할 수 있다 )
  • 다른 언어보다 많은 오류들을 컴파일 시점에서 잡을 수 있다
  • 코루틴을 이용해 다른 JDK에서 사용 가능한 언어들보다 비동기 프로그래밍을 쉽게 만들 수 있다 ( 높은 성능까지 보장 )
  • Java 코드를 쓰고 있는 상태라면 코틀린과 병행하여 작성할 수 있다 ( 점진적으로 도입 가능 )
  • 코틀린은 안드로이드 진영 공식 언어이다

 

2. 코틀린 사용하기

  • 실행 방법
    • 코틀린은 코드를 실행할 수 있는 여러 방법을 제공 ( Java와 다르게 모든 코드를 컴파일 할 필요가 없다 )
    • 코드 그 자체로 실행 가능
    • 원한다면 소스 코드를 파일 안에서 바로 시작할 수 있다
    • 클래스파일을 만들고 다른 클래스나 코틀린 파일을 사용하기 위해서 바이너리를 재사용할 수도 있다
    • JVM에서 실행 가능
    • JS 엔진에서도 실행 가능
    • 기타 등등등....
  • 코틀린 SDK 설치 ( 필자는 intelliJ IDE를 사용하기 때문에 기본적으로 코틀린이 설치되어 있다.... )
    • 1.6 이상의 JDK 필요 ( 기존의 openJDK가 있으면 다른 설치없어도 된다 )
  • 코틀린 실행 과정
    • 예제 ( Hello.kt )
      fun main() = println("Hello World")​
       
    • 코틀린 컴파일러 이용
      • Hello.kt 파일에 있는 코드를 Java 바이트코드로 컴파일시키고 Hello.jar파일을 만든다
        kotlinc-jvm Hello.kt -d Hello.jar​
      • java 툴을 이용해 프로그램 실행
        java -classpath Hello.jar HelloKt​

        • 코틀린 컴파일러가 자동으로 확장자를 제거하고 Kt라는 접미사를 추가한 클래스 이름을 만든다
    • Java 툴만으로 사용
      java -classpath Hello.jar:$KOTLIN_PATH/lib/kotlin-stdlib.jar HelloKt​

      • .kt 파일을 Java 툴 만으로 사용해서 실행하면 java.lang.NoClassDefFoundError 예외와 함께 실패한다
      • 이를 방지하기 위해서 kotlin-stdlib.jar 파일을 클래스패스에 추가해줘야한다
    • 스크립트로 실행
      • 예제 코드
        java.io.File(".")
            .walk()
            .filter { file -> file.extension == "kts" }
            .forEach { println(it) }​
      • 실행
        kotlinc-jvm -script listktsfiles.kts​
      • 확장자 kts는 해당 파일이 스크립트로 실행된다는 의미를 갖는다 ( 그외에는 일반적인 코틀린 파일과 차이점이 없다 )
    • 그외에 안드로이드 등등 다른 타겟에서도 동작가능
  • 실행 옵션을 선택할때 고려해야할 사항
    • 코틀린을 JVM에서 실행시키며 Java 또는 다른 언어와 섞어서 이용해야한다면 kotlinc-jvm을 이용해서 컴파일해라, javac로 컴파일한 java 소스코드로 만들어진 jar처럼 사용할 수 있다
    • 여러 코틀린 파일들을 통합해 하나의 코틀린 프로그램을 실행시켜야한다면 kotlin툴만으로 실행
    • 코틀린을 사용하여 시스템 레벨 또는 백엔드 태스크를 구현해야 한다면 코틀린 파일 하나를 만들어서 -script 옵션을 통해 코틀린 스크립트로 실행

 

728x90
반응형