스칼라 코딩 입문 - 다양한 개발 방법 소개 (REPL, Script, SBT, Jupyter Notebook)
View: 299
0
0
작성자: 달빛제이크
카테고리: Scala Language
발행: 2024-05-17
수정
2024-06-21
안녕하세요. 달빛제이크 입니다.
오늘은 스칼라 언어로 코딩하는 방법들을 소개하려고 합니다.
스칼라 개발 환경은 구축했는데 어떤 방식으로 코딩을 해야 할지 갈피를 잡지 못했거나 본인의 과제에 적합한 방식으로 프로그래밍을 진행하고 싶으신 분들에게 도움이 될 수 있는 글입니다.
1. REPL (Read-Eval-Print Loop)
먼저 REPL에 대해서 소개합니다.
REPL은 Scala 전용 대화형 Shell 입니다.
대화형 Shell은 보통 Python과 같은 Interpreter 언어에서 제공하는 도구인데, Interpreter 언어의 특성 상 순차적으로 실행이 가능하기 때문에 대화하듯 활용할 수 있는 장점이 있습니다.
Scala의 REPL은 입력한 코드를 컴파일 하고 바로 실행해서 그 결과를 사용자에게 보여주기 때문에 Interpreter 언어의 대화형 Shell과 비교했을 때 거의 동일한 사용자 환경을 제공합니다.
REPL은 산술 계산부터 간단한 코드의 실행까지 가능하기 때문에 주로 업무의 보조 역할로 사용하거나 프로젝트 진행 시 간단한 코드의 테스트, API 탐색, 디버깅, 작은 스크립트 실행 등에 활용합니다.
2. Script
Script로 코딩을 하는 방식은 Scala 3가 Release 되고 Scala Community에서 Scala의 대중화에 관심을 갖게 되면서 언급되고 있는 프로그래밍 방법입니다.
머신러닝이나 통계 등에 Python을 이미 사용하고 계시는 분들은 이미 Script 작성에 익숙하실 것입니다.
굳이 객체 지향 프로그래밍을 하지 않아도 원하는 기능을 쉽게 구현할 수 있기 때문에 생활 코딩에 적합한 방식입니다.
Script는 scala-cli와 Ammonite를 통해 실행할 수 있으며, 간단한 업무용 프로그램을 작성하거나 제품의 Prototype을 개발하는 데 사용할 수 있습니다.
Script 파일의 확장자는 .sc이며, 간단히 에디터로 작성 후 Command line에서 실행할 수 있기 때문에 매우 간편한 프로그래밍 방식입니다.
3. SBT (Simple Build Tool)
sbt를 활용해서 프로젝트를 진행합니다.
sbt를 사용한다는 것은 본격적으로 프로젝트를 진행하는 것이고 소프트웨어 개발을 의미합니다.
IntelliJ IDEA나 VS Code와 같은 IDE 혹은 IDE 같은 에디터를 사용하더라도 sbt를 기반으로 프로젝트가 관리됩니다.
sbt는 giter8 (g8)을 지원하기 때문에 템플릿 기반으로 프로젝트를 생성할 수 있습니다.
giter8을 사용함으로 개발자는 프로젝트 유형 별로 그 틀 위에서 개발하기 때문에 표준화된 프로젝트 구조와 설정을 활용할 수 있어서 일관성을 유지할 수 있고 개발 생산성을 향상 시킬 수 있습니다.
대부분의 프로젝트가 sbt 기반으로 진행되고 있고 거의 모든 라이브러리들이 sbt를 사용하고 있기 때문에 Scala와 함께 sbt도 같이 공부하는 것을 추천 드립니다.
sbt의 핵심은 결국 build.sbt 설정이기 때문에 다양한 프로젝트에서 build.sbt 작성 방식을 참고하시면 많은 도움이 될 것 입니다.
4. Jupyter notebook
Jupyter notebook을 Scala에서도 사용할 수 있습니다.
notebook은 웹 환경에서 프로그램을 단계적으로 실행하며 결과를 바로 확인할 수 있는 장점이 있는데요.
Scala에서는 almond라는 Jupyter notebook을 위한 Kernel을 제공하고 있어서 Jupyter notebook을 설치하고 coursier를 통해 간단히 almond를 설치해 notebook을 사용할 수 있습니다.
Jupyter notebook 외에도 Apache Zeppelin이라는 Web-based notebook이 있는데 Spark를 활용하고 data 분석에 특화되어 있습니다.
notebook은 대화형 컴퓨팅 환경을 토대로 데이터 분석 및 시각화에 특화되어 있고 코드와 문서를 함께 작성할 수 있어서 협업 및 공유에 매우 유용한 도구 입니다.
지금까지 Scala로 코딩하는 몇 가지 방법을 소개해 드렸습니다.
Scala를 통해 프로그래밍에 처음 입문하신 분들 또는 중급 이하 개발자 분들은 Script를 통해 Scala를 다양하게 활용해 보시는 것도
Scala 언어에 친숙해지고 그 기능을 익히는 데 많은 도움이 될 것입니다.
본인의 개발 목적에 맞는 방법을 선택해서 다양하게 시도해 보시고 잘 만든 프로그래밍 언어인 스칼라를 많이 활용하시기를 기대합니다.
감사합니다.
