# KSB 프레임워크 SW 개발환경 구성
KSB 프레임워크를 이용한 신규 컴퍼넌트의 개발과 scala clientSDK를 이용한 워크플로우 실행 시나리오 작성 및 실행을 요청하기 위한 개발환경 구성방법을 설명합니다.
KSB 프레임워크 SW 개발을 위한 환경을 구성하기 위한 절차는 다음과 같습니다.
- KSB 프레임워크 실행 및 테스트 환경구성 ( 툴박스 설치 참조 )
- Scala IDE 설치
- Java8 sdk 설치
- Maven 빌드도구 설치
- ksb-oss_dist(KSB ClientSDK 포함) 설치
- Eclipse 프로젝트 Import
- Maven을 이용한 ksb-oss_dist(KSB Client SDK 포함) 프로젝트 빌드
## KSB 프레임워크 실행(테스트) 환경구성
[KSB 툴박스 설치][c87a2fc0] 에서 제시하는 절차에 따라 KSB 프레임워크 실행(테스트) 환경을 구성합니다.
[c87a2fc0]: https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/1.2.HowToInstallKsbToolBox-1903.md "KSB 툴박스 설치"
## Scala IDE (개발도구) 설치
운영체제 (Ubuntu 또는 Mac osx)에 따라서 아래의 방법에 따라 Scala IDE를 설치합니다. 운영체제가 아래의 두 가지에 해당하지 않는 경우에는
[Eclipse scala IDE 사이트][8580869d] 에 접속하여 직접 Eclipse scala IDE 를 다운로드합니다. 이때 Scala의 버전이 2.12로 구성된 버전을 다운로드 하면 됩니다.
적당한 곳에 압축을 풀면 Eclipse 실행파일이 해제되어 나타나는데 이 파일을 실행하면 Eclipse SDK가 실행됩니다.
이 파일을 적당한 위치에 옮겨둡니다.(optional)
[8580869d]: http://scala-ide.org/ "scala IDE"
### Ubuntu 예제:
```sh
# Scala IDE 다운로드
wget http://downloads.typesafe.com/scalaide-pack/4.7.0-vfinal-oxygen-212-20170929/scala-SDK-4.7.0-vfinal-2.12-linux.gtk.x86_64.tar.gz
# 압축해제
unzip scala-SDK-4.7.0-vfinal-2.12-linux.gtk.x86_64.tar.gz
# 적당한 위치에 옮겨둡니다.
cd scala-SDK-4.7.0-vfinal-2.12-linux.gtk.x86_64
```
### Mac Osx 예제:
```sh
# Scala IDE 다운로드
wget http://downloads.typesafe.com/scalaide-pack/4.7.0-vfinal-oxygen-212-20170929/scala-SDK-4.7.0-vfinal-2.12-macosx.cocoa.x86_64.zip
# 압축해제
unzip scala-SDK-4.7.0-vfinal-2.12-macosx.cocoa.x86_64.zip
# 적당한 위치에 이동. Mac의 경우 Application 폴더에 넣어 줍니다.
cd scala-SDK-4.7.0-vfinal-2.12-macosx.cocoa.x86_64
mv ./eclipse.app /Applications/ # Mac의 경우 왼쪽처럼 Applications 폴더에 넣어두면 편리합니다.
```
설치가 완료된 후, 커맨드라인 상에 아래의 명령을 입력하여 현재 설치된 Scala 버전을 확인합니다.
```sh
$ scala -vsersion
Scala code runner version 2.12.2 -- Copyright 2002-2017, LAMP/EPFL and Lightbend, Inc.
```
## Java8 sdk 설치
[Oracle Java SDK 배포 사이트][753654a8] 에 접속하여 Java sdk를 다운로드하여 실행하면 설치가 완료됩니다.
아래 명령을 입력하여 설치가 잘 설치되었는지 확인합니다.
[753654a8]: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html "Oracle Java SDK 배포 사이트"
```sh
$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
```
## Maven 빌드도구 설치
### Ubuntu 예제:
Host PC의 터미널에서 아래의 명령으로 maven 3.3.9를 설치합니다.
```sh
$ sudo wget --no-verbose -O /tmp/apache-maven-3.3.9.tar.gz http://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
echo "516923b3955b6035ba6b0a5b031fbd8b /tmp/apache-maven-3.3.9.tar.gz" | md5sum -c
$ sudo tar xzf /tmp/apache-maven-3.3.9.tar.gz -C /opt/
$ sudo ln -s /opt/apache-maven-3.3.9 /opt/maven
$ sudo ln -s /opt/maven/bin/mvn /usr/local/bin
$ sudo rm -f /tmp/apache-maven-3.3.9.tar.gz
$ sudo apt-get clean
```
maven 버전을 확인합니다.
```sh
$ csle@csle1:~$ mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T01:41:47+09:00)
Maven home: /opt/apache-maven-3.3.9
Java version: 1.8.0_161, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: ko_KR, platform encoding: UTF-8
OS name: "linux", version: "4.13.0-26-generic", arch: "amd64", family: "unix"
```
### Mac Osx 예제:
보다 편리한 설치를 위해서 아래의 방법으로 Home brew를 설치합니다(optional).
Mac의 경우 설치 툴이 brew를 설치하면 편리하게 패키지를 설치할 수 있습니다. ( 추가적인 자세한 설치 방법은 [설치방법 참고][13f64dda] )
```sh
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
Home brew를 설치하고 나면 brew 명령을 이용해서 최신의 Maven을 쉽게 설치할 수 있습니다..
```sh
$ brew intall maven
```
[13f64dda]: https://brew.sh/index_ko.html "Home brew 설치"
## KSB 인공지능 프레임워크 오픈소스 설치
[다운로드][3c996289] 에 로그인하여 KSB 인공지능 프레임워크 오픈소스인 ksb-oss_dist (실행 바이너리 포함)를 다운로드 합니다.
- ksb_oss_v1_0.tar.gz : KSB 인공지능 프레임워크 오픈소스 압축파일
[3c996289]: https://csleoss.etri.re.kr/kor/sub02_01.do "KSB 프레임워크 다운로드 페이지"
다운로드한 파일을 압축해제하면 ksb-oss_dist 디렉토리가 생성되며, 다음과 같이 출력되는 것을 확인합니다.
```sh
$ tar -zxvf ksb_oss_v1_0.tar.gz
$ cd ksb-oss_dist
$ ls -al
3rd_Party_Libraries.txt
3rd_Party_Library_Licenses.txt
LICENSE.txt
Notice.txt
component-pipe
libs
components
pom.xml
InsightSwitch
conf
project
didentification
pyML
examples
scalastyle-output.xml
bin
jars
src
codeInspection-ruleSets
ksb-core
component-custom
ksb-knowledge
```
## Eclipse 프로젝트 Import
다운로드 받은 ksb-oss_dist를 임포트하여 이클립스 프로젝트 환경을 구성하는 것을 설명합니다.
### 프로젝트 임포트
* Package explorer 창에서 오른쪽 클릭> Import 단축메뉴을 선택하여 디렉토리 탐색버튼을 통해 ksb-oss_dist 프로젝트 디렉토리를 선택한 후 pom.xml 이 있는지 확인하고 임포트를 실행하여 아래의 그림과 같이 프로젝트가 생성되는 것이 확인합니다.
* ksb-core-digest_2.11 프로젝트는 다음 과정을 따라 별도로 임포트 합니다.
- (Optional) Package explorer> 아랫방향 화살표 클릭> Top Level Element> Working Set 선택 ( *최상위에 ksb-parent 가 표시됨* )
- ksb-parent 오른쪽 클릭> Import 선택> Import> General> Existing Projects into Workspace> Next> ksb-core 프로젝트 경로 선택> Finish
### 스칼라 (Scala) 버전 동기화
Maven 빌드에서 사용하는 Scala 버전은 2.11 이므로 이클립스 프로젝트 상에서도 2.11 라이브러리가 사용되도록 동기화 합니다.
각 프로젝트 구조로 들어가면 그림과 같이 Scala 라이브러리 2.12.3이 기본 라이브러리로 설정되어 있습니다.(다운로드한 이클립스 ScalaIDE 버전에 따라 상이할 수 있음.)
* Scala Library container 오른쪽 클릭> Properties> 2.11 또는 2.11.11 선택> Apply and Close
이 것으로 이클립스 개발환경 구성은 완료되었습니다. 수고 많으셨습니다.