ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kotlin] 코틀린이란 무엇이고 왜 필요할까
    Computer Science/Kotlin 2021. 1. 17. 00:55

    코틀린의 목적은 무엇인가

    • 현재 자바가 사용되고 있는 모든 용도에 더 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 것
    • 자바 대신에 코틀린을 도입하면 더 적은 코드로 더 편하게 프로그래머의 목표를 달성할 수 있음
    • 코틀린은 서버 사이드, 안드로이드 앱, 데스크탑 앱, ios 등 여러 분야에서 폭넓게 활용할 수 있음
    • 자바와 거의 대부분 호환 가능함

    정적 타입 지정 언어

    • 자바와 마찬가지로 코틀린도 정적 타입 지정 언어(Statically typed)
    • 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 객체의 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증해준다
    • 코틀린에서는 자바와 달리 타입 추론 기능이 있기 때문에 타입 선언을 생략해도 됨

    정적 타입 지정 언어의 장점

    • 실행 시점에 어떤 메소드를 호출할지 알아내는 과정이 필요 없으므로 메소드 호출이 더 빠름
    • 컴파일러가 프로그램의 정확성을 검증하기 때문에 실행 시 프로그램이 오류로 중단될 가능성이 더 적어짐
    • 코드에서 다루는 객체가 어떤 타입에 속하는지 알 수 있기 때문에 처음 보는 코드를 다룰 때도 더 쉬움

    코틀린 타입 시스템의 차이

    • 코틀린은 널이 될 수 있는 타입을 지원함
    • nullable type을 지원함에 따라 컴파일 시점에 널 포인터 예외가 발생할 수 있는지 여부를 검사할 수 있어서 좀 더 프로그램의 신뢰성을 높일 수 있음
    • 함수 타입을 지원함

    함수형 프로그래밍과 객체지향 프로그래밍

    함수형 프로그래밍의 핵심 개념

    • First-class 함수
      • 함수를 일반 값처럼 다룰 수 있음. 함수를 변수에 저장할 수 있고, 함수를 인자로 다른 함수에 전달할 수 있으며, 함수에서 새로운 함수를 만들어서 반환할 수 있음
    • 불변성
      • 함수형 프로그래밍에서는 일단 만들어지고 나면 내부 상태가 절대로 바뀌지 않는 별변 객체를 사용해 프로그램을 작성
    • Side effect 없음
      • 함수형 프로그래밍에서는 입력이 같으면 항상 같은 출력을 내놓고 다른 객체의 상태를 변경하지 않으며, 함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수 함수를 사용함

    함수형 스타일로 작성했을 때 장점

    • 간결성, 더 강력한 추상화를 사용해 코드 중복을 막을 수 있음
    • 다중 스레드를 사용해도 안전함
      • 불변 데이터 구조를 사용하고 순수 함수를 데이터 구조에 적용하면 다중 스레드 환경에서 같은 데이터를 여러 스레드가 변경할 수 없음
    • 테스트가 쉽다

    → 코틀린으로 작성할 때는 객체지향과 함수형 접근 방법을 함께 조합해서 문제에 가장 적합한 도구를 사용할 수 있다.

    코틀린의 철학

    실용성

    • 실제 문제를 해결하기 위해 만들어진 언어

    간결성

    • 자바보다 코드를 훨씬 짧고 간결하게 작성할 수 있음

    안전성

    • 애플리케이션의 타입 안전성을 보장함

    상호운용성

    • 자바의 기존 라이브러리들을 그대로 사용할 수 있음
    • 자바에서 코틀린 코드를 호출할 수 있고, 자바와 코틀린 코드를 프로젝트에서 원하는대로 섞어 쓸 수 있음
    • 자바 메소드를 리팩토링해도 그 메소드와 연관 있는 코틀린 코드까지 제대로 변경됨

    댓글

Designed by Tistory.