본문 바로가기
Kotlin/Release Notes

[Kotlin Release Notes] Introducing Kotlin Notebook

by 노력남자 2023. 9. 12.
반응형

2023년 7월 4일

 

IntelliJ IDEA용 Kotlin Notebook 플러그인의 첫 번째 실험 버전이 이제 사용 가능합니다! 이 게시물에서는 플러그인의 기능과 사용 사례에 대한 통찰력을 제공하지만 그에 앞서 플러그인이 스스로 말하게 두겠습니다:

 

 

마켓플레이스에서 설치하기

 

Kotlin Notebook 플러그인이란 무엇인가요?


노트북은 코드, 시각화 및 텍스트를 하나의 문서에 결합할 수 있는 대화형 도구입니다. 노트북에서는 코드 스니펫(셀)을 작성하고 실행하며 결과를 볼 수 있으며 생각 과정을 한 곳에 문서화할 수 있습니다.

노트북은 이미 빠른 프로토타이핑, 분석 및 데이터 과학을 위해 널리 사용되고 신뢰받고 있습니다. Kotlin Notebook 플러그인은 대화형 개발의 힘을 IntelliJ IDEA에 가져오며 Kotlin 언어 지원의 모든 기능과 브라우저의 다재다능한 시각화 기능을 결합합니다.

이 플러그인이 할 수 있는 일과 작동 방식을 알아보기 위해 기술적인 세부 정보로 들어가 봅시다.


설치


플러그인을 얻으려면 IntelliJ IDEA Ultimate의 Settings | Plugins 탭에서 Marketplace에서 설치하면 됩니다. 적어도 IntelliJ IDEA 버전 2023.1.2를 사용해야 합니다. 이전 버전에서도 플러그인을 설치할 수 있을 수 있지만 불안정할 수 있습니다.

설치 과정 중에 Python 플러그인을 설치하라는 제안이 표시됩니다. 이를 수락해야 합니다. 걱정하지 마세요. 이 작업은 워크스테이션에 Python을 설치하지 않습니다. Kotlin Notebook은 단순히 Python 플러그인에 위치한 UI 구성 요소에 대한 종속성이 있습니다. 이러한 종속성을 곧 제거할 계획입니다.

 


Kotlin Notebook 플러그인은 현재 IntelliJ IDEA Ultimate에서만 작동합니다.


Kotlin Notebook에 익숙해지기


플러그인을 설치한 후 첫 번째 노트북을 만들 준비가 됩니다. 기본적으로 노트북은 디스크의 파일일 뿐이므로 Project 뷰에서 New | Kotlin Notebook 작업을 사용하여 어디에서나 생성할 수 있습니다.

 


.ipynb 확장자를 가진 파일이 생성됩니다. Jupyter 노트북에 이미 익숙한 경우, 이 확장자는 매우 익숙할 것입니다. 내부적으로 Kotlin 노트북은 동일한 구조, 형식 및 프로토콜을 따릅니다. 따라서 이러한 파일은 GitHub에서 봐도 되며 Kotlin 커널이 설치된 Jupyter 노트북이나 JupyterLab에서 볼 수 있습니다.

생성된 노트북에는 첫 번째 빈 셀만 포함되어 있습니다. 셀은 노트북의 주요 구성 요소이며 코드 또는 텍스트를 포함할 수 있습니다. 코드 셀을 실행하려면 해당 셀을 선택한 다음 실행 버튼을 클릭하거나 Shift + Enter 단축키를 사용하면 됩니다. 코드가 실행되고 출력 또는 오류가 해당 셀 아래에 표시됩니다.

또한 Markdown 셀에 텍스트를 작성할 수 있으며 헤더, 목록, 링크, LaTeX 및 이미지와 같은 풍부한 서식 옵션을 지원합니다. Markdown 셀을 렌더링하고 서식이 있는 텍스트를 보려면 코드 셀을 실행하는 것처럼 실행하면 됩니다.

