Scala 개발 환경 구축

Scala 개발 환경 구축


Scala

Programming Language!!! 

몇년 사이 이슈가 되고 있는 node.js와 scala 트렌드를 살펴보자.


node.js를 해봤을 때 생산성 하나는 기가 막히더라. 

java script를 배우면서 프로젝트를 진행하는데도 그냥 생각나는대로 치니까 돌아가는 느낌!

 아무래도 메모리 해제에 대해 신경쓸 필요가 없다. (GC), 

비동기 작업에 있어서도 async같은 모듈로 이쁘게 쉽게 간단하게 작성할 수 있다.

json도 당연히 지원하는것은 물론이다.

성능도 생각보다 그리 나쁘지 않다. (성능측정해보니 C에 비해 30%정도 느렸던걸로... 2년전에 해봐서 지금은 전보다 나아졌겠지... 아마도?)

단점이라면 타입 체킹과 불편한 디버깅(VS에서 지원해준 줄것이라고 하지만...)이다.


그래서 Scala를 한번 해보면 어떨까? 

대표적인 특징은 Object-oriented, Functional, statically typed, run on the JVM!

JVM에서 돌아가니 기본적으로 cross platform 문제도 없고, 기본적인 안정성은 확보된 상태다.

타입체크도 가능하고, 함수형언어의 특징을 잘살리면 비동기 처리를 통해 병렬성도 가져갈 수 있다.

이클립스에서 디버깅을 해보니 괜찮다. 





버젼 정보

JDK : 1.7.0_45

Scala IDE : For scala 2.11.1 (최신)

SBT : 0.13.5 (최신)

* Windows 7 64Bit OS에서 개발 및 테스트를 진행 한다.

리눅스나 맥을 사용 한다면 https://class.coursera.org/progfun-004/wiki/ToolsSetup 에서 자세한 설치방법을 볼 수 있다.



설치 및 환경변수 설정 

JDK : http://www.oracle.com/technetwork/java/javase/downloads

ScalaIDE  : http://scala-ide.org/download/sdk.html

SBT : http://www.scala-sbt.org/download.html

위의 3개를 다운 받고 설치 or 압축해제 한다.


환경변수는 JAVA_HOME에는 JDK 정보를, PATH에는 JDK와 SBT/bin을 추가 한다.



프로젝트 시작

1. 임의의 프로젝트 디렉토리를 생성한다. (D:\ScalaStart 로 가정)


2. build.sbt 파일 생성(단순 텍스트 파일)  - 1줄 간격을 유지

D:\ScalaStart\build.sbt

name := "ScalaStart "


version := "0.1.0"


scalaVersion := "2.11.1"



3. plugins.sbt 파일 생성

D:\ScalaStart\Project\plugins.sbt

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")


4. D:\ScalaStart 에서 cmd 창에서

D:\ScalaStart>sbt 

$>update

$>eclipse

이제 이클립스에서 import 할 수 있는 파일들이 생성 되었다.


 java.lang.OutOfMemoryError: PermGen space 오류 발생시 command 창에서 다음과 같이 perm size와 관련해서 환경변수를 셋팅 해준다. 

SET JAVA_OPTS=-Xmx512m -XX:PermSize=1024M -XX:MaxPermSize=4096M



5. Scala IDE를 실행시킨 후 Import - Existing Projects into Workspace를 하고 D:\ScalaStart 를 지정하면 프로젝트를 가져 온다.


6. helloworld.scala 파일을 추가 

object helloworld {


    def main(args: Array[String]): Unit = {

        println("Hello World!");

    }

}


7. Run As - Scala Application 을 하면 실행 된다.





Scala 참고 자료

[Book] Scala For the Impatient : 다른 언어를 다뤄본 경험이 있다면 추천!

[Link] (한) 기본 문법 요약 정리 : http://arisu1000.tistory.com/category/Program/Scala

[Link] Scala 공식 홈페이지에 나와있는 튜토리얼 : http://docs.scala-lang.org/tutorials/

[Link] (한) 트위터 : http://twitter.github.io/scala_school/ko/index.html

[Link] 간결한 문법 요약 : http://www.tutorialspoint.com/scala/index.htm

[Link] 패턴매칭 상세 슬라이드 : http://www.slideshare.net/czechscala/scala-essentials-pattern-matching-and-case-classes



다음에는... 

Scala + json4s : Json 사용하기

Scala + MS-SQL : JDBC를 이용해 MS-SQL 접근해보기

Scala + Redis : 이것도 한번...

위에 3개에 대한 소스는 https://github.com/FiaDot 


Play framework도 2.3.0 이 나와서 한번 보고 있다. 기회가 되면 이것도 한번...