Kotlin
[Kotlin] Kotlin in Action, 코틀린 시작하기
JuBin
2021. 9. 5. 19:28
반응형

학부시절 부터 JAVA를 주 언어로 사용해 오다가 새로 이직하는 직장의 서비스의 주 언어가 Kotlin이라 Java에서 Kotlin으로 전환하게 되는 좋은 기회를 얻었습니다.
JAVA개발자들을 위한 Kotlin 입문 서적으로 'Kotlin in Action'이라는 서적이 평이 가장 좋아 공부하며 배운것들을 요약하여 정리하고자 합니다.
1장. 코틀린이란 무엇이며, 왜 필요한가?
먼저 Kotlin은 JetBrains사에서 개발한 언어입니다.
코틀린은 JVM, JavaScript, Native 상에서 실행될 수 있습니다.
JVM 기반의 Kotlin에서는 자바 애플리케이션 및 안드로이드 애플리케이션을 만들 수 있으며 인텔의
멀티 OS 엔진을 사용하여 IOS 디바에서 또한 사용할 수 있습니다.
그리고 자바 뿐만 아니라 자바스크립트로도 Kotlin을 컴파일 할 수 있습니다.
JS 기반의 코틀린에서는 데이터베이스, 서버, 클라이언트까지 풀 스택 웹 개발이 가능합니다.
1-1. 코틀린의 핵심 특징
1. 정적 타입 지정 언어
- 자바와 마찬가지로 코틀린도 정적 타입 지정 언어이다. 정적 타입 지정이라는 말은 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 객체의 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증해 줍니다. 자바와 달리 코틀린 에서는 모든 변수 타입을 직접 명시해줄 필요 없이 코틀린 컴파일러가 변수 타입을 자동으로 유추해 줍니다.(타입추론)
- 정적 타입 지정의 장점은 다음과 같습니다.
1) 실행 시점에 어떤 메소드를 호출할지 알아내는 과정이 필요 없으므로 메소드 호출이 더 빠르다.
2) 컴파일러가 정확성을 검증하기 떄문에 오류로 중단될 가능성이 더 적어진다.
3) 유지보수성이 좋다.
4) 정적 타입 지정을 활용하면 더 안전하게 리팩토링 할 수 있다. - 코틀린은 null이 될 수 있는 타입을 지원합니다.
- 컴파일 시점에 NPE(NullPointerException) 발생 여부를 검사해서 프로그램 신뢰성을 높일수 있습니다
2. 함수형 프로그래밍과 객체지향 프로그래밍
- 함수를 일반 값처럼 다룰수 있습니다. 함수에 변수를 저장 할 수 있고 함수에 새로운 함수를 만들어 반환할 수 있습니다.
- 함수형 프로그래밍에서는 일단 만들어지고 나면 내부 상태가 절대 바뀌지 않는 불변 객체를 사용해 프로그램을 작성합니다.
- 입력이 같으면 항상 같을 출력을 내놓는 순수 함수를 사용합니다.
- 함수형 프로그래밍으로 프로그램을 작성하면 다음과 같은 장점이 있습니다.
1) 기존 코드에 비해 더 간결하며 우아하다.
2) 다중 스레드를 사용해도 안전하다. 복잡한 동기화를 적용하지 않아도 된다.
3) 테스트하기 쉽다 - 코틀린은 자바와 달리 처음부터 함수형 프로그래밍을 풍부하게 지원해 왔습니다.
3. 무료 오픈소스
- 코틀린과 컴파일러, 라이브러리 및 코틀린 관련 모든도구는 오픈소스이며 Apache2 라이센스 하에 제공됩니다.
1-2. 코틀린 응용
코틀린은 주로 서버 프로그래밍과 안드로이드 개발에 널리 쓰이고 있습니다.
1-3. 코틀린 철학
1. 실용성
- 코틀린은 실제 문제를 해결하기 위해 만들어진 실용적인 언어입니다.
- 코틀린은 연구를 위한 언어가 아닙니다. 전산학계에서 연구 중인 혁신적인 아이디어를 코틀린을 통해 탐구하려고 하지 않습니다.
- 코틀린을 처음 배우는 사람은 자바에서 사용해 온 익숙한 프로그래밍 스타일이나 기법을 활용할 수 있습니다
2. 간결성
- 코틀린은 프로그래머가 작성하는 코드에서 의미가 없는 부분을 줄이고, 언어가 요구하는 구조를 만족시키기 위하여 많은 노력을 하였습니다.
- Getter, Setter 등을 위한 로직 등, 자바에 존재하는 여러가지 번거로운 준비코드를 묵시적으로 제공하여 코드가 지저분해지는 일이 없습니다.
- 다른 최신 언어들과 마찬가지로 코틀린은 기능이 다양한 표준 라이브러리를 제공하기 떄문에 반복되거나 길어질 수 있는 코드를 라이브러리 함수 호출로 대치할 수 있습니다.
- 람다를 지원하기 떄문에 작은 코드 블록을 라이브러리 함수에 쉽게 전달할 수 있습니다.
3. 안정성
- 먼저 프로그래밍 언어가 안전하다는 말은 프로그램에서 발생할 수 있는 오류 중에 일부 유형의 오류를 프로그램 설계가 원천적으로 방지해준다는 뜻 입니다.
- 코틀린은 자바보다 더 높은 수준의 안정성을 달성하되 전체 비용은 더 작게 지불합니다.
- 코틀린은 실행 시점에 오류를 발생시키는 대신 컴파일 시점에 검사를 통해 오류를 방지해 줍니다.
예를 들면 NullPointerException, ClassCastException을 방지해 줍니다.
4. 상호운용성
- 자바에서 사용하던 기존 라이브러리를 그대로 사용할 수 있습니다.
- 자바와 코틀린 코드를 섞어서 쓸 수 있습니다.
- 여러 언어로 이뤄진 프로젝트를 디버깅하고 서로 다른 언어로 작성된 코드를 언어와 상관없이 한단계씩 실행할 수 있습니다.
- 자바 메소드를 리팩토링해도 메소드와 관련된 자바 코드까지 제대로 변경이 됩니다.
1-4. 코틀린 도구 사용
1. 코틀린 코드 컴파일
- 코틀린 소스코드는 .kt라는 확장자를 파일에 붙입니다.
- 자바코드를 컴파일할 떄와 마찬가지로 .class 파일을 만들어 냅니다.
- 코틀린 컴파일러로 컴파일한 코드는 코틀린 런타임 라이브러리에 의존합니다.
- maven, gradle, ant와 같은 빌드툴과 호환이 됩니다.
2. IntelliJ 코틀린 플러그인
- IntelliJ 15 이후 버전에서는 별도로 코틀린 플러그인을 설치할 필요가 없습니다.
※ 요약
- 코틀린은 타입추론을 지원하는 정적 타입 지정 언어입니다.
- 코틀린은 객체지향과 함수형 프로그래밍을 모두 지원함으로써 수준 높은 추상화가 가능하고, 불변값 지원을 통해 다중 스레드 애플리케이션 개발과 테스트를 더 쉽게 할 수 있습니다.
- 코틀린은 기존 자바 프레임웤을 완벽하게 지원합니다.
- 코틀린은 무료이자 오픈소스이며, 주요 IDE와 빌드 시스템을 완벽하게 지원합니다.
- 코틀린은 실용적이며 안전하고 간결하며 상호운용성이 좋습니다. 읽기 쉽고 간결한 코드를 지원하면서 자바와 아무런 제약 없이 통합될 수 있는 언어입니다.
- 코드 줄 끝에 세미콜론을 붙이지 않아도 됩니다.
2021.09.06 - [Kotlin] - [Kotlin] Kotlin in Action, 2장 코틀린 기초
[Kotlin] Kotlin in Action, 2장 코틀린 기초
- 2장 목차 - 2.1 기본요소 : 함수와 변수 2.2 클래스와 프로퍼티 2.3 선택 표현과 처리 : enum과 when 2.4 대상을 이터레이션 : while과 for 루프 2.5 코틀린의 예외처리 2.1 기본 요소 : 함수와 변수 함수를
jubin-developer.tistory.com
반응형