03. Akka Introduction - Getting Started :: 2015/11/10 21:24

Getting Started

1) Prerequisites


Akka 컴퓨터에 Java 8 이상 버전이 설치되어 있어야 한다.

Typesafe(www.typesafe.com) Akka 상용버전을 제공한다. 그리고 Java 8 업데이트 없는 프로젝트를 위해서 Java 6 이용할 있도록 Reactive Platform 일부로써 Scala Play 같은 관련된 프로젝트를 지원한다. 또한 상용 버전에서는 다양한 기능들과 라이브러리들을 제공한다.


2) Getting Started Guides and Template Projects


Akka 배울 있는 가장 좋은 방법은 Typesafe Activator(www.typesafe.com/platform/getstarted) 다운로드 받아서 Akka Template Project 중에 하나를 테스트해 보는 것이다.


3) Download


Akka 다운로드 받을 있는 방법은 여러 가지가 있다. Typesafe Platform 일부분으로 Akka 다운로드 받을 있다. (위에서 언급된 방법이다.) 모든 모듈이 포함되어 있는 전체 배포 버전을 다운로드 받을 수도 있다. Maven이나 SBT(Simple Build Tool) 같은 빌드 툴을 사용하여 Akka Maven Repository로부터 의존성 있는 모듈들을 다운로드 받을 수도 있다.


4) Modules


Akka 굉장히 모듈화가 되어 있다. 서로 다른 기능들을 포함하고 있는 여러 개의 JAR 구성되어 있다.

  • Akka-actor : Classic Actors, Typed Actors, IO Actor etc.
  • Akka-agent : Agents, Scala STM
  • Akka-camel : Apache Camel integration
  • Akka-cluster : Cluster membership management, elastic routers
  • Akka-osgi : OSGi container에서 Akka 사용하는 utilities
  • Akka-osgi-aries : Aries blueprint for provisioning actor systems
  • Akka-remote : Remote Actors
  • Akka-slf4j : SLF4J Logger (event bus listener)
  • Akka-testkit : Toolkit for testing Actor systems

게다가 이렇게 stable module들이 여러 개가 있기 때문에, 각자의 방식으로는 stable core이지만 여전히 "experimental" 마킹되어 있다. 그것은 의도한대로 기능을 수행하지만, API code freezing할만큼 충분히 굳건하지 않다는 것을 의미한다. Mailing list 이러한 모듈들에 대한 피드백을 제공함으로 도움을 있다.

  • Akka-contrib : core module 옮겨질 수도 있는 공헌에 대한 모음. 자세한 내용은 External Contributions(9) 참고하라.

실제 JAR 파일 명은 예를 들면 다음과 같다.

akka-actor_2.11-2.4.0.jar (다른 모듈들도 유사하다.)


5) Using a release distribution


http://akka.io/downloads 에서 필요한 버전을 다운로드 받고, 압축해제 하면 된다.


6) Using a snapshot version


Akka 밤마다 하는 snapshot http://repo.akka.io/snapshots/ 있고, SNAPSHOT timestamp 버전이 매겨져 있다. Timestamp 버전을 선택하여 작업을 하고, 언제 새로운 버전으로 업데이트하는지를 결정할 있다.


Warning : 매일 밤마다 배포되거나 milestone release(전환점이 되는 배포) Akka SNAPSHOT 사용하는 것은  무엇을 하고 있는지를 알지 못하면 나중에 어려움에 처할 있다.


7) Using a build tool


Akka Maven repositories 지원하는 build tool들을 사용할 있다.


8) Maven Repositories


Akka version 2.1-M2 이후 버전 : https://repo1.maven.org/maven2/

이전 Akka version : http://repo.akka.io/releases/


9) Using Akka with Maven


Maven 이용하여 Akka 가장 간단하게 시작하는 방법은 Akka Main in Java라고 이름 붙여진 Typesafe Activator Tutorial check out하는 것이다.

