본문 바로가기

OOP, FP/스칼라로 만드는 테트리스

06. [스칼라 테트리스] 02. 프로젝트 생성

SBT

스칼라 프로젝트를 만들고 빌드하기 위해서는 SBT(Simple Build Tool)라는 툴이 필요하다.

SBT는 최신 빌드 도구 중 하나로, 스칼라로 작성되어 사용하기 편한 기능을 제공하는 범용 빌드 도구이다.

나머지 자세한 설명은 위의 링크를 클릭하여 읽어보길 바란다.


SBT를 설치한 뒤, 환경변수를 등록해야 한다.

윈도우 기준으로 윈도우 키 + r를 누르면 실행 창이 나타나는데, sysdm.cpl 을 입력해보자.


그럼 시스템 속성을 설정할 수 있는 창이 나타난다.

고급탭에서 환경 변수(N)... 버튼을 클릭하면 환경 변수를 등록할 수 있는 창이 나타난다.

시스템 변수에서 Path로 등록되어 있는 변수를 찾아서 편집을 클릭하자.

환경 변수 편집창에서 "SBT 설치 경로\bin"을 등록하면 커맨드라인 창에서 sbt를 실행 할 수 있게 된다.


이클립스

스칼라의 IDE로는 Intellij, Scala IDE for Eclipse두 가지가 대표적이다.

인텔리제이는 유료이므로 Scala IDE for Eclipse를 설치한다.


프로젝트 생성

프로젝트를 만드는 방법은 두 가지가 있다.

1. 커맨드라인창에서 sbt new scala/scala-seed.g8 로 생성

2. 이클립스 new 스칼라 프로젝트 생성


두번 째 방법이 간단하므로, 이클립스로 스칼라 프로젝트를 생성하는 방법을 살펴보자.



키보드 Ctrl + n을 누르면 새로만들기 창이 나타난다.

Scala Project를 선택한 뒤 [Next >]를 클릭하여 정보를 모두 입력하고 [Finish] 버튼을 누르면 프로젝트가 생성된다.



프로젝트가 생성되면 위와 같은 폴더 구조가 생성된다.

우리는 SBT를 빌드 도구로 사용하기 위해 build.sbt를 작성하고, 테스트 코드를 구분하기 위해 test폴더를 클래스패스로 등록해야한다.


build.sbt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
libraryDependencies ++= {
  Seq(
    "org.scala-lang" % "scala-compiler" % "2.8.1",
    "org.scala-lang" % "scala-swing" % "2.11+",
    "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"
  )
}
 
organization := "net.tetris"
scalaVersion := "2.11.7"
scalaSource in Compile := baseDirectory.value / "src"
scalaSource in Test := baseDirectory.value / "test"
 
lazy val root = (project in file(".")).
  settings(
    name := "Tetris"
  )
 
cs


프로젝트 최상위 경로에 build.sbt란 파일을 만들어 위의 정보를 입력하자.

스윙, 컴파일러와 테스트 라이브러리를 등록하고 각종 프로젝트 정보를 입력한 코드이다.


test 폴더

프로젝트 최상위 경로에 test란 폴더를 생성한다.


위와 같은 구조가 될 텐데, 우리는 여기서 test를 클래스패스로 등록해야 한다.

[프로젝트 우클릭] -> [Properties] -> [Java Build Path] 로 이동하자.



Java Build Path 메뉴에서 [Add Folder....] 버튼을 클릭한 뒤, 위에서 생성한 test폴더를 체크하여 OK를 누르자.

그럼 test폴더가 클래스패스로 등록된다



최종적으로, 프로젝트는 위와 같은 구조를 이루게 된다.

이전에 test폴더는 일반 폴더와 같은 아이콘이였지만, 클래스패스로 등록하니 스칼라 코드가 들어가는 src 폴더와 같은 아이콘을 갖게 되었다.

자 이제 사전 준비를 모두 끝냈으니, 빌드를 실행해보자.


프로젝트 컴파일 / 빌드

커맨드라인 창을 실행하여 위에서 생성한 프로젝트의 경로로 이동한다.

해당 프로젝트 최상위 경로에서 sbt compile 명령어를 실행한다.

컴파일이 실행되고 해당 프로젝트 경로에 proejct와 target이란 폴더가 생긴다.

혹시 이클립스에서 폴더가 보이지 않는다면, F5키를 눌러 새로고침을 하면 보일 것이다.

이제 이클립스에서 외부 라이브러리를 불러오고 빌드하기 위한 파일을 하나 작성해야한다.

project 폴더 밑에 plugins.sbt라는 파일을 작성하자.


plugins.sbt

1
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.2.2")
cs

다시 커맨드라인으로 돌아가, sbt eclipse 명령어를 실행한다.


명령이 성공적으로 수행되면 위와 같이 외부 라이브러리를 참조하는 폴더가 생긴다.

이제 이클립스에서 sbt를 이용해 스칼라 프로젝트를 빌드하고 실행항 준비가 완료되었다.


swing 라이브러리를 올바르게 가져왔는지 테스트해보자.

src 폴더에 SwingTest라는 object를 만든 뒤, 아래와 같은 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
 
import scala.swing._
 
object SwingTest extends SimpleSwingApplication {
  def top = new MainFrame {
    
    title = "스윙 테스트"
    
    contents = new Button("테스트")
  }
}
cs

해당 scala 파일에서 Shift + Alt + S 단축키나 Ctrl + F11 단축키를 누르면 스윙 어플리케이션이 실행된다.