본문 바로가기
kotlin/basic

Kotlin?

by 신주봉 2024. 3. 18.

코틀린이란 무엇인가?

자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어

안정성, 간결성과 표현력, 상호운용성을 강조하는 다중 패러다임, 다중 플랫폼 프로그래밍 언어


대상 플랫폼

  • 서버, 안드로이드 등 자바가 실행되는 모든 곳
    1. 코틀린의 주 목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 하는 것
    2. 자바뿐 아니라 자바스크립트로도 코틀린을 컴파일할 수 있음
    3. 코틀린은 구체적인 영역의 문제를 해결하거나 특정 프로그래밍 패러다임을 지원하는 여러 라이브러리와 아주 잘 융합됨

코틀린 특징

  1. 타입 추론
    1. 변수 타입을 지정하지 않아도 타입 추론을 통해 컴파일러가 문맥을 고려해 타입을 결정
  2. Nullable 지원
    1. 컴파일 시점에 NPE(NullPointerException)가 발생할 수 있는 지 여부를 검사할 수 있어, 프로그램의 신뢰성을 더 높일 수 있음.
  3. 함수형 프로그래밍 지원
    1. 함수 타입을 지원
      1. 어떤 함수가 다른 함수를 파라미터로 받거나 함수가 새로운 함수를 반환할 수 있음
    2. 람다식을 지원
      1. 번거로운 준비 코드 없이 코드 블록을 쉽게 정의하고 여기저기 전달할 수 있음
    3. 데이터 클래스는 불변적인 Value Object를 간편하게 만들 수 있는 구문을 제공
    4. 표준 라이브러리는 객체와 컬렉션을 함수형 스타일로 다룰 수 있는 API를 제공함
  • 함수형 프로그래밍의 특징
    1. 일급 시민인 함수
      1. 함수를 일반 값처럼 변수에 저장할 수 있음
      2. 함수를 인자로 다른 함수에 전달할 수 있음
      3. 함수에서 또 다른 함수를 생성하여 반환할 수 있음
    2. 불변성(immutable)
      1. 만들어지고 나면 내부 상태가 절대로 바ㅜ끼지 않는 불변 객체를 사용해 프로그램을 작성함
    3. side effect 없음
      1. 함수형 프로그래밍에서는 입력이 같으면 항상 같은 출력을 내놓음
      2. 다른 객체의 상태를 변경하지 않음
      3. 함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수 함수를 사용함

요약

  1. 타입 추론을 지원하는 정적 타입 지정 언어.
    1. 소스코드의 정확성과 성능을 보장하면서도 소스코드를 간결하게 유지할 수 있음
  2. 객체지향과 함수형 프로그래밍 스타일을 모두 지원.
    1. 일급 시민 함수를 사용해 수준 높은 추상화가 가능하고, 불변 값 지원을 통해 다중 스레드 애플리케이션 개발과 테스트를 더 쉽게 할 수 있음
  3. 서버 애플리케이션 개발에 활용할 수 있음.
    1. 기존 자바 프레임워크를 완벽하게 지원하는 한편, HTML 생성기나 영속화 등의 일반적인 작업을 위한 새로운 도구를 제공함
  4. 무료며 오픈소스, 또한 주요 IDE와 빌드 시스템을 완전히 지원함.
  5. 실용적이며 안전하고, 간결하며 상호운용성이 좋음.
    1. 설계하면서 일반적인 작업에 대해 이미 잘 알려진 해법을 채택하고, NPE(NullPointerException)과 같이 흔히 발생하는 오류를 방지하며, 읽기 쉽고 간결한 코드를 지원하면서 자바와 아무런 제약 없이 통합될 수 있는 언어를 만드는데 초점을 맞춤.

'kotlin > basic' 카테고리의 다른 글

생명 주기 (Lifecycle)  (1) 2024.03.22
폴더트리  (0) 2024.03.18
기본 문법  (1) 2024.03.18