자바네 비해 코틀린의 장점은 무엇인가요?
코틀린 장점이 궁금합니다
자바언어보다 코틀린 언어가 좋은점이 많다고 하는데 장점이 궁금합니다 . 또 코틀린으로 앱과 웹사이트 전부 만들수 있나요?
그리고 공부하기 위해 좋은 사이트나 책이 있으면 추천해주세요.
![답변의 개수](/questions/_next/image?url=https%3A%2F%2Fmedia.a-ha.io%2Faha-qna%2Fimages%2Fcommon%2F3D%2Fanswer.png&w=64&q=75)
코틀린은 구글이 채택한 안드로이드 공식 개발 언어 입니다.
간단한 특징들을 살펴보면,
안드로이드 스튜디오 개발사인 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를 이용한 프론트엔드 개발도 가능합니다.