기술지원 문의는 로그인 후에 가능합니다.

확인

Tech Blog

단군소프트에서 제공하는 소프트웨어 활용에 도움을 줄 수 있는 정보와 소프트웨어 새소식, 교육/세미나 정보를 제공해드립니다.

태그 모음

Tip&Tech

2021년 가을 Kotlin 로드맵의 7가지 하이라이트

21-12-24



안녕하세요, JetBrains 한국 총판 단군소프트입니다.


2021년 가을 Kotlin 로드맵의 7가지 하이라이트에 대해 다뤄보겠습니다.


Kotlin은 아이디어를 코드로 전환하기 위해 만들어졌습니다. 저희는 아이디어 구체화 과정을 방해하는 걸림돌을 제거하고, Kotlin을 단순하고 재미있게 읽고 쓸 수 있도록 만들기 위해 노력하고 있습니다. 하지만 이를 실현하려면 언어 구문, 컴파일러 프런트엔드 및 백엔드, IDE, 빌드 도구, 라이브러리 및 기타 모든 도구 등 수많은 요소로 구성된 매우 복잡한 엔지니어링 시스템이 필요합니다. 이러한 모든 구성 요소를 유지관리하고 개발하기 위해 JetBrains에서는 약 110명의 팀원들이 활동하며 다양한 프로젝트와 작업을 동시에 진행합니다.


이러한 프로젝트에 대한 최신 정보를 확인하려면 Kotlin 공개 로드맵을 확인해보세요!


Kotlin 1.7.0 이후의 계획을 반영하여 로드맵을 업데이트했습니다!

자세한 내용이 아닌 개괄적 내용만 확인하고 싶은 분은 가장 주목할만한 7가지 하이라이트를 다룬 이 블로그 글에서 진행 작업에 대한 요약 정보를 확인할 수 있습니다.


읽는 것을 좋아하지 않는 분들을 위해 이 하이라이트를 영상으로도 준비했습니다!






알파 단계로 진행 중인 K2 컴파일러 프런트엔드


이 컴파일러는 Kotlin의 핵심입니다. IDE 응답 속도, 빌드 속도, 바이너리 크기 및 효율성 등 애플리케이션 제작의 모든 측면에서 추진력을 제공하는 전체 언어의 발전소입니다. 그렇기 때문에 JetBrains는 Kotlin 컴파일러에 적극적으로 투자하고 있으며, 새로운 K2 컴파일러 빌드는 그 대표적 사례입니다.



현재는 K2 컴파일러 프런트엔드를 알파 단계로 진행시키는 데 팀 역량을 집중시키고 있습니다. 프런트엔드는 코드 분석 및 중간 표현으로의 변환을 담당하는 컴파일러 부분으로, 이후 이 부분은 백엔드에서 처리됩니다. 이 새로운 컴파일러는 이미 훌륭한 결과를 보여주고 있습니다. Kotlin 자체와 IntelliJ IDEA 같은 대규모 JVM 프로덕션 프로젝트를 컴파일할 수 있으며 이러한 프로젝트에서 컴파일 속도가 평균적으로 2배 더 빠릅니다.



앞으로 더 많은 프로젝트를 컴파일하고 버그 및 성능 문제를 수정하면서 계속 안정화 작업을 거쳐, K2/JVM 컴파일러 공개 테스트 버전을 2022년 봄까지 내놓을 계획 입니다. 알파 버전은 커뮤니티에서 더 많은 도구를 빌드하는 데 사용할 수 있는 새로운 플러그인 인프라의 테스트 버전을 제공하게 될 것입니다.



멀티플랫폼 프로젝트를 K2 컴파일러로 빌드할 수 있도록 JVM 이외의 백엔드 지원에도 투자하고 있습니다.



로드맵 티켓 살펴보기:

- K2/JVM 컴파일러 알파 버전 출시

- 컴파일러 플러그인 API 안정화

