2022-05-21-자바와-코틀린의차이
본문 바로가기
CS Study/JAVA

2022-05-21-자바와-코틀린의차이

by KyeongMin 2022. 5. 24.
728x90
반응형

 

01.자바란?

  • 가장 오래된 객체 지향 언어 중 하나
  • 주로 개방형 휴대폰 동맹(Open Handset Alliance)이 자바로 안드로이드 OS 사용자 인터페이스를 구성
  • 대다수 서버와 기기, 운영체제가 자바를 지원
  • 자바프로그래밍 코드를 바이트코드로 압축할때,
    • 자바가상머신으로 실행됨
    • 자바의 일부 구문은 C++, C등과 비슷하지만, 종합적인 하위 수준 프로그래밍 요소를 제공 할 수 없음
  • 현재는 스포티파이와 캐쉬 앱 , 시그널 등 인기 앱 제작에 사용

02.코틀린이란?

  • 트렌딩 오픈소스 언어
  • 기본적으로 통합 개발 환경을 지원, 자바 가상머신을 위한 정적 언어
  • 자바보다 더 단순하면서 깔끔하고, 압축속도가 빠른 기능과 객체 지향 언어를 혼합
    • 그러나 바이트코드로 코드를 압축한 뒤 자바 가상머신에서 실행할 수 있어서, 대다수 기기와 플랫폼에서 작동할 수 있음
  • 현재 트렐로, 트위터, 넷플릭스 등 테크 업계의 유명 대기업이 코틀린을 활용

03.기능 확장면을 고려한다면?

  • 기능확장을 고려한다면 코틀린이 좋음
  • 코틀린을 사용하면, 함수 이름에 글래스 명칭의 접두사를 추가하면서 기존 수준에서 기능을 손쉽게 확장할 수 있음
  • 자바는 확장함수를 지원하지 않음, 기존 클래스에서 기능을 확장할 수 있으나 처리 시작이 오래 걸리므로 부적절함

04.코드양과 코딩 속도

  • 같은 프로그램이라고 생각하면 자바의 코드양보다 코틀린의 양이 훨씬 더 적음
  • 코틀린은 코드 오류를 최소화하여 개발자의 노력을 단순화함
  • 실제로 실무에서도 간결성 때문에 자바보다 코틀린을 주로 채택함
    • 하지만 자바와 코틀린 모두 코딩 속도 자체는 비슷
  • 코틀린은 코드 작성자가 더 적은 코드를 입력하도록 함
    • 그러나 작업 솔루션에 도달하려면 코틀린을 작업하는 데 더 오랜 시간이 걸림
  • 반대로 자바는 많은 코드를 입력해야하지만
    • 코틀린보다는 더 빠르고 쉽게 솔루션을 찾을 수 있음

05.프로그램 성능

  • 코틀린은 개발자의 수월한 작업에 도움을 줄 추가 기능을 제공
    • 주로 멀티 쓰레드 앱 생성에는 코틀린을 선호
      • 그러나 코틀린을 기반으로 압축할 때, 자바보다 속도가 느리다는 문제가 발생
        • 사실, 두 언어 간 압축 시간 차이는 그렇게 크지 않은편
    • 프로그래밍 언어가 자바 가상머신에서 실행되기 전, 바이트코드로 변환됨
    • 전반적인 성능 측면에서 자바와 코틀린 모두 유사

06.동시 실행 지원

  • 안드로이드에서는 오래 실행되는 작업이 주요 스레드를 막을 수 있음
    • 이때문에 앱이 중단되거나 제대로 응답하지 않는 문제가 발생할 수도 있음
    • 이문제를 극복하고자 개발자가 동시 실행 패턴을 설계함
  • 코틀린은 동시 실행을 이용해 코드 실행을 일시 중지하고 나중에 다시 시작
    • 여러 개의 스레드를 작성하지 않고 한 쓰레드에서 여러 가지 작업을 실행하도록 하며, 앱 코드 자체를 더 간결하게 작성함
  • 반면, 자바는 동시 실행을 지원하지 않음
    • 안드로이드 앱에서 긴 작업을 처리할 때, 자바를 사용하면, 여러 쓰레드를 만들 수 있음
      • 그러나 프로그래밍 코드베이스가 더 많아 지면서 코드 오류가 발생할 확률이 높아진다.

07.그래서 자바? 코틀린?

  • 사실 구글 플레이 스토어 측면에서 코틀린은 안드로이드 앱 개발의 공식 언어가 되었다.
    • 현재 대다수 안드로이드 개발자는 플레이 스토어 앱 승인을 위해 코틀린을 선호함
      • 그러나 여전히 안드로이드를 비롯한 여러 플랫폼에서 일반 목적으로 작업을 할때는 자바가 더 적합
    • 결과적으로 개발자의 만족도와 후원사의 마케팅 전략에 따라 안드로이드 앱 개발 프로젝트 언어를 선택하게 됨
  • 현실적으로는 현재 알고 있는 안드로이드 앱 개발 기준으로 만들 수 있는 언어
    • 자바, 코틀린, 플러터(dart) 이렇게 세가지로 알고 있다.
      • 처음 앱을 개발하는 사람에게 확실히 플러터가 장점이 있지만
      • 좀 어느정도 이전에 안드로이드 개발을 해왔던 사람이라면 간단한 앱은 자바로 더 쉽게 할 수있다고 생각한다.
    • 현재 시장에서 사실상 자바로 안드로이드 개발은 기본이고 코틀린 까지 잘하는 사람을 원하는 것이 현실이기에 코틀린을 같이 병행해야하는것 은 필수가 된 것 같다.

https://github.com/3DPIT/3dpit.github.io/blob/main/content/blog/Java/2022-05-21-%EC%9E%90%EB%B0%94%EC%99%80-%EC%BD%94%ED%8B%80%EB%A6%B0%EC%9D%98%EC%B0%A8%EC%9D%B4.md

 

GitHub - 3DPIT/3dpit.github.io

Contribute to 3DPIT/3dpit.github.io development by creating an account on GitHub.

github.com

 

728x90
반응형

'CS Study > JAVA' 카테고리의 다른 글

2022-05-24-자바-상속이란  (0) 2022.05.24
2022-05-15-쓰레드와동기화  (0) 2022.05.16
2022-04-23-자바-기초정리1  (0) 2022.04.24
2022-04-23-자바의-메모리-모델과-Object-클래스  (0) 2022.04.24
2021.10.05_java-static  (0) 2021.10.05

댓글