본문으로 바로가기

Kotlin In Action #0

category Programming/Kotlin 2021. 12. 5. 22:12

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