- K2 컴파일러의 JS 백엔드 조사







KMM의 안정성과 견고성에 집중


2022년 봄에 KMM 베타 버전이 나옵니다!

현재는 사용자 워크플로를 방해하는 문제를 최대한 많이 찾아 수정하는 데 집중하고 있습니다. 이러한 작업에는 코드 강조 표시, 탐색 및 코드 완성, 디버그, 빌드 도구 안정성이 포함됩니다. ​

또한 동시 실행 환경을 지속적으로 개선할 것입니다. 얼마 전에 실험적인 Kotlin/Native 메모리 관리자를 출시했습니다. 이를 통해 JVM과 Native 플랫폼 간의 차이가 완화되고 iOS 및 Android 플랫폼 모두를 위한 공통 동시 코드를 쉽게 작성할 수 있습니다. 추가 계획으로는 향후 새로운 메모리 관리자로 더 쉽게 마이그레이션할 수 있도록 안정성과 성능을 개선하는 작업이 있습니다. ​

로드맵 티켓 살펴보기:

- 멀티플랫폼 툴체인의 안정성과 견고성 향상

- 새 메모리 관리자를 알파 단계로 격상

Kotlin은 빠르게 진화합니다! 공개된 로드맵을 확인하고 현재 JetBrains에서 중점을 두고 있는 모든 기능을 전체적으로 살펴보세요!



네임스페이스 연구 및 프로토타이핑

Kotlin에서는 클래스가 컴패니언 객체를 선언한 경우에만 해당 클래스에 대한 확장을 가질 수 있습니다. 이 때문에 다수의 타사 라이브러리 클래스를 확장할 수 없고 private static 클래스 멤버를 선언할 때 효율성이 떨어지는 등, 여러 가지 원치 않는 결과가 수반됩니다.



이에 JetBrains는 모든 클래스에 자동 소유되는 인스턴스가 없는 일종의 임시 객체라는, 새로운 개념의 네임스페이스를 도입한 솔루션을 프로토타이핑할 계획입니다. 네임스페이스 멤버는 JVM의 static 멤버로 자연스럽게 컴파일됩니다. 이에 따라 static 헬퍼는 소스에서 함께 그룹화되고 객체 오버헤드는 완전히 제거됩니다. 이는 Kotlin과 Java static 메서드 간의 상호운용성을 크게 개선하기 위한 것으로, 모든 Java 타입에서 확장을 가능하게 합니다. 이러한 솔루션은 Kotlin/JVM 채택을 확대하는 데 기여할 것입니다.



로드맵 티켓 살펴보기:

- static 및 static 확장을 위한 네임스페이스 기반 솔루션 연구와 프로토타입 개발




Kotlin 테스트 커버리지 도구, Kover

​Kotlin 애플리케이션 및 라이브러리의 테스트 커버리지를 수집하기 위한 강력한 Kotlin 전용 솔루션이 있어야 에코시스템이 성장한다고 JetBrains는 생각합니다. Gradle 플러그인인 Kover를 도입한 이유도 이 때문입니다. 이 플러그인은 Kotlin 코드의 코드 커버리지를 측정하고 인라인 함수를 포함한 모든 언어 구문과 작동합니다.



장기 계획으로는 검증 규칙을 위한 DSL, JaCoCo 사용 안정화, 고급 필터링 및 고급 Android 지원 등이 있습니다. 피드백을 기반으로 Kover를 개발할 계획이므로 사용해 보고 의견을 공유해 주세요!



로드맵 티켓 살펴보기:

- kotlinx-kover 출시 및 제품화 추가 진행




라이브러리 문서 생성을 위해 새롭게 작업된 도구, Dokka