(http://www.typesafe.com/activator/template/akka-sample-main-java)

Akka Maven Central 배포되어 있기 때문에 (2.1-M2 이후 버전) POM Akka dependencies 추가하는 것으로 충분하다. 예를 들어 akka-actor 대한 의존성은 다음과 같다.


<dependency>

<groupId>com.typesafe.akka</groupId>

<artifactId>akka-actor_2.11</artifactId>

<version>2.4.0</version>

</dependency>


Snapshot 버전에 대해서는 다음과 같은 repository 추가가 필요하다.


<repositories>

<repository>

<id>akka-snapshots</id>

<snapshots>

<enabled>true</enabled>

</snapshots>

<url>http://repo.akka.io/snapshots/</url>

</repository>

</repositories>


Note : Snapshot 버전에는 SNAPSHOT timestamp 버전이 포함되어 배포되어 있다.


10) Using Akka with SBT


SBT 사용하여 Akka 시작하는 가장 간단한 방법은 Akka/SBT Template 프로젝트를 check out하는 것이다.

SBT에서 Akka 사용하는 기본적인 부분을 요약하면 다음과 같다.

https://github.com/harrah/xsbt/wiki/Setup 지시대로 SBT 설치한다.

build.sbt file 다음과 같이 수정한다.


name := "My Project"

version := "1.0"

scalaVersion := "2.11.7"

libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.4.0"


Note : 위에 언급된 libraryDependencies SBT v0.12.x 이후에 특화된 부분이다. 이전 SBT 버전을 사용한다면 libraryDependencies 다음과 같다.


libraryDependencies += "com.typesafe.akka" % "akka-actor_2.11" % "2.4.0"


Snapshot 버전을 위해서는 다음 항목이 추가되어야 한다.


resolvers += "Akka Snapshot Repository" at "http://repo.akka.io/snapshots/"


11) Using Akka with Gradle


최소한 Gradle 1.4 이상 버전이 필요하다. Scala Plugin 사용하려면 다음과 같이 설정한다.


apply plugin: ’scala’

repositories {

mavenCentral()

}

dependencies {

compile ’org.scala-lang:scala-library:2.11.7’

}

tasks.withType(ScalaCompile) {

scalaCompileOptions.useAnt = false

}

dependencies {

compile group: ’com.typesafe.akka’, name: ’akka-actor_2.11’, version: ’2.4.0’

compile group: ’org.scala-lang’, name: ’scala-library’, version: ’2.11.7’

}

Snapshot 버전을 위해서는 다음 Repository 추가한다.

repositories {

mavenCentral()

maven {

url "http://repo.akka.io/snapshots/"

}

}


12) Using Akka with Eclipse


SBT 프로젝트를 만들고 Eclipse 프로젝트 생성을 위해서 sbteclipse(https://github.com/typesafehub/sbteclipse) 사용한다.


13) Using Akka with IntelliJ IDEA


SBT 프로젝트를 만들고 IntelliJ IDEA 프로젝트 생성을 위해서 sbt-idea(https://github.com/mpeltonen/sbt-idea) 사용한다.


14) Using Akka with NetBeans


SBT 프로젝트를 만들고 NetBeans 프로젝트 생성을 위해서 nbsbt(https://github.com/dcaoyuan/nbsbt) 사용한다.

IDE에서 일반적인 scala 지원을 위해서 nbscala(https://github.com/dcaoyuan/nbscala) 사용할 수도 있다.


15) -optimize Scala compiler flag 사용하지 말라


Warning : Akka -optimize Scala compiler flag 컴파일하거나 테스트하면 된다. 이상 동작하는 경우가 있음이 리포트 되었다.


16) Build from sources


Akka Git 사용하여 Github 호스팅되어 있다.

다음 repository에서 clone 있다. https://github.com/akka/akka

Building Akka(10)에서 계속해서 관련 내용이 정리되어 있다.


17) Need Help?


질문이 있다면, Akka Mailing List에서 도움을 얻을 있다. https://groups.google.com/forum/#!forum/akka-user

상용 버전 지원에 대해서도 질문할 있다. https://www.typesafe.com/

Akka community 참여하는 것에 대해서 감사를 드린다.

2015/11/10 21:24 2015/11/10 21:24
Trackback Address :: http://www.yongbi.net/trackback/739
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret
< PREV |  1  |  ...  64  |  65  |  66  |  67  |  68  |  69  |  70  |  71  |  72  |  ...  566  |  NEXT >