코틀린이란 무엇인가?
자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어
안정성, 간결성과 표현력, 상호운용성을 강조하는 다중 패러다임, 다중 플랫폼 프로그래밍 언어
대상 플랫폼
- 서버, 안드로이드 등 자바가 실행되는 모든 곳
- 코틀린의 주 목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 하는 것
- 자바뿐 아니라 자바스크립트로도 코틀린을 컴파일할 수 있음
- 코틀린은 구체적인 영역의 문제를 해결하거나 특정 프로그래밍 패러다임을 지원하는 여러 라이브러리와 아주 잘 융합됨
코틀린 특징
- 타입 추론
- 변수 타입을 지정하지 않아도 타입 추론을 통해 컴파일러가 문맥을 고려해 타입을 결정
- Nullable 지원
- 컴파일 시점에 NPE(NullPointerException)가 발생할 수 있는 지 여부를 검사할 수 있어, 프로그램의 신뢰성을 더 높일 수 있음.
- 함수형 프로그래밍 지원
- 함수 타입을 지원
- 어떤 함수가 다른 함수를 파라미터로 받거나 함수가 새로운 함수를 반환할 수 있음
- 람다식을 지원
- 번거로운 준비 코드 없이 코드 블록을 쉽게 정의하고 여기저기 전달할 수 있음
- 데이터 클래스는 불변적인 Value Object를 간편하게 만들 수 있는 구문을 제공
- 표준 라이브러리는 객체와 컬렉션을 함수형 스타일로 다룰 수 있는 API를 제공함
- 함수 타입을 지원
- 함수형 프로그래밍의 특징
- 일급 시민인 함수
- 함수를 일반 값처럼 변수에 저장할 수 있음
- 함수를 인자로 다른 함수에 전달할 수 있음
- 함수에서 또 다른 함수를 생성하여 반환할 수 있음
- 불변성(immutable)
- 만들어지고 나면 내부 상태가 절대로 바ㅜ끼지 않는 불변 객체를 사용해 프로그램을 작성함
- side effect 없음
- 함수형 프로그래밍에서는 입력이 같으면 항상 같은 출력을 내놓음
- 다른 객체의 상태를 변경하지 않음
- 함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수 함수를 사용함
- 일급 시민인 함수
요약
- 타입 추론을 지원하는 정적 타입 지정 언어.
- 소스코드의 정확성과 성능을 보장하면서도 소스코드를 간결하게 유지할 수 있음
- 객체지향과 함수형 프로그래밍 스타일을 모두 지원.
- 일급 시민 함수를 사용해 수준 높은 추상화가 가능하고, 불변 값 지원을 통해 다중 스레드 애플리케이션 개발과 테스트를 더 쉽게 할 수 있음
- 서버 애플리케이션 개발에 활용할 수 있음.
- 기존 자바 프레임워크를 완벽하게 지원하는 한편, HTML 생성기나 영속화 등의 일반적인 작업을 위한 새로운 도구를 제공함
- 무료며 오픈소스, 또한 주요 IDE와 빌드 시스템을 완전히 지원함.
- 실용적이며 안전하고, 간결하며 상호운용성이 좋음.
- 설계하면서 일반적인 작업에 대해 이미 잘 알려진 해법을 채택하고, NPE(NullPointerException)과 같이 흔히 발생하는 오류를 방지하며, 읽기 쉽고 간결한 코드를 지원하면서 자바와 아무런 제약 없이 통합될 수 있는 언어를 만드는데 초점을 맞춤.
'kotlin > basic' 카테고리의 다른 글
생명 주기 (Lifecycle) (1) | 2024.03.22 |
---|---|
폴더트리 (0) | 2024.03.18 |
기본 문법 (1) | 2024.03.18 |