Page 18 -
P. 18

코틀린 간결성의 또 다른 측면은 DSL과 밀접히 연관된다(11장 도메인 특화 언어 참조). DSL은 문
               법적인 잡음을 최소화하면서 특정 프로그래밍 범위에 대한 기술을 아주 간결하게 만들어준다.




               1.1.4 상호 운용성


               코틀린은 독립적으로 존재하는 언어가 아니며 가능한 한 기존의 (자바) 코드 기반과 부드럽게 협

               력해야만 했으므로, 자바 상호 운용성은 코틀린 설계 시 중요한 목적이었다. 그래서 코틀린 설계
               자들은 기존 자바 코드를 코틀린에서 사용할 수 있게 했을 뿐 아니라, 코틀린 코드를 거의 아무런
               노력을 들이지 않고도 자바에서 사용할 수 있도록 보장하기 위해 노력했다. 코틀린 언어는 자바와
               코틀린의 상호 운용성을 조절하기 위한 몇 가지 특별한 기능도 포함한다.

               코틀린이 JVM을 능가하고 다른 플랫폼으로 퍼져 나감에 따라 상호 운용성 보장은 자바스크립트,
               즉 JS 플랫폼이나 네이티브 애플리케이션인 C/C++/오브젝티브 C(Objective C)/스위프트(Swift) 코

               드와의 상호 작용까지 포함하는 범위로 확장됐다.
               12장 자바 상호 운용성에서는 자바 상호 운용성(Java interoperability)을 다루고, 코틀린과 자바를 한

               프로젝트 안에서 함께 사용하는 방법을 설명한다.




               1.1.5 다중 플랫폼


               코틀린 설계자들의 원래 의도에 다중 플랫폼(multiplatform)은 없었다. 하지만 코틀린 언어가 진화
               하고 채택됨에 따라 개발자 커뮤니티에 의해 다중 플랫폼 지원의 필요성이 제기됐다. 여전히 JVM

               과 안드로이드가 코틀린 개발의 주 대상이지만, 요즘 코틀린은 다음과 같은 플랫폼도 지원한다.

                 ●    브라우저나 노드(Node.js) 애플리케이션, 자바스크립트 라이브러리까지 포함하는 자바스크
                    립트 지원

                 ●     macOS나 리눅스(Linux), 윈도우(Window) 라이브러리 및 애플리케이션을 포함하는 네이티
                    브 지원

               코틀린 1.3 버전부터 다중 플랫폼 개발을 지원하며, 주된 용례로는 안드로이드와 iOS 애플리케이
               션 사이에 코드 기반을 공유하거나 JVM/JS/네이티브 세계에서 사용할 다중 플랫폼 라이브러리를

               만드는 것 등이 있다.



         30





     Kotlin_05.indd   30                                                                     2022-02-15   오후 4:07:31
   13   14   15   16   17   18   19   20   21   22   23