티스토리 뷰

Dev/Kotlin

Kotlin Overview

Dev gOm 2017. 10. 13. 20:20

Introduction

2015년도 부터 Kotlin 공부해야지 생각만하다가 시간이 없어(핑계...) 미루고 미루다 이제서야 시작 해보려한다.
이미 Google 진영에서 Android에 대한 공식언어로 못밖았고 현존하는 Kotlin에 한계점들에 대한 개선이 이뤄지는데로 (Android Studio가 그랬듯이..) 점진적으로 Java 점유율을 차지 할 것으로 보여진다. 
개인적으로 새로운 언어를 공부 할 때 해당언어의 기본문법에 대한 공부이후 책 한권 읽은 후 미니 프로젝트 구현 의 수순으로 하는것에 익숙해져있기에 이번에도 동일하게 진행하며 해당 내용을 정리할 예정이다.

What is Kotlin?

2011년 친애하는 Jetbrain 형아들이 짠 하고 공개한 언어이며 많은 내부 문법들이 스칼라를 닮아있는것으로 보아 문법적인 내용은 스칼라를 지향하여 개발을 되어 진것으로 보여진다.

현재는 Google이 for Android 공식 언어로 채택되었다.


  • JVM기반으로 동작하며 Javascript로의 컴파일도 지원한다. 
  • Source code의 경우 Java와 함께 작성되는것은 불가능하지만 상호 운용하는 것은 가능하도록 설계되었다.
    • 따라서 Java의 Collections 등의 라이브러리는 그대로 사용가능하다.

Pros

  • 스칼라의 장점들 (함수형 프로그래밍, 간결한 소스코드...)
    • Java로 코드 작성시 작성되는 수많은 boilerplate code들을 아주 간결하게 작성할 수 있다!!
  • 확실한 null 안정성 제공 (default non nullable) 
  • Developer 친화적인 Operator 동작.
    •  대부분의 operator (==, !== , ++) 등이 놀랍도록 생각한데로 동작한다.
  • extension 기능.
    •  이미 기본적으로 kotlin에서 다양한 클래스에대한 extension기능을 제공해주고 있으며 매우 쉽게 추가 extension을 구현할 수 있다. 
  • IDE 
    • Kotlin + IntelliJ
  • Learning curve
    • 스칼라 혹은 자바를 어느정도 접해본 개발자라면 누구나 쉽게 빠져들수있다. (IDE가 IntelliJ라는것으로 이미 충분하다.)  

Cons

  • Overhead
    • 순수하게 Kotlin만 사용하여 어플리케이션을 구현하는경우 발생하는 Overhead는 없거나 오히려 Java보다 빠른 부분도 있지만 Java Library와 함께 사용하는 경우 발생하는 Overhead가 어느정도 있다. 이문제는 빠른 속도로 개선되고 있는것으로 보여진다.
  • Library
    • 아직 kotlin을 기반으로 작성된 library가 많지 않으며 아직은 java library를 사용해야된다.
    • Overhead문제와 연결되어있으며 이문제가 해결되는 경우 Disadvantage는 딱히 발견할 수 없을듯하다.

Conclusion

지극히 주관적인 관점에서 Kotlin에 대한 장단점을 작성해 보았으며 이외에도 많은 장점과 단점 들이 존재 할 것이다.
Kotlin으로 구현가능한 영역에서 Kotlin을 사용하지 않을 이유가 딱히 없다.

Reference

Kotlin

Kotlin Benchmark

Try Kotlin


'Dev > Kotlin' 카테고리의 다른 글

Kotlin_Sequence vs Iterator  (0) 2017.11.08
Kotlin_FileTreeWalk  (0) 2017.11.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함