작업이 진행 중인 라이브러리 개발자를 위한 또 다른 도구로 문서 생성 도구인 Dokka가 있습니다. 1.6.0으로 진행하면서 베타 단계에 이르렀고, 사용편의성과 공식 Kotlin 문서와의 디자인 통합에 중점을 두고 있습니다. 공식 언어 참조 문서이든 라이브러리 문서이든 상관없이 개발자들이 Kotlin 문서로 작업할 때 원활한 경험을 하기를 바랍니다. 균일한 시각적 스타일과 구조를 사용하면 컨텍스트 전환의 부담을 줄이는 데 도움이 됩니다.



다음 단계는 Dokka를 안정화 버전으로 진행하는 것이며 현재 유일하게 안정적인 출력은 HTML입니다. GitHub Markdown 또는 Jekyll, 플러그인 개발자용 API 및 Java에 대한 전면적인 지원과 같은 기타 출력 형식은 알파 버전으로 유지됩니다. 앞으로 더 나아가기 위해 일련의 인터뷰를 진행할 예정이며 여러분의 솔직한 피드백을 기대합니다!



로드맵 티켓 살펴보기: 

- Dokka 안정화 버전 출시

힌트: UX 연구에 참여하고 싶으신가요? 신청하세요!



Kotlin IDE 플러그인 릴리스의 도입 개선

Kotlin IDE 플러그인을 IntelliJ 플랫폼 개발 인프라로 옮기는 일은 복잡한 엔지니어링 작업이었지만, 이를 통해 IntelliJ 플랫폼에서 새로운 도구 기능를 지원할 수 있게 되었습니다. 그러나 몇 가지 부정적인 부분도 있습니다. 예를 들어, EAP 사용자라면 예정된 Kotlin 릴리스의 테스트 버전이 IntelliJ IDEA EAP 릴리스에서 지원되지 않는다는 사실을 눈치채셨을 것입니다. 이 문제를 포함해 Kotlin IDE 플러그인 릴리스의 도입을 방해하는 기타 문제를 해결하기 위해 내부 인프라를 개선할 예정입니다.​

로드맵 티켓 살펴보기:​

- 컴파일러/플랫폼 버전을 더 빠르게 업데이트

 



Playground 개선

모임에서 친구에게 새로운 Kotlin 기능을 보여주고 싶었지만 노트북을 가져오지 않았다는 사실을 깨달았던 경험이 혹시 있으셨나요? Kotlin 기능 소개, 언어 학습, 프로토타입 제작, 지식 공유와 같은 다른 많은 상황에서 도움을 주는 Kotlin Playground가 제공됩니다. 여러분 모두가 Kotlin Playground를 긍정적으로 평가해주신 만큼, 더 많은 기능으로 보답해 드리려고 합니다.



신규 사용자를 위해서는 더 많은 예시와 팁을 제공하여 원활한 사용자 경험을 제공할 계획입니다. 고급 사용자를 위해서는 장치 간 진행 상황을 동기화하고, 여러 탭을 열고, 파일을 내보내는 등의 기능을 제공하려고 합니다. 그뿐 아니라 노트북을 가져가지 않아도 모임을 망치는 일이 없도록 Kotlin Playground를 모바일 친화적으로 만들 예정입니다!



로드맵 티켓 살펴보기:

- Kotlin Playground 개선



커뮤니티는 Kotlin을 성장시키는 자양분과 같습니다. 계획을 수립하는 과정에서 여러분의 피드백과 아이디어를 반영할 예정이므로 YouTrack, Slack 또는 기타 채널을 통해 의견을 공유해 주세요 :)


블로그와 YouTube 채널 채널에서 향후 Kotlin 계획에 대해 계속해서 다룰 것입니다. 두 채널을 모두 구독하고 지켜봐 주세요!


긴 글 읽어주셔서 감사합니다.

즐거운 성탄절 보내세요!

메리크리스마스 :)






자세히 알아보기

- Kotlin 로드맵

- 공개 Slack의 #kotlin-roadmap 채널(초대받기)

- Kotlin YouTube 채널



태그