Kotlin으로 Cli를 만든다고? - 박준민 _NE DAY 23. 10
엔지니어링데이 2025 네이버 · YouTube
AI 핵심 요약
플랫폼 조직에서 Kotlin으로 개발한 비즈니스 로직을 사내 사용자가 쓸 CLI에서도 활용하려 했지만, 다른 언어로 구현하면 도메인 로직을 옮기기 어려웠다. 발표자는 Kotlin 코드를 GraalVM 네이티브 이미지로 AOT 컴파일해 독립 실행 파일을 만들고, Kotlin/Native와 비교해 JVM 라이브러리 활용과 성능 측면에서 GraalVM을 선택한 배경을 설명했다. 네이티브 이미지에서는 리소스와 리플렉션 설정, 빌드 시점 클래스 초기화에 주의해야 하며, GitHub Actions와 플랫폼별 빌드 서버를 이용해 바이너리를 생성·압축·배포했다. CLI 인자와 서브커맨드 구현에는 Clikt를 활용했으며, 네이티브 이미지의 제약을 설정 파일과 빌드 파이프라인으로 다루는 방법을 샘플 코드와 함께 소개했다.
- CLI가 기존 Kotlin 프로젝트의 도메인 로직과 밀접하다면, 별도 언어로 옮기기보다 Kotlin으로 구현하는 편이 로직 재사용에 유리하다.
- GraalVM 네이티브 이미지에서는 필요한 리소스와 리플렉션 대상 클래스를 설정 파일에 명시해야 런타임 오류를 피할 수 있다.
- 빌드 시점에 초기화되는 클래스는 시스템 프로퍼티 값이 예상과 다를 수 있으므로, 초기화 시점을 명시적으로 점검한다.
- GraalVM은 크로스 컴파일에 제약이 있으므로 플랫폼별 실행 환경에서 각각 빌드하고, GitHub Actions 매트릭스로 작업을 병렬화할 수 있다.
- Kotlin용 Clikt 라이브러리를 사용하면 CLI 인자 파싱과 서브커맨드 구성을 간결하게 처리할 수 있다.
소개
네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY(10월)에서 발표되었던 세션을 공개합니다. ----- [발표 내용] - 배경 - Kotlin으로 CLI를? - GraalVM - 사용법 - 주의사항 - 빌드 & 배포 - 헬퍼 Library 소개 - 샘플 코드
비슷한 학습 자료
컨퍼런스 if kakao
GraalVM에 대해 소개하고, Java로 네이티브 애플리케이션을 개발하기 위한 GraalVM의 요구사항들을 설명합니다. GraalVM 도입 전후의 성능을 벤치마크하고 비교합니다. GraalVM으로 초기 성능 웜업 문제를 해결함으로써 얻은 운영상의 이점과 인사이트를 공유합니다. #GraalVM #JAVA #성능최적화 #애플리케이션최적화 카카오톡 톡서버플랫폼에서 백엔드 개발을 하고 있는 Nathan입니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-84 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024
백엔드 프로그래밍 언어
컨퍼런스 if kakao
Preview Blockchain @if(kakao)2022
컨퍼런스 if kakao
if(kakao)2022 컨퍼런스에서 Blockchain 관련 기술 발표 트랙을 소개합니다. 03:40 1. Towards Ethereum Equivalence: 이더리움 동등성을 향해 by 김정현(colin.klaytn) 클레이튼 메인넷부터 개발에 참여했습니다. 더 많은 사람들이 클레이튼을 사랑하고, 사용성이 좋은 더 많은 응용프로그램들이 클레이튼 위에서 개발되기를 노력하며 여러가지 활동들을 하고 있습니다. 04:23 2. 메타버스에 적합한 블록체인은?: Transaction Latency Measurement by 김연주(phoebe.727) 크르스트유니버스 코어 데브 팀 인터페이스 파트에서 개발을 하고 있는 피비입니다. 개발자 뿐만 아니라 일반 사용자들도 클레이튼을 쉽게 사용할 수 있도록 돕기 위해 필요한 다양한 개발에 참여하고 있습니다. 05:12 3. Rosetta API, Klaytn도 지원한다! by 김지민(jamie.1222) 크러스트유니버스 코어 데브팀 제이미...
블록체인
컨퍼런스 DEVIEW 2023
그 여자 APP, 그 남자 SDK: Kotlin Multiplatform 적용기
컨퍼런스 엔지니어링데이 2025
KMP 기반 UI 컴포넌트 통합 전략
컨퍼런스 엔지니어링데이 2025
네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY 2025(5월)에서 발표되었던 세션을 공개합니다. [발표 내용] 멀티플랫폼에 대응 가능한 밴드 디자인 시스템의 설계 및 구현 방식에 대해 소개하고, 밴드 안드로이드 팀에서 아이콘 리소스를 자동화하여 관리하는 방법에 대해서 공유합니다. [강의 대상] * 안드로이드 개발자 및 멀티플랫폼에 대한 관심이 있는 분 * 디자인 시스템에 관심이 있는 분 [목차] Episode 1 : 디자인 시스템, 개념에서 실전까지 Episode 2 : KMP, 진짜 실무에 쓸 수 있을까? Episode 3 : BDS 모듈에 KMP 적용하기 Episode 4 : 디자인 시스템 UI 컴포넌트, Maven으로 배포하기 Episode 5 : Figicon으로 아이콘 자동 동기화하기
프론트엔드 모바일 앱 개발
컨퍼런스 엔지니어링데이 2025
C++에서 Kotlin, Swift 까지?! Bazel을 활용한 Android / iOS 모노레포 도입기
컨퍼런스 우아콘 2022
Kotlin은 기존 Java 코드와 100% 상호 운용성을 지원합니다. 그렇기 때문에 기존 라이브러리와 프레임워크를 문제없이 사용할 수 있습니다. 하지만 비즈니스 로직을 작성할 때는 Kotlin 코드에 설레면서도 테스트 코드를 작성하기 위해 Java 라이브러리와 프레임워크를 만나면 Kotlin에 대한 설렘이 사라집니다. 이번 발표에서는 단위 테스트부터 인수 테스트까지 Kotlin에 대한 설렘을 유지하는 방법을 공유합니다. [발표자 소개] 박재성(제이슨) | 테크코스교육개발팀 좋은 코드에 관심이 많으며, 1년이 지나도 10년이 지나도 변화에 대응할 수 있는 코드를 추구합니다. 어떻게 하면 도메인을 깊이 이해하고 더 나은 소프트웨어를 개발할 수 있을지 여러분과 공유하고 싶고, 항상 고민하고 있습니다.
프로그래밍 언어 소프트웨어 테스트 TDD