Kotlin In Action #0
코틀린이란?
코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어.
- 간결하고 실용적.
- 자바 코드와 상호운용적.
- 정적 타입 지정 언어.
- 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있음.
- 객체의 필드나 메서드를 사용할 때 컴파일러가 타입을 검증.
- 자바와 다르게 타입을 추론해주기 때문에 변수의 타입을 프로그래머가 직접 명시할 필요 없음.
- 정적 타입의 장점
- 성능
- 실행 시점에 어떤 메서드를 호출할지 알아내는 과정이 필요 없으므로 메서드 호출이 더 빠름.
- 신뢰성
- 컴파일러가 프로그램의 정확성을 검증하기 때문에 실행 시 프로그램이 오류로 중단될 가능성이 적음.
- 유지 보수성
- 코드에서 다루는 객체가 어떤 타입에 속하는지 알 수 있기 때문에 처음 보는 코드를 다룰 때도 쉬움.
- 도구 지원
- 정적 타입 지정을 활용하면 더 안전하게 리팩토링 할 수 있고, 도구는 더 정확한 코드 완성 기능을 제공.
- 성능
- Null이 될 수 있는 타입을 지원.
- 함수 타입.
자바를 사용중인 곳이라면 거의 대부분 코틀린 사용이 가능.
함수형 프로그래밍과 객체지향 프로그래밍
- 일급 객체(First-Class Citizen) 함수
- 함수를 일반 값처럼 다룰 수 있음.
- 함수를 변수에 저장할 수 있음.
- 함수를 인자로 다른 함수에 전달할 수 있으며, 새로운 함수를 만들어서 반환할 수 있음.
- 불변성(Immutability)
- 함수형 프로그래밍에서는 일단 만들어지고 나면 내부 상태가 절대로 바뀌지 않는 불볍 객체를 사용해 프로그램을 작성.
- 부수 효과(Side Effect) 없음
- 입력이 같으면 항상 같은 결과를 내놓는 순수 함수를 사용.
코틀린의 철학
- 실용성
- 대규모 시스템을 개발해본 다년간의 IT업계의 경험을 바탕으로 이루어짐.
- 수많은 개발자들의 사용에 잘 들어맞을 수 있게 주의 깊게 언어 특성을 선택.
- 어느 특정 프로그래밍 스타일이나 패러다임을 사용할 것을 강제로 요구하지 않음.
- 간결성
- 코드가 간결할수록 내용을 파악하기 쉬움.
- 설계와 각 부분의 역할을 잘 표현해주는 적절한 이름도 중요하지만 해당 언어가 얼마나 간결한 언어인지 중요.
- 자바의 게터, 세터, 생성자 파라메터를 필드에 대입하기 위한 로직 등을 코틀린은 묵시적으로 제공.
- 안전성
- 절대적인 오류 방지는 아님. (모든 오류를 막을 수는 없음)
- JVM을 사용한다는 것 자체가 상당한 안전성을 보장한다는 의미.
- 코틀린은 NPE를 없애기 위해 노력.
- 상호운용성
- 자바의 기존 라이브러리를 그대로 사용 할 수 있음.
'Programming > Kotlin' 카테고리의 다른 글
[당근마켓 밋업 정리] - Kotlin Coroutines 톺아보기 (0) | 2022.01.09 |
---|---|
Kotlin In Action #4 (0) | 2022.01.05 |
Kotlin In Action #3 (0) | 2021.12.22 |
Kotlin In Action #2 (0) | 2021.12.11 |
Kotlin In Action #1 (0) | 2021.12.06 |