KotlinInAction/코틀린이란 무엇이며, 왜 필요한가

코틀린 응용

webmaster 2022. 7. 25. 10:46
728x90

코틀린의 서버 프로그래밍

서버 프로그래밍??

  • 브라우저에 HTML 페이지를 돌려주는 웹 애플리케이션
  • 모바일 애플리케이션에게 HTTP를 통해 JSON API를 제공하는 백엔드 애플리케이션
  • RPC 프로토콜을 통해 서로 통신하는 작은 서비스들로 이뤄진 마이크로 서비스

위와 같은 서버 프로그램을 하기 위해 꾸준하게 새로운 기술, 프레임워크들이 생기고 발전해 왔다

 

  • 코틀린은 자바 코드와 매끄럽게 상호 운용할 수 있다는 장점이 있다.
    • 새로운 컴포넌트를 작성하거나, 기존 서비스 코드를 코틀린으로 이식하는 경우에 모두 잘 들어맞는다.
    • 자바 클래스를 코틀린으로 확장해도 아무 문제가 없으며, 코틀린 클래스 안의 메서드나 필드에 특정 애노테이션을 붙여야 하는 경우에도 아무 문제가 없다.
    • 시스템 코드는 더 간결해지고 신뢰성이 높아질 것이며, 유지보수가 쉬워질 것이다.
  • 코틀린을 사용하면 몇 가지 새로운 기술을 활용해 서버 시스템을 개발할 수 있다.
    • EX) 빌더 패턴
  • 코틀린이 제공하는 DSL 기능을 활용할 수 있는 다른 예로 영속성 프레임워크를 들 수 있다.
 

GitHub - JetBrains/Exposed: Kotlin SQL Framework

Kotlin SQL Framework. Contribute to JetBrains/Exposed development by creating an account on GitHub.

github.com

코틀린 안드로이드 프로그래밍

전형적인 모바일 애플리케이션은 전형적인 엔터프라이즈 애플리케이션과 많이 다르다

  • 코틀린 언어의 특성과 안드로이드 프레임워크의 특별한 컴파일러 플러그인 지원을 조합하면, 안드로이드 애플리케이션 개발의 생성성을 높일 수 있다.
    • 컨트롤에 리스너를 추가, 레이아웃 요소를 필드와 바인딩 등 안드로이드 개발 작업을 훨씬 더 적은 코드로 달성 가능하다.
    • 안코 라이브러리는 안드로이드 API에 대한 어댑터를 제공했다
    • https://github.com/kotlin/anko
 

GitHub - JetBrains/Exposed: Kotlin SQL Framework

Kotlin SQL Framework. Contribute to JetBrains/Exposed development by creating an account on GitHub.

github.com

  • 코틀린 타입 시스템은 null 값을 정확히 추적하며, 널 포인터로 인해 생기는 문제를 줄여준다.
  • 디폴트로 자바 8과 호환되고, 9~17 버전을 지원할 수 있다.
  • 성능적인 측면에서도 아무 손해가 없다
    • 코틀린 컴파일러가 생성한 바이트코드는 일반적인 자바 코드와 똑같이 효율적으로 실행된다.
    • 런타임 시스템은 상당히 작기 때문에 컴파일 후 패키징 한 애플리케이션 크기도 자바 애플리케이션에 비해 많이 늘어나지 않는다.
    • 대부분을 코틀린 표준 라이브러리 함수는 인자로 받은 람다 함수를 인라이닝 한다.
      • 람다를 사용해도 새로운 객체가 만들어지지 않으므로 객체 증가로 인해 GC가 늘어나서 프로그램이 자주 멈추는 일도 없다.
728x90

'KotlinInAction > 코틀린이란 무엇이며, 왜 필요한가' 카테고리의 다른 글

코틀린 도구 사용  (0) 2022.07.25
코틀린 철학  (0) 2022.07.25
코틀린 특성  (0) 2022.07.25