코틀린 이란 ?
코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다.
코틀린은 간결하고 실용적이며 자바 코드와 상호운용성을 중시한다.
(현재 자바를 사용중이라면 대부분 코틀린을 활용할 수 있다.)
기존 자바의 라이브러리나 프레임워크와 함께 작동하며 성능도 비슷한 수준이다.
코틀린 활용 영역
- 서버상의 코드(백엔드)
- 안드로이드 앱
- 토네이도FX (데스크탑 앱)
- 인텔의 멀티OS 엔진을 사용하여 IOS에서 실행 가능
정적 타입 지정 언어
코틀린도 자바와 같이 정적 타입 지정언어이며 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 객체의 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증해준다.
타입 추론
자바와 달리 코틀린은 모든 변수 타입을 직접 명시할 필요가 없다.
대부분의 경우 컴파일러가 문맥으로부터 변수 타입을 자동으로 유추할 수 있기 때문이다.
ex) var x = 1
여기서는 변수를 정의하면서 정수값으로 초기화를 한다. 코틀린은 이 변수의 타입이 Int라는 것을 자동으로 알아낸다.
컴파일러가 문맥을 고려해 변수 타입을 결정하는 기능을 타입 추론이라고 부른다.
정적 타입 지정의 장점
- 성능 실행 시점에 어떤 메소드를 호출할지 알아내는 과정이 필요 없기 떄문에 메소드 호출이 더 빠름
- 신뢰성 컴파일러가 프로그램의 정확성을 검증하여 실행 시 프로그램이 오류로 중단될 가능성이 적어짐
- 유지보수성 코드에서 다루는 객체가 어떤 타입에 속하는지 알 수 있기 때문에 처음보는 코드를 다룰때도 쉽다.
- 도구지원 더 안전하게 리팩토링 할 수 있고, 도구는 더 정확한 코드완성기능을 제공할 수 있으며, IDE의 다른 지원 기능도 더 잘 만들 수 있다.
코틀린 특성
코틀린의 가장 중요한 특성은 코틀린이 널이 될 수 있는 타입을 지원한다는 점이다. 널이 될 수 있는 타입을 지원함에 따라 컴파일 시점에 널 포인터 예외가 발생할 수 있는지 여부를 검사할 수 있어서 좀 더 프로그램의 신뢰성을 높일 수 있다.
코틀린은 객체지향과 함수형 프로그래밍 스타일을 모두 지원한다.
코틀린 철학
1. 실용성
코틀린은 다년간의 IT업계 경험을 바탕으로 이루어져있고 젯브레인스나 코틀린 커뮤니티 내부의 개발자들이 초기버전을 사용하며 전달한 피드백이 반영돼있고 코틀린은 다른 언어에서 성공적으로 검증된 방법이나 기능에 의존을 하기 때문에 다른 언어에 비해 실용성이 좋고 간결하며 코틀린의 특성을 적용하는 방법을 배우게 되면 그 특성을 잘 활용하여 코드를 작성할 수 있다.
2. 간결성
언어가 간결하다는 것은 그 언어로 작성된 코드를 읽을 때 의도를 쉽게 파악할 수 있는 구조를 제공하고, 그 의도를 달성하는 방법을 이해할 때 방해가 될 수 있는 부가적인 준비 코드가 적다는 뜻이며, 코틀린은 코드를 작성할 때 의미가 없는 부분을 줄이고, 언어가 요구하는 부수적인 요소를 줄이기 위해 많은 노력을 했다. 게터, 세터, 생성자 등을 위한 로직은 자바에서는 준비코드를 작성해야하지만 코틀린은 묵시적으로 제공하기 때문에 지저분해지는 일이 없다. 코틀린은 람다를 지원하기 때문에 작은 코드 블록을 라이브러리 함수에 쉽게 전달할 수 있다.
3. 안정성
코틀린은 JVM에서 실행하며 JVM은 이미 안정성을 보장할 수 있다. JVM을 사용하면 메모리 안정성을 보장하고 버퍼 오버플로우를 방지하며 동적할당메모리를 잘못 사용함으로 인해 발생할 수 있는 문제를 예빵 가능하다. 코틀린은 컴파일 시점에 검사를 통해 오류를 더 많이 방지해준다.
4. 상호운용성
코틀린은 자바 메소드, 클래스, 인터페이스, 애노테이션 등 모든 것을 적용 가능하며 자바의 모든 코드는 코틀린으로 변환이 가능하다.
'Kotlin' 카테고리의 다른 글
[Kotlin] Kotlin in Action 2장 (0) | 2022.08.10 |
---|