JAVA, Kotlin 특징 및 차이점
자바와 코틀린은 모두 프로그래밍 언어이며, 서로 비슷한 측면도 있지만 목적과 특징에서 차이가 있습니다.
자바(JAVA)
자바는 초기에 웹 개발을 위해 개발된 언어로, 이후 안드로이드 애플리케이션 개발에도 많이 사용됩니다. 자바의 주요 목적은 "Write once, run anywhere"라는 슬로건을 갖고 있습니다. 즉, 한 번 작성한 코드를 여러 운영체제에서 실행할 수 있도록 만들기 위한 목적을 가지고 있습니다.
자바(JAVA) 특징
- 객체 지향 언어
자바는 객체 지향 언어로, 클래스와 객체를 중심으로 프로그래밍을 수행합니다. 객체 지향 프로그래밍은 코드의 재사용성과 유지보수성을 높여줍니다.
- 플랫폼 독립성
자바는 JVM(Java Virtual Machine)을 사용하여 운영체제에 상관없이 실행 가능합니다. 즉, 자바는 OS에 독립적입니다.
- 메모리 관리
자바는 가비지 컬렉션(Garbage Collection) 기능을 제공하여 메모리 관리를 쉽게 해줍니다. 이를 통해 개발자는 명시적으로 메모리를 관리하지 않아도 됩니다.
- 대규모 프로젝트에 적합
자바는 대규모 프로젝트에 적합한 언어입니다. 이는 객체 지향 언어로서 코드의 모듈화와 추상화를 지원하기 때문입니다.
코틀린(Kotlin)
코틀린은 자바와 같은 목적을 갖고 있습니다. 즉, 자바 플랫폼에서 동작하는 언어이며, 안드로이드 애플리케이션 개발을 위해 만들어졌습니다.
코틀린(Kotlin) 특징
- 간결한 문법
코틀린은 자바보다 문법이 간결하고 생산성이 높습니다. 이는 불필요한 코드를 줄이고 코드의 가독성을 높여주는 효과가 있습니다.
- 널 안전성
코틀린은 널 안전성(Null Safety)을 보장합니다. 이는 변수의 초기값을 null로 설정하지 않도록 하여, null 포인터 예외를 방지할 수 있습니다.
- 함수형 프로그래밍 지원
코틀린은 함수형 프로그래밍
자바와 코틀린의 차이점
그럼 두 언어의 차이점을 비교해보겠습니다.
Type system | Multi-Platform | OOP | FP | Type Inference | Nullable | |
자바 (Java) | 정적 타입 | O | O | X | X (9 이하) | X |
코틀린 (Kotlin) | 정적 타입 | O | O | O | O | O |
Type system : 두 언어는 정적 타입으로 컴파일러가 타입 오류를 잡아줄 수 있습니다.
Multi-Platform : 두 언어는 멀티 플랫폼 개발을 할 수 있는 비슷한 장점을 가지고 있습니다.
OOP : 안드로이드 개발이 가능합니다. 모두 객체지향 프로그래밍을 지원하며 class 키워드를 사용 가능하나 자바는 class가 기본 단위로 class 안에서 로직을 만들어야 합니다.
FP : 코틀린은 class가 선택사항이며 Top-Level 에서 변수, 함수의 선언과 구현이 가능합니다.
Type Inference : 코틀린은 타입 추론이 가능하나 자바(9 이하)는 타입 추론을 할 수 없습니다.
NPE : 자바는 null 을 참조하게 되면 예외를 발생시킵니다. 런타임 시에 흔히 발생할 수 있는 예외입니다.
그러나 코틀린은 컴파일 시점에서 미리 방지할 수 있습니다. Null 을 확인하는 연산자들이 존재하고 Null 이 가능한 타입도 있습니다.
코드의 차이
// java
class Test {
public static void main(String[] args) {
System.out.print("Hello Java");
}
}
// kotlin
fun main() {
print("Hello Kotlin")
}
안드로이드 개발에서의 차이
안드로이드를 개발할 땐 객체지향 언어처럼 클래스 내에서 로직을 작성해야 합니다.
여전히 자바와 코틀린을 동시에 지원하므로 자바의 형식에 맞춰서 코틀린을 사용해야 합니다.
하지만 자바로 작성했을 때보다는 코틀린 코드의 양이 훨씬 줄어들고 간결해지므로 개발자의 편의성이 훨씬 좋습니다.
출처 :
https://bbaktaeho-95.tistory.com/50
[Android] 코틀린과 자바의 차이점 (kotlin, java, 안드로이드)
시작하기에 앞서 필자의 java 언어 수준은 학교 전공 수업인 java언어와 jsp 프로그래밍에서 배운 것으로 멈춰있고 kotlin 언어의 수준은 자바와 마찬가지로 프로젝트 경험 없이 기초만 배운 상황입
bbaktaeho-95.tistory.com
[Kotlin] Visual Studio Code에서 Kotlin 사용하기
Android 앱을 공부하면서 앱 만드는거에만 치중했다. 그래서 Kotlin도 정말 기본 문법만 알고 사용했다. 최근에 구직하기 위해 면접 보는 중 Kotlin 문법에 대한 질문을 받았고 나는 대답하지 못했다.
velog.io