노트북은 대화식 및 반복적인 작업 흐름을 제공합니다. 셀을 어떤 순서로든 실행하거나 코드 또는 텍스트를 수정하고 변수를 선언하고 다시 선언하며 셀을 다시 실행하여 업데이트된 결과를 볼 수 있습니다. 이렇게 하면 실험, 프로토타입 제작 및 작업 문서화가 쉬워집니다.

 


코드 설명 및 문서화에 노트북을 사용하는 이점을 직접 체험하려면 이 노트북을 다운로드하여 탐색해 보기를 권장합니다. 이 노트북은 이 블로그 게시물에서 논의된 Kotlin 노트북의 모든 측면을 따라가며 이론과 실습을 결합할 수 있도록 해줍니다.


샘플 노트북


노트북은 노트북을 익히는 가장 좋은 방법입니다! ;-)

 

출력


노트북을 두드러지게 만드는 주요 기능 중 하나는 지원하는 다양한 출력 유형입니다.

  • 텍스트: 이것은 가장 간단한 출력 유형으로, 출력된 문장, 변수 값 또는 코드에서 생성된 모든 텍스트 기반 출력을 포함합니다. 셀의 결과가 아래 분류 중 하나에 해당하지 않으면 toString() 메서드를 통해 텍스트로 출력됩니다.
  • HTML: Jupyter 노트북은 HTML을 직접 렌더링할 수 있어 풍부한 텍스트 서식 지정, 테이블 사용 또는 웹 사이트 임베딩과 같은 기능을 제공합니다.
  • 이미지: 정적 이미지는 PNG, JPEG 및 SVG와 같은 형식으로 표시할 수 있습니다. BufferedImage 유형의 결과도 지원됩니다. 이러한 이미지는 파일에서 가져온 이미지, 생성된 그래프 또는 다른 시각적 미디어가 될 수 있습니다.
  • 풍부한 텍스트: Markdown 셀은 풍부한 텍스트 HTML 출력을 생성하며 목록, 글꼴 스타일, 코드 블록 등을 지원합니다.
  • LaTeX: 수학적 공식 및 방정식은 학계에서 널리 사용되는 조판 시스템인 LaTeX을 사용하여 아름답게 렌더링할 수 있습니다.
  • 오류 및 추적 정보: 코드에 오류가 포함되어 있을 때 노트북은 오류 메시지와 추적 정보를 표시하여 디버깅에 도움을 제공합니다.

 

노트북 종속성


노트북이 어떤 종속성을 가지고 있는지도 중요한 고려사항입니다. 물론 표준 라이브러리를 기본적으로 사용할 수 있지만 종종 충분하지 않을 수 있습니다. 다음과 같은 여러 옵션이 있습니다.


- 노트북이 프로젝트의 종속성을 활용할 수 있도록하여 노트북이 동일한 클래스에 액세스하도록 할 수 있습니다.

 

- 노트북 내에서 프로젝트 자체의 클래스 및 다른 엔터티를 사용할 수 있습니다. 이러한 경우 각 셀 실행 전에 프로젝트가 변경되었는지 확인하고 필요한 경우 재컴파일됩니다.

 


- Maven 저장소에서 라이브러리의 좌표를 Gradle 스타일 구문의 조각을 사용하여 지정하여 어떤 라이브러리를로드 할 수 있습니다.

 

USE {
  repositories {
    maven {
      url = "https://my.secret.repo/maven/"
      credentials {
        username = USER
        password = TOKEN
      }
    }
  }
  dependencies {
    val ktorVersion = "2.0.3"
    implementation("my.secret:artifact:1.0-beta")
    implementation("io.ktor:ktor-client-core-jvm:$ktorVersion")
    implementation("io.ktor:ktor-client-apache-jvm:$ktorVersion")
  }
}


- 또는 DependsOn 어노테이션을 사용한 더 짧은 버전을 사용할 수 있습니다.

 

@file:DependsOn(“io.ktor:ktor-client-core-jvm:$ktorVersion“)


