이번 시간에는 Scala, Play, SBT에 대해서 살펴보겠습니다.
- Scala
- 스칼라는 프로그래밍 언어입니다.스칼라는 “Scalable”과 “Language”의 합성어입니다. 스칼라의 특징으로는 빌드 시 자바 바이트 코드로 변환되어 JVM에서 동작합니다. JVM에서 작동하기 때문에 Java로 이루어진 많은 라이브러리를 스칼라에서 사용할 수 있습니다. 또한 함수형 패러다임과 객체지향 패러다임을 함께 제공하며, 타입 추론과 강력한 동시성, 패턴 매칭, 함수를 입급 객체로 다루는 특성을 갖습니다.
- 2001년 마틴 오더스키(Martin Odersky)에 의해 디자인 됐으며, 2004년 공개됐습니다. 처음에는 Java 플랫폼과 .Net 플랫폼을 지원했지만 2012년 .Net 플랫폼에 대한 지원은 중단됐습니다. 이후 Odersky는 Typesafe라는 회사를 설립하고, 스칼라에 대한 컨설팅 및 교육에 대한 일을 하고 있습니다. Activator UI가 Typesafe라는 회사에서 개발된 걸 보면 Odersky와 Typesafe는 스칼라 진영에서 중요한 일을 여전히 하고 있습니다.
- 스칼라로 가장 완벽하고 아름다운 프로그램인 “Hello World”를 만들려면 다음과 같이 코드를 작성하고, HelloWorld.scala 파일로 저장합니다. 스칼라 코드를 자바 바이트 코드로 변환하는 scalac를 터미널에서 사용해서 컴파일을 하고 scala로 HelloWorld를 실행하면 됩니다.
// HelloWorld.scala
object HelloWorld extends App {
println(“Hello, World!”)
}
- Play
- 플레이는 프레임워크입니다. https://www.playframework.com/ 에서 확인할 수 있습니다. 최신 버젼은 2.4.2 Damiya로 플레이 프레임워크 홈페이지에서 다운로드 받을 수도 있지만, Typesafe 홈페이지에서 다운로드 받을 수도 있습니다. 2.2 이하 버젼의 플레이 프레임워크는 play 라는 커맨드를 통해 사용해왔지만, 2.3 이상의 플레이 프레임워크는 activator 커맨드를 통해 플레이 프레임워크를 사용합니다.
- 2007년 자바 웹 어플리케이션을 쉽게 만들기 위해 개발 되었습니다. Zengularity 라는 회사의 내부 프로젝트로 시작됐으며 생산성, 웹아키텍쳐, 패키징에 대한 신선한 방식에 포커싱이 맞춰졌습니다. 2009년 Zengularity는 오픈 소스로 공개하기로 결정했으며, 많은 피드백을 받을 수 있었습니다.
- 플레이 프레임워크는 5가지 기능에 초점이 맞춰졌습니다. 비동기 프로그래밍, 타입 안전성, 자바와 스칼라 네이티브 지원, 강려크한 빌드 시스템, 데이터 저장소와 모델 통합. HTTP 프로그래밍 모델을 통해 비동기 방식의 프로그래밍 모델을 지원합니다. 이러한 전통적인 방식의 웹 어플리케이션 외에도 Comet, 롱폴링, 웹 소켓 등도 지원합니다.
- SBT
- SBT는 Scala Build Tool의 약자로 http://www.scala-sbt.org/ 에서 확인할 수 있습니다. SBT는 Typesafe에서 만든 스칼라 빌드 도구로, Activiator에 통합되어 있습니다. activator를 사용해 생성한 프로젝트는 ROOT의 project 하위의 build.properties에 보면 sbt.version에 빌드에 사용되는 SBT의 버젼을 확인할 수 있습니다.
- SBT는 스칼라로 작성되었고, 스칼라 빌드를 위한 편의 기능을 제공합니다. activator를 설치 했다면, activator 명령어를 사용해 작동하지만, sbt를 직접 설치 했다면 다음과 같이 프로젝트 ROOT에서 sbt를 명령어를 입력한 후 “run” 커맨드를 입력하면 컴파일 과정을 거친 후 코드가 실행됩니다.
- SBT는 build.sbt 파일에 빌드에 필요한 정보를 설정한 후 파일에 작성된 정보를 바탕으로 빌드 할 수 있습니다. activator를 사용해 생성된 프로젝트의 build.sbt는 다음과 같은 형태로 구성됩니다.
build.sbt 파일에는 프로젝트명, 스칼라 버젼, 스칼라 버젼, 라이브러리 의존성 등의 정보를 표시합니다. 자세한 정보는 다음 URL에서 확인할 수 있습니다.
http://www.scala-sbt.org/0.13/tutorial/Basic-Def.html - SBT는 Interactive한 스칼라 빌드툴입니다. compile, clean, batch, reload 그리고 ~ compile 명령어를 사용해서 다양한 활용이 가능합니다. “~ compile” 명령어를 사용하면 소스 코드 변경을 감지하고 SBT가 자동으로 컴파일을 하게 됩니다.
- SBT는 Scala Build Tool의 약자로 http://www.scala-sbt.org/ 에서 확인할 수 있습니다. SBT는 Typesafe에서 만든 스칼라 빌드 도구로, Activiator에 통합되어 있습니다. activator를 사용해 생성한 프로젝트는 ROOT의 project 하위의 build.properties에 보면 sbt.version에 빌드에 사용되는 SBT의 버젼을 확인할 수 있습니다.
Scala, Play, SBT에 대해서 살펴봤습니다. activator라는 통합툴이 Play, SBT와 관련된 많은 부분을 다루고 있습니다. SBT나 Play를 직접 사용하기 위해서는 모두 직접 설치해서 사용하게 됩니다. 스칼라와 플레이에 대해서 자세히 알기 전까진 activator를 사용하는게 좋을 것 같네요. activator가 스칼라의 아버지 마틴 오더스키의 Typesafe에서 만들어진 것 이다 보니 추후에는 스칼라 표준이 되지 않을까 싶습니다.
지금까지는 개발 환경에 대해서 가볍게 살펴봤으니 다음 시간 부터는 진짜 스칼라와 플레이에 대해서 살펴보도록 하겠습니다.