- 코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다.
- 코틀린은 간결하고 실용적이다.
- 자바코드와의 상호운용성(interoperability)을 중시한다.
- 코틀린은 기존 자바 라이브러리나 프레임워크와 함께 잘 동작하며, 성능도 자바와 비슷한 수준이다
- 대상플랫폼은 서버, 안드로이드 등 자바가 실행되는 모든 곳이다.
- 코틀린의 주목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 완전한 대체 언어를 제공하는 것이다.
- 자바와 마찬가지로 코틀린도 정적 타입 지정언어이다.
정적 타입 지정(Statically typed): 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 객체의 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증해준다는 뜻이다.
동적 타입 지정(Dynamically typed): Groovy, JRuby가 대표적인 동적타입지정 언어이다. 타입과 관계없이 모든 값을 변수에 넣을수 있고, 메소드나 필드 접근에 대한 검증이 실행 시점에 일어나며, 그에 따라 코드가 더 짧아지고 데이터 구조를 더 유연하게 생성하고 사용할 수 있다. - 자바와 달리 코틀린에서는 모든 변수의 타입을 프로그래머가 직접 명시할 필요가 없다.
- 정적 타입 지정의 장점
성능:실행 시점에 어떤 메소드를 호출할지 알아내는 과정이 필요 없으므로 메소드 호출이 더 빠르다.
신뢰성:컴파일러가 프로그램의 정확성을 검증하기 때문에 실행 시 프로그램이 오류로 중단될 가능성이 더 적어진다
유지 보수성:코드에서 다루는 객체가 어떤 타입에 속하는지 알 수 있기 때문에 처음 보는 코드를 다룰 때도 더 쉽다.
도구 지원:정적 타입 지정을 활용하면 더 안전하게 리팩토링 할 수 있고, 도구는 더 정확한 코드 완성 기능을 제공할 수 있으며, IDE의 다른 지원 기능도 더 잘 만들 수 있다. - 코틀린은 타입 추론을 지원하므로 직접 타입을 선언해야 함에 따라 생기는 불편함이 대부분 사라진다.
- 코틀린이 기본적으로 null을 허용하지 않으며, null이 될 수 있는 타입을 지원한다. 이를 옵셔널이라 한다.
- 함수형 프로그래밍의 핵심개념
first-class 함수:함수를 변수에 저장하거나 일반값처럼 다룰 수 있다. 함수에서 새로운 함수를 만들어서 반환할 수 있다.
Immutability(불변성):함수형 프로그래밍에서는 일단 만들어지고 나면 내부 상태가 절대로 바뀌지 않는 불변 객체를 사용해 프로그램을 작성한다.
No side-effect(부수효과없음):입력이 같으면 항상 같은 출력을 내놓고 다른 객체의 상태를 변경하지 않으며, 함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수 함수를 사용한다. - 함수형 스타일로 프로그램을 작성하면 생기능 유익점
간결성, 강력한 추상화, 다중 스레드를 사용해도 안전함, 테스트하기 쉽다.
카테고리: Kotlin
0개의 댓글