kotlin in action 책을 통한 공부입니다.
코틀린이란 무엇이며, 왜 필요한가?
자바를 대신할 언어의 요구사항
- 정적 타입 지정(자바와 같지만, 유추할 수 있다var - 타입추론)
- 정적타입 : int num1 = 1, float num2 = 1.12
- 동적타입 : num1 = 10, num2 = “Hi”
- 자바 코드와 호환
- 도구 개발이 쉬워야 함
- 배우기 쉽고, 파악하기 쉬움
코틀린이란?
코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어
1. 대상 플랫폼 : 서버, 안드로이드 등 자바가 실행되는 모든 곳
- 서버상의 코드 : 백엔드
- 안드로이드 디바이스
2. 정적 타입 지정 언어
- 성능 : 실행시점에 어떤 메서드를 호출할 지 알아내는 과정이 없어 빠름
- 신뢰성 : 컴파일러가 프로그램의 정확성을 검증하기에 신뢰성이 향상
- 유지보수성 : 객체가 어떤 타입에 속하는지 알기에 다루기 쉬움
- 도구 지원 : 정적 타입으로 안전하게 리팩토링이 가능하며 정확
3. 함수형 프로그래밍
함수형 프로그래밍은 어떤 개념을 가질까?
- 일급 시민인 함수 : 함수를 일반 값처럼 다룰 수 있다.
- 변수에 저장
- 함수를 인자로 다른 함수에 전달 가능
- 함수에서 새로운 함수 만들어 반환
- 불변성 : 내부 상태가 절대 바뀌지 않는다.
- 부수 효과 없음
- 입력이 같으면 같은 출력을 내놓고 다른 객체의 상태를 변경하지 않는다. 순수함수를 사용한다.
그렇다면 어떤 장점이 있을까?
- 간결성
- 강력한 추상화와 코드 중복을 막을 수 있다.
- 다중 스리드를 사용해도 안전
- 불변데이터, 순수함수를 데이터 구조에 적용하면 같은 데이터를 여러 스레드가 변경할 수 없다.
- 테스트 용이
코틀린의 철학
- 실용성
- 실제 문제를 해결하기 위해 만들어진 실용적인 언어
- 간결성
- 개발자는 코드를 새로 작성하는 시간보다 기존 코드를 읽는 시간이 더 길다.
- 버그를 수정할 때 수정해야한 하는 부분이 어딘지 먼저 알아내야 한다(엄청난 양의 코드!).
- 안전성
- 자바보다 더 높은 수준의 안전성을 달성하되 전체 비용은 적다.
- 코틀린은 JVM에서 실행되므로 상당한 안전성을 보장한다. JVM을 사용하면 메모리 안전성을 보장하고, 버퍼 오버플로우를 방지하며, 동적으로 잘못할당한 메모리리 문제를 예방할 수 있다.
- 대부분 코틀린 컴파일러가 타입을 자동 추록을 해주기 때문에 타입 정보를 지정할 필요가 없다.
- 실행 시점에 오류를 발생시키는 대신 컴파일 시점 검사를 통해 오류를 더 많이 방지한다.
- NullPointException : 코틀린의 타입 시스템은 null이 될 수 없는 값을 추적하며 금지한다.
- ClassCastException : 객체의 타입을 검사 후 타입에 속한다면 별도의 캐스트 없이 바로 사용이 가능하다.
if (value is String) println(value.toUpperCase())
- 자바보다 더 높은 수준의 안전성을 달성하되 전체 비용은 적다.
- 상호운용성
- 기존 라이브러리를 그대로 사용할 수 있다.
요약
- 코틀린은 타입 추론을 지원하는 정적 타입 지정 언어다. 소스코드의 정확성과 성능을 보장하면서 소스코드를 간결하게 유지할 수 있다.
- 코틀린은 객체지향과 함수형 프로그래밍 스타일을 모두 지원한다.
- 코틀린을 서버 애플리케이션 개발에 잘 활용할 수 있다. 기존 자바를 완벽히 지원하며, HTML 생성기, 영속화 등 새로운 도구를 제공한다.
- 코틀린은 무료 오픈소스다.
- 코틀린은 실용적이며 안전하고, 간결하며 상호운용성이 좋다.
'공부 > Kotlin' 카테고리의 다른 글
3장. 함수 정의와 호출 (0) | 2022.06.07 |
---|---|
2장. 코틀린 기초 (0) | 2022.05.29 |
[Kotlin] 문법 정리 - 2 (0) | 2022.05.04 |
[Kotlin] 문법 정리 - 1 (0) | 2022.05.02 |
[Kotlin] 자동차 경주 (2) | 2022.04.29 |
댓글