Study/다재다능 코틀린 프로그래밍
Day 1. 코틀린 시작하기
주지민
2021. 10. 19. 23:24
반응형
본 포스트는 지인들과 스터디한 내용을 정리한 포스트입니다
http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788931463422
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라는 접미사를 추가한 클래스 이름을 만든다
- Hello.kt 파일에 있는 코드를 Java 바이트코드로 컴파일시키고 Hello.jar파일을 만든다
- 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는 해당 파일이 스크립트로 실행된다는 의미를 갖는다 ( 그외에는 일반적인 코틀린 파일과 차이점이 없다 )
- 예제 코드
- 그외에 안드로이드 등등 다른 타겟에서도 동작가능
- 예제 ( Hello.kt )
- 실행 옵션을 선택할때 고려해야할 사항
- 코틀린을 JVM에서 실행시키며 Java 또는 다른 언어와 섞어서 이용해야한다면 kotlinc-jvm을 이용해서 컴파일해라, javac로 컴파일한 java 소스코드로 만들어진 jar처럼 사용할 수 있다
- 여러 코틀린 파일들을 통합해 하나의 코틀린 프로그램을 실행시켜야한다면 kotlin툴만으로 실행
- 코틀린을 사용하여 시스템 레벨 또는 백엔드 태스크를 구현해야 한다면 코틀린 파일 하나를 만들어서 -script 옵션을 통해 코틀린 스크립트로 실행
728x90
반응형