ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Jupyter 로 Go 프로그래밍 하기
    GO 2018. 5. 11. 06:53
    반응형

    Jupyter 로 Go 프로그래밍 하기

    지난 몇 년 간 Go (golang)라는 프로그래밍 언어가 인기를 얻고 있습니다. 나는 파이썬에 대한 열렬한 팬이었고 3 년 전엔 주로 취미 프로젝트에서 파이썬을 사용했습니다. 지금은 소규모 취미 프로젝트에서 대기업의 대규모 프로젝트에 이르기까지 생산성을 높일 수 있기 때문에 Python 대신 Go를 사용합니다.

    같은 기간 Python은 기계 학습과 데이터 과학이 중요해짐에 따라 인기가 높아지고 있습니다. 파이썬이 ML에서 선호되는 이유는 많이 있습니다. 그중 한 가지 이유는 Python이 대화식 코드 작성 및 평가를 위해 설계 되었기 때문입니다. 또 다른 중요한 이유는 Python에서 대화식 프로그래밍을 위한 주피터 노트 라는 훌륭한 도구가 있다는 것입니다.

    이전에 Python을 사용했던 많은 프로젝트에서 Go를 사용하게 되었지만 기계 학습 및 데이터 분석을 위해서는 여전히 Python을 사용해야 합니다. 대화 형 프로그래밍과 Jupyter Notebook의 기능은 여전히 매력적입니다. 나는 실제로 작동하는 Go Jupyter 환경을 찾고 기존의 golang Jupyter 커널을 점검했습니다. 하지만 세상에는 그러한 커널이 없었습니다. 일부 프로젝트는 해지되었습니다. 몇몇은 인기가 있지만 유형 안전, 코드 취소, 코드 완성, 검사 또는 텍스트가 아닌 내용 표시를 지원하지 않으므로 실제 사용에는 적합하지 않았습니다.

    그래서 Jupyter Notebook을 처음부터 대화식으로 실행하기위한 새로운 환경을 개발하기로 결정했습니다. 오늘은 내가 작성한 소프트웨어로 Python과 같이 대화식으로 작성하고 실행하는 새로운 방법을 소개합니다.

     

    브라우저에서 사용해 보기

    Binder 에서 Go + Jupyter 환경 실행

    바인더 (mybinder.org) 덕분에 바인더 에 임시 고정 컨테이너가있는 브라우저에서 Go + Jupyter 환경 (lgo)을 사용해 볼 수 있습니다. 위의 버튼에서 임시 Jupyter Notebook을 열고 대화 형 Go 프로그래밍을 즐겨보세요.

    GitHub의 프로젝트 홈페이지

    [yunabe / lgo lgo - Go (golang) Jupyter 노트북 커널과 대화 형 REPL github.com](https://github.com/yunabe/lgo)

    주요 특징

    • Python과 같이 대화식으로 Go (golang)를 작성하고 실행.
    • 주피터 노트북에 통합.
    • Full Go (golang) 언어 스펙 지원. 100 % gc (컴파일러 이동) 호환.
    • Jupyter Notebooks의 코드 완성 및 검사.
    • 이미지, HTML, JavaScript, SVG 등을 표시.
    • 콘솔에서 상호 작용하는 REPL 모드.
    • goroutines 및 채널이 완벽하게 지원.

    설치

    Go language Jupyter 환경을 컴퓨터에 설치하는 방법에는 두 가지가 있습니다.

    컴퓨터에서 Go + Jupyter 환경을 신속하게 사용하려면 먼저 Docker 버전을 사용해보십시오. Linux를 사용 중이고 Jupyter 환경을 컴퓨터의 Go 환경과 통합하려면 소스에서 설치하십시오. lgo의 코드 실행은 -buildmode=shared의 회귀로 인해 go1.10에서 느립니다. 버그가 go1.10에서 수정 될 때까지 go1.9로 lgo를 시도하십시오. 그것은 go1.9와 go1.8과 잘 작동합니다.

    Windows 및 Mac에서는 lgo가 Windows 및 Mac을 기본적으로 지원하지 않으므로 Docker 버전을 사용하십시오. Docker에서 실행되는 lgo에서 Windows / Mac의 노트를 편집 할 수 있습니다.

    용법

    평소처럼 Jupyter Notebook을 시작하기 위한 jupyter notebook 명령을 실행하십시오 . 새 노트를 만들 때 Go (lgo)메뉴에서 선택하십시오 . 일단 새로운 노트가 생성되면 Python과 같이 대화 형으로 Go를 작성하고 실행할 수 있습니다.

    lgo에서는 커서를 식별자로 이동하고 Shift-Tab를 눌러 변수, 함수 및 유형에 대한 문서를 표시 할 수 있습니다. Tab 을 눌러 코드를 완성 할 수 있습니다. 텍스트가 아닌 데이터를 표시하려면 _ctx를 사용하십시오. 이 예 와 같이 표시하십시오 .

    콘솔에서 REPL 환경으로 사용

    lgo를 콘솔의 REPL로 사용할 수 있습니다. lgo를 설치 한 후 jupyter console --kernel lgo 실행하십시오. 물론, 이 모드에서도 Tab 또는 Ctrl-I 를 눌러 코드 완성 기능을 사용할 수 있습니다.

     

    기존 프레임 워크와 비교

    다른 기존 golang Jupyter 커널과의 비교표가 있습니다. 자세한 내용 은 README.md 의 이 절 을 읽으십시오 .

     lgogopher notes
    Backend gc (go compiler) An unofficial interpreter
    Full Go Language Specs✔️ 
    100% gc compatible✔️ 
    Type Safety✔️ 
    PerformanceFastSlow
    Overhead500ms1ms
    Cancellation✔️ 
    Code completion✔️ 
    Code inspection✔️ 
    Display HTML and images✔️ 

    더 알아보기

    프로젝트 홈페이지를 방문하여 README.md의 지침을 읽으십시오. 또한 이러한 예제 노트북 에서 Go + Jupyter 환경으로 수행 할 수있는 작업을 배울 수 있습니다. 양방향 Go 프로그래밍을 즐기십시오!


    개인적인 공부 및 추후 다시 볼 수 있도록 하기 위해 개인 블로그에 번역 내용을 옮겨 놓았습니다.
    원문과 내용이 다를시 책임지지 않으며, 저작권 문제가 발생시 언제든 삭제 될 수 있습니다. 

    원문보기 : https://towardsdatascience.com/interactive-go-programming-with-jupyter-93fbf089aff1



    반응형
Designed by Tistory.