500error
[Kotlin]시작하기 전 왜 쓰는 지 알아보기 본문
요약은 밑에
1. 코틀린이 무엇인가
2. 코틀린의 특징
3. 코틀린을 쓰는 이유
1. 코틀린이 무엇인가
코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다.
코틀린의 주 목적은 자바가사용되고 있는 모든 용도에 적합하면서도 간결하고, 생산적이며 안전한 대체 언어를 제공하는 것이다.
코틀린( Kotlin )은 2011년 7월 JetBrains사가 공개한 JVM에서 동작하는 프로그래밍 언어로서, 간결하고 실용적이며 자바코드와의 상호운용성( interoperability )를 중시한 언어이다.
2. 코틀린의 특징
1. 정적 타입 지정 언어
자바와 마찬가지로 코틀린은 정적 타입 지정 언어이다. 모든 프로그램의 구성 요소의 타입을 컴파일 시점에 알 수 있고, 프로그램 안에서 객체의 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증해준다는 뜻이다. 그에 따라 코드가 더 짧아지고, 유연하다.
1 - 1 정적 타입 지정의 장점은 아래와 같다.
1. 성능 : 실행 시점에 어떤 메서드를 호출할지 알아내는 과정이 필요 없으므로 메서드 호출이 더 빠르다.
2. 신뢰성 : 컴파일러가 프로그램의 정확성을 검증하기 때문에 실행 시 프로그램이 오류로 중단될 가능성이 적다.
3. 유지 보수성 : 코드에서 다루는 객체가 어떤 타입에 속하는지 알 수 있기 때문에 처음 보는 코드를 다룰 때 더 쉽다.
4. 도구 지원 : 정적 타입을 활용하면 안전한 리팩토링이 가능하고, 도구는 정확한 코드 완성 기능을 제공하며 IDE의 다른 지원 기능도 더 잘 만들 수 있다.
코틀린의 타입 시스템에는 자바에서 쉽게 수 있는 class, interface, generic를 볼 수 있는데 코틀린에서도 비슷하게 동작한다.
몇 가지 새로운 점은 null이 될 수 있는 타입을 지원한다는 점이다. 널이 될 수 있는 타입을 징눤함에 따라 컴파일 시점에 널 포인트 예외가 발생할 수 있는지 여부를 검사할 수 있어서 좀 더 프로그램의 신뢰성을 높인다.
타입 시스템의 다른 내용으로는 함수 타입에 대한 지원을 들 수 있다. 함수 타입이 무엇인가 알아보기 위해 함수형 프로그램의 개념을 알아야 한다.
2. 타입 추론 ( type inference )
자바와 달리 코틀린에서는 모든 변수의 타입을 프로그래머가 직접 명시할 필요가 없다. 대부분의 경우 코틀린 컴파일러가 문맥으로부터 변수 타입을 자동으로 유추할 수 있기 때문에 프로그래머는 타입 선언을 생략해도 된다.
3. 널이 될 수 있는 타입 ( nullable type )
코틀린은 null이 될 수 있는 타입을 지원함에 따라 컴파일 시점에 null pointer exception이 발생할 수 있는지 여부를 검사할 수 있어서 좀 더 프로그램의 신뢰성을 높일 수 있다.
4. 함수형 프로그래밍 ( functional programming )
핵심 개념
4 - 1 일급 객체( first-class )인 함수
- 함수(프로그램의 행동을 나타내는 코드 조각)를 일반 값처럼 다룰 수 있다. 함수를 변수에 저장할 수 있고, 함수를 인자로 다른 함수에 전달할 수 있으며, 함수에서 새로운 함수를 만들어서 반환할 수 있다.
4 - 2불변성 ( immutability )
- 함수형 프로그래밍에서는 일단 만들어지고 나면 내부 상태가 절대로 바뀌지 않는 불변 객체를 사용해 프로그램을 작성한다.
4 - 3부수 효과 ( side effect ) 없음
함수형 프로그래밍에서는 입력이 같으면 항상 같은 출력을 내놓고 다른 객체의 상태를 변경하지 않으며, 함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수 함수(pure function)를 사용한다.
3. 코틀린을 쓰는 이유
1. 간결하고 실용
2. 자바 코드와의 상호운용
3. 대부분의 자바 프로젝트에서 코틀린을 활용할 수 있다(안드로이드, 서버 개발 등), 인텔의 멀티 OS 엔진을 사용하여 iOS 에서도 실행 가능, 데스크탑 애플리케이션(코틀린, 토네이도FX), 자바FX에서도 사용 가능, 자바스크립트로도 코틀린 코드를 이용하여 브라우저나 노드에서 실행이 가능하다.
4. 성능은 자바와 비슷하다.
5. 안정성(null 체크, 타입 검사와 캐스트)
코틀린은 타입 추론을 지원하는 정적 타입 지정 언어다. 따라서 소스코드의 정확성과 성능을 보장하면서도 소스코드를 간결하게 유지할 수 있다.
코틀린은 객체지향과 함수형 프로그래밍 스타일을 모두 지원한다. 코틀린에서는 일급 시민 함수를 사용해 수준 높은 추상화가 가능하고, 불변 값 지원을 통해 다중 스레드 애플리케이션 개발과 테스트를더 쉽게 할 수 있다.
코틀린을 서버 애플리케이션 개발에 잘 활용할 수 있다. 코틀린은 기존 자바 프레임워크를 완벽하게 지원하는 한편, HTML 생성기나 영속화등의 일반적인 작업을 위한 새로운 도구를 제공한다.
코틀린은 무료며 오픈소스다. 또한 주요 IDE와 빌드 시스템을 완전히 지원한다.
코틀린은 실용적이며 안전하고, 간결하며 상호운용성이 좋다. 이는 코틀린을 설계하면서 일반적인 작업에 대해 이미 잘 알려진 해법을 채택하고, NullPointerException과 같이 흔히 발생하는 오류를 방지하며, 읽기 쉽고 간결한 코드를 지원하면서 자바와 아무런 제약 없이 통합될 수 있는 언어를 만드는데 초점을 맞췄다는 뜻이다.
코딩하며 듣기 좋은 일본 노래
https://googlenaverdaum.tistory.com/category/JPOP%EC%B6%94%EC%B2%9C
'프로그래밍 > 코틀린' 카테고리의 다른 글
코틀린 조건문 (if ~ else, when) 제대로 알고 가기 (2) | 2023.04.06 |
---|---|
코틀린 변수 알아보기 (0) | 2023.03.27 |
코틀린 함수 선언 방식 (0) | 2023.03.27 |
[Kotlin]코틀린 시작하기(1) - 환경 설정 (0) | 2023.03.09 |