코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다.
사용 가능한 분야 : 서버 개발 ,안드로이드 앱 개발 등
코틀린의 주목적 : 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는
코틀린은 정적 타입 지정 언어
정적 타입 지정이란 ? 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 객체의 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증한다
- 성능 : 실행 시점에 어떤 메소드를 호출할지 알아내는 과정이 필요 없으므로 메소드 호출이 더 빠르다
- 신뢰성 : 컴파일러가 프로그램의 정확성을 검증하기 때문에 실생 시 프로그램이 오류로 중단될 가능성이 더 적어진다
- 유지 보수성 : 코드에서 다루는 객체가 어떤 타입에 속하는지 알 수 있기 떄문에 처음 보는 코드를 다룰 때 쉬워진다
- 도구 지원 : 정적 타입 지원을 활용하면 더 안전하게 리팩토링 할 수 있고, 도구는 더 정확한 코드 완성 기능을 제공할수 있다
또한 코틀린은 Null 이 될 수 있는 타입과 함수 타입을 지원한다
코틀린 컴파일러의 타입 추론 기능
타입 추론 기능이란 ? 컴파일러가 문맥을 고려해 변수 타입을 결정한다. 타입 선언 생략 가능
함수형 프로그래밍이란?
- 일급 시민인 함수 : 함수를 일반 값 처럼 다룰 수 있다.
- 불변성 : 만들어진 이후에는 내부 상태가 절대로 바뀌지 않는 불변 객체이다
- 부수 효과 없음 : 입력이 같으면 항상 같은 출력값이며, 다른 객체의 상태를 변경하지 않는다. 순수함수( 함수 외부나 다른 바깥 환경과 상호작용하지 않는다) 이다.
함수형 프로그래밍을 사용하면 좋은 점
- 간결성 : 순수 함수를 값처럼 사용하여 강력한 추상화가 가능해지고 코드 중복을 막을 수 있다
- 안전한 다중 스레드 : 불변 데이터 구조로 인하여 같은 데이터를 여러 스레드가 변경할 수 없다
- 쉬운 테스트 : 함수의 부수 효과가 없기 때문에 준비코드 없이 독립적으로 테스트가 가능하다