- Maven 좌표를 기억하고 찾는 것은 불편한 작업일 수 있습니다. 이 프로세스를 간소화하기 위해 인기있는 라이브러리를 로드하는 더 스마트하고 편리한 방법을 도입했습니다. 이름 뒤에 오는 %use 매직 명령을 사용하면 됩니다.

 


%use 문이 실행되면 라이브러리 종속성을 다운로드하는 것뿐만 아니라 노트북에 기본 가져오기를 추가합니다. 또한 라이브러리 유형에 대한 렌더러를 등록하고 다음 섹션에서 논의할 다양한 기능을 포함합니다.

 

라이브러리 통합


Kotlin 노트북은 다양한 라이브러리 통합 옵션을 제공합니다.

사용자에게 이를 활용하는 것은 단 한 줄의 코드를 추가하는 것만큼 간단합니다:

 

%use libraryName


라이브러리 작성자에게도 이 명령이 튀어오르는 스프링보드 역할을 하여 다음을 가능하게 합니다.

  • Maven 저장소에서 라이브러리 이진 파일을 다운로드합니다.
  • 초기 가져오기를 포함합니다.
  • 초기화 중에 코드를 실행합니다.
  • 각 셀 실행 전후에 코드를 실행합니다.
  • 각 셀의 코드를 전처리합니다.
  • 특정 유형의 변수를 만들 때 콜백을 호출합니다.
  • 라이브러리에서 정의된 다양한 유형에 대한 사용자 정의 렌더러를 만듭니다.
  • 등과 같은 많은 기능을 제공합니다.

 

모두 함께 고려하면 대화형 사용자 경험을 만드는 데 거의 무한한 가능성을 제공합니다. Kotlin의 정적 및 AOT 유형을 고려하면 자동으로 생성된 코드를 즉석에서 제공할 수 있는 능력은 추가적인 유연성과 확장성 수준을 제공합니다.

종합적인 문서는 여기에서 액세스할 수 있습니다. 모든 라이브러리 작성자에게 공통 레지스트리에 통합을 공유하도록 권장합니다. 몇몇 라이브러리 (WebTau, Roboquant, Kaliningraph 등)가 이미 이 접근 방식에서 이점을 얻고 있는 것을 볼 때 특히 기쁩니다.


공유


노트북을 다른 사람들과 공유하려는 것은 일반적입니다. 특히 팀 내외에서 공유하고자 하는 경우입니다. Kotlin 노트북은 보편적인 Jupyter 형식을 준수하므로 어떤 노트북 웹 뷰어를 사용하여도 쉽게 배포할 수 있습니다. 특히 GitHub는 이를 네이티브로 렌더링할 수 있는 능력을 갖고 있습니다.

또한 JetBrains는 Kotlin 노트북을 완벽하게 지원하는 Datalore 플랫폼을 보유하고 있습니다. Datalore는 공유 능력뿐만 아니라 노트북을 실행하고 편집할 수 있도록 지원하며 대화형 보고서와 노트북 실행 일정을 추가 편리성과 유연성을 위한 옵션으로 제공합니다.

 

요약

 

Kotlin 노트북 플러그인의 첫 실험 버전이 IntelliJ IDEA Ultimate 프로젝트에서 사용할 준비가 되어 있습니다!

다음은 Kotlin 노트북의 기본을 직접 배울 수 있는 샘플 노트북입니다.

샘플 노트북 살펴보기


라이브러리 작성자라면 Kotlin 노트북과의 통합을 추가하는 것을 고려해 보세요.

문제나 버그를 발견하면 프로젝트 이슈 트래커에 티켓을 제출하여 알려주시기 바랍니다. 또한 Kotlin Slack의 #notebook 채널에서 피드백을 기꺼이 받겠습니다.

좋은 Kotlin 노트북을 가지세요!

 

원문

 

https://blog.jetbrains.com/kotlin/2023/07/introducing-kotlin-notebook/

반응형

댓글