ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코틀린 자바 장단점 비교, Kotlin vs Java
    etc/코틀린_안드로이드 2022. 9. 25. 15:09

     

    이 글은 유데미 강의 Android 12 및 Kotlin 개발 완전 정복 을 보고 만든 글 입니다.

     

    코틀린 단점을 먼저 봅시다.

     

    단점 :

    1. 컴파일 속도가 느리다.
    안드로이드 어플리케이션을 위한 빌드를 생성한다면, 여전히 자바의 성능이 더 좋습니다. 컴파일 시, 자바로 변환하고 나서 바이트 코드로 변환하기 때문에 컴파일 속도가 상대적으로 느린 편입니다.

     

    2. 자바와 비교하면 학습 생태계가 작은 편이다.
    코틀린이 안드로이드 1st 언어로 지정되었다고 해도, 1995년에 나온 자바에 비해서는 역사가 매우 짧기 때문에 코틀린의 생태계 또한 작을 수밖에 없습니다. 개발 생태계가 작다는 것은, 커뮤니티나 오픈 소스를 통해 개발자 개인이 지원 받을 수 있는 기회도 더 적다는 의미입니다. 이는 아무래도 시간이 해결해 줄 문제겠죠?

     

    3. 자바 기존 라이브러리의 활용이 어려울 수 있다.
    자바와 100% 호환된다면서 이게 무슨 말이냐구요?

     자바로 개발한 프로젝트를 코틀린으로 이어서 작성하더라도, 자바 문법에 익숙하지 않다면 자바 기반의 기존 라이브러리를 완전히 이해하지 못하고 사용할 수 있습니다. 아직까지는 코틀린 기반의 전용 라이브러리보다는 자바 기반이 훨씬 많기 때문에, 코틀린으로 안드로이드 개발을 시작하더라도 프로젝트 개발이 심화될수록 자바에 대한 이해가 필수적으로 요구될 수 있겠죠

     

    2번 ,3 번의 경우 시간과 구글의 지원에 따라 없어 질 수 있습니다. 

    JetBrains 에서 최초 공개한 2011 년 이후 약 11년이 지났습니다. 상당한 발전이 있었고  다양한 플러그인이 나왔습니다.

     

    장점 : 

     

    1. 기존 라이브러리와의 상호운용성이 좋다.

    코틀린은 기존의 자바를 보완하고 대체하기 위해 탄생했기 때문에, 자바와 100% 호환됩니다. 한 프로젝트 안에 자바 파일과 코틀린 파일이 함께 들어 있더라도 작동에 전혀 문제가 없다는 뜻입니다. 자바 기반의 라이브러리도 모두 문제 없이 사용할 수 있습니다. 또한 자바로 만들어진 프로젝트도 처음부터 코틀린으로 다시 개발할 필요 없이, 이후 생성되는 파일만 전부 코틀린으로 작성해도 전체 프로젝트가 정상적으로 작동하여 효율적으로 개발할 수 있습니다.

     

    2. Null Safe 언어이다.

    코틀린은 Nullable과 Non-nullable 이라는 개념을 가지고 있어, null이 발생하지 않도록 만들어 줍니다.

    그래서 자바 라이브러리와 함께 사용하지 않는 한, 코틀린으로만 개발할 때는 NPE(NullPointException)와 같은 예외 문제가 발생하지 않는다는 것이 장점입니다.

    Kotlin 에서는 nullable이 아닌 변수에 null을 넣으면 컴파일 타임에 에러를 발생시킨다. (자바는 런타임에 NPE 발생)

     

     

    자료 : https://media.fastcampus.co.kr/knowledge/dev/kotlin/

     

    안드로이드 앱 만들기, 코틀린(Kotlin) vs.자바(Java) 무엇으로 시작할까?

    2017년 열린 구글 I/O라는 컨퍼런스에서 코틀린은 공식 지원 언어로 채택되었습니다. 그리고 2019년, 구글은 코틀린을 안드로이드 1st 언어로 선정하였습니다. 공식적으로 안드로이드 개발을 위한

    media.fastcampus.co.kr

     

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    상단의 이유를 제외하고 코틀린 학습의 이유는 다음과 같습니다. 

     

    1. 구글이 공식적으로 안드로이드 지원 언어를 코틀린으로 선언을 했습니다.

     오라클과 구글 간의 소송에서 자바의 관한 라이선스에 관하여 오라클이 승소를 하였습니다.

     

    2. 신기술이다.

    신기술이 항상 우세하고 100프로 좋은 것 은 아니지만,  자바 진형에서 코틀린으로 넘어가는 회사가 많은 지금

    코틀린을 완전히 무시 할 수 없는 것이 개발자의 숙명인듯 합니다.  안드로이드의 진형 뿐만 아니라 벡엔드 jvm 환경의 spring 을 사용하는 기업들도 코틀린 사용가능을 명시적으로 요구하고 있습니다.

     

    3. 고수준의 언어이다. val var 을 이용한 데이터 선언의 기본만 봐도 알 수 있다. 

    컴파일시 오류를 잡을 수 만 있다면 고수준의 언어는 프로그래밍의  개발 속도를 높입니다.

     

    어셈블리어로 작업 하는것과 파이썬으로 작업 하는 앱의 생산성 측면을 비교해보면 압도적으로 파이썬이 생산성이 높은 것 처럼

    생산성을 무시 할 수 없습니다.

    코드의 가독성을 해칠 수 도 있지만 , val 타입으로 받은 변수의 함수의 메서드의 대한 반환값을 자유롭게 변경이 가능합니다.

     

    4. 자바와 같은 oop, 함수형 언어, 파이썬 과 같이 스크립트 파일 만으로 실행 가능하며 또한 비동기 리엑티브 프로그래밍등

     다양한 기능을 익힐 수 가 있습니다.

    'etc > 코틀린_안드로이드' 카테고리의 다른 글

    Kotlin if vs when 성능 비교 ?  (0) 2022.09.29
    Kotlin Nullable  (0) 2022.09.29
    Deep in to Kotlin(feat .android)  (0) 2022.09.27
    [코틀린 강의 정리]_loop section  (0) 2021.09.28
    uppercase(),버전 확인 문제  (0) 2021.09.27
Designed by Tistory.