자바네 비해 코틀린의 장점은 무엇인가요?
코틀린 장점이 궁금합니다
자바언어보다 코틀린 언어가 좋은점이 많다고 하는데 장점이 궁금합니다 . 또 코틀린으로 앱과 웹사이트 전부 만들수 있나요?
그리고 공부하기 위해 좋은 사이트나 책이 있으면 추천해주세요.
코틀린은 구글이 채택한 안드로이드 공식 개발 언어 입니다.
간단한 특징들을 살펴보면,
안드로이드 스튜디오 개발사인 Jet Brains에서 2011년에 공개한 언어
JVM에서 구동되는 언어로 자바와 상호운용 가능
자바를 완전히 대체할 수 있는 언어가 되는 것이 코틀린의 주목적
많은 부분이 자바와 비슷하고 또 최근에 만들어진 언어이다 보니 자바에 비해 Null처리의 안정성, 코드의 간결함 등 장점이 있습니다.
코틀린을 처음 접하시는 분이라면 아래 사이트의 강좌를 참고하세요.
코틀린의 장점은 간결함, 안정성, 호환성을 내세우고 있습니다.
첫번째 간결함은 자바코드에 비해 코드의 양을 줄일 수 있습니다.
getter, setter, callback 등을 작성할때 발생하는 boilerplate 코드를 줄일 수 있습니다.
물론 getter, setter 경우에는 자바에서도 서드파티 라이브러리(lombok)를 활용해 처리가능하지만 코틀린에서는 아래와 같이 data class로 선언만 하면 처리가능합니다.
/* getters, setters, `equals()`, `hashCode()`, `toString()` and `copy()`를 한번에 생성 */ data class Customer(val name: String, val email: String, val company: String)두번째 NPE와 같은 오류를 컴파일 시점에서 미리 방지해줍니다.
null이 될수 없는 필드를 추적하여 NullPointException이 발생할 수 있는 연산을 하려고할때 컴파일 오류가 발생합니다.
is 와같은 타입검사 시 자동으로 오토캐스팅을 해 ClassCastingException을 방지합니다.
var output: String output = null // null을 허용하지 않았기때문에 컴파일 에러 발생 // null일 수 있는 필드를 연산하는 경우 컴파일 에러 발생 val name: String? = null // null이 될 수 있는 필드 println(name.length()) // 컴파일 에러 // 타입체크 시 컴파일러가 자동으로 캐스팅 처리를 해줌 fun calculateTotal(obj: Any) { if (obj is Invoice) obj.calculateTotal() }세번째 기존자바코드와의 상호운영(호환성)이 가능합니다.
자바로 작성된 메소드를 호출하거나 클래스를 상속, 확장 인터페이스를 구현할 수 있습니다.
기존 자바라이브러리를 활용 해 점진적으로 코틀린으로 전활 할 수 있게 합니다.
코틀린은 안드로이드 개발언어로 사용되고 있기 때문에 앱개발이 가능합니다.
그리고 코틀린으로 spring, 웹서버등 백엔드 개발과 kotlin js를 이용한 프론트엔드 개발도 가능합니다.