Android - 이론

안드로이드에서 사용하는 자바와 코틀린

곽도우너 2023. 3. 10. 16:12

자바

: 안드로이드에서 사용하는 기본 언어이다.

- 운영체제와 통신하고 하드웨어를 직접 사용하는 응용 프로그램이 주로 자바를 사용한다.

 

<자바의 장점>

1. 객체 지향적이다.

 : 코드 재사용에 유리하고, 신뢰성 있는 소프트웨어를 손쉽게 작성할 수 있다.

 

2. 운영체제에 독립적이다.

 : 운영체제나 하드웨어가 아닌 JVM하고만 통신하기 때문에 운영체제와 하드웨어에 관계없이 실행이 가능하다. -> 어디에서나 실행이 가능하다.

 

 

<자바의 단점>

1. C+ 또는 파이썬과 같은 다른 언어와 비교할 때 약간 복잡하거나 번거롭다.

2. 사용 중인 장치 또는 장비와 호환되지 않을 수 있으며, 특정 콘텐츠에 액세스하는 것이 불가능하다.

3. 모바일 개발에서 새로운 자바 개선 사항에 액세스하는 것이 쉽지 않다.

4. 다른 프로그래밍 언어에 비해 약간 느리고 많은 시스템 메모리를 차지한다.

 


코틀린

: 기존에 안드로이드 어플리케이션 개발에 활동되는 자바를 보완하고 대체하기 위해 탄생했다.

-> 기존에 자바 언어로 동작하던 환경에서 코틀린 언어도 전부 호환이 가능하다.

 

<코틀린의 장점>

1. 문법이 간결하며 사용성이 좋다.

 : 기존 언어가 지닌 단점이나 한계를 보완하여 탄생했기 때문에 훨씬 사용성이 좋고, 문법이 간결하여 복잡한 구문 없이 비교적 직관적으로 코드를 작성할 수 있다. 또한, 표현력이 좋아 자바보다 훨씬 빠르게 배울 수 있다.

 

2. NULL Safe 언어이다.

 : 자바로 개발하면서 가장 자주 발생하는 문제인 NPE(NullPointException)인데, 코틀린은 Nullable과 Non-nullable 이라는 개념을 가지고 있어 null이 발생하지 않도록 만들어준다. -> 코틀린으로 개발할 때 NPE와 같은 예외 문제가 발생하지 않는다.

 

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

 : 코틀린은 자바와 100% 호환이 가능하다. -> 한 프로젝트 안에 자바와 코틀린 파일이 함께 들어있더라도 작동에 전혀 문제가 없다. 

 

4. 함수형 프로그래밍을 표방하고 있다. 

 : 객체지향 프로그래밍은 클래스 내부에 있는 함수에서만 로직을 작성하지만, 함수형 프로그래밍은 이러한 제한 없이 어디에서나 작성 가능하다.

 

 

<코틀린의 단점>

1. 속도가 느리다.

 : 컴파일 시, 자바로 변환하고 나서 바이트 코드로 변환하기 때문에 컴파일 속도가 상대적으로 느리다.

 

2. 자바에 비해 학습 상태계가 작은 편이다.

 : 자바에 비해 역사가 매우 짧기 때문에 커뮤니티나 오픈 소스를 통해 개발자 개인이 지원 받을 수 있는 기회가 적다.

 


자바 선택 코틀린 선택
자바와 코틀린 모두 컴파일하면 자바 바이트코드를 생산한다.
구글의 공식 안드로이드 개발 언어는 자바와 코틀린 모두 있다.
기존 개발된 솔루션의 유지 보수가 필요할 경우 개발 경력이 많지 않거나 새롭게 시작하는 경우
광범위한 자바 개발 영역을 다루는 경우 안드로이드 개발에 한정하여 개발하는 경우
프로젝트 성격상 두 언어를 병행하기 어려운 경우