Artificial Intelligence


TensorFlow Android Demo


Chapter 1. 바젤(Bazel) 알아보기



빌드하기 위한 첫 번째 관문, 구글의 새로운 빌드 도구 바젤의 로고





1. 바젤은 무엇이며 왜 설치해야 하는가


텐서플로우 안드로이드 데모(이하 데모)를 개발하기 전에 가장 먼저 알고 넘어가야 하는 프로그램이 있는데,


바로 구글에서 개발한 바젤(Bazel) 이란 녀석입니다


바젤 공식 홈페이지에서 설명하기를, 바젤은 어떤 사이즈의 소프트웨어든 빠르고 안정적이게 빌드하는 빌드 도구입니다


이러한 빌드 도구는 대표적으로 안드로이드 스튜디오를 설치했을 때 기본형으로 나타나는 그래들(Gradle)이 있습니다


빌드 도구는 한 두가지가 아닌데, 그중에서도 이번 데모를 빌드하기 위해서는 특별하게 바젤이 필요합니다




이 점에 대해 저희 팀은 그래들과 같은 기존의 빌드 도구와 바젤의 차이에 대해 생각해 보았는데,


아마 바젤이 타 언어를 함께 활용하는 개발 환경에서 상당히 무거운 소스코드라도 


훌륭히 빌드해낼 수 있는 능력을 가지고 있기 때문이라고 생각했습니다


구글은 실제로 "코드 양이 아주 방대하거나 여러가지 언어를 컴파일해야 하는 프로젝트, 


다양한 플랫폼을 설치해야 하는 프로젝트 등에서 바젤이 유용하다"라고 이야기했습니다


텐서플로우의 경우 '여러가지 언어를 사용하며, 학습된 데이터 그래프가 상당히 무겁기 때문에' 바젤을 사용한다고 생각합니다




어찌되었든 텐서플로우 팀은 데모를 빌드하기 위한 방법으로 바젤을 활용하는 법 외에는 알려주지 않았으니, 


처음 텐서플로우로 어플을 빌드하려는 저희로써는 그저 따라가는 수 밖에 없었습니다







개발자라면 한 번쯤은 만나봐야 한다는 리눅스(Linux) 기반의 대표적 OS, 우분투(ubuntu)의 로고





2. 바젤을 설치하기 위한 환경에 대하여




가장 큰 문제는 바젤의 설치에 있습니다


바젤은 현재 Linux 와 Mac OS X 기반의 환경에서만 설치가 가능합니다


그러니 이제부터 바젤을 설치하기 위한 여정을 떠나셔야 합니다


만약 리눅스나 맥 기반의 머신을 가지고 있다면 문제도 아니겠지만, 여러분이 충실한 윈도우 사용자라면


오로지 텐서플로우 빌드를 한 번 스스로 해보기 위해서 파티션을 나누고 리눅스를 설치할 각오를 다지셔야 합니다




3. 바젤 설치 과정




그럼에도 바젤을 설치하기로 마음먹으셨다면 본격적으로 리눅스 기반을 만드셔야 합니다


대표적으로 윈도우 기반에서 우분투 OS를 설치한다고 했을 때, 최소 두 가지 방법이 있습니다


첫째, 현재의 윈도우 OS를 제거하거나, 남는 하드디스크의 파티션을 나누어 듀얼부트 형태로 우분투를 설치


둘째, 윈도우 내의 가상 머신을 이용해 우분투를 설치


저희 팀은 두 개의 머신에 각각의 방법으로 시도했으나, 아쉽게도 두 번째 방법을 실패하였습니다


그 과정에서 듀얼부트 형태로 우분투를 설치하는 것이 훨씬 안정적이고 빌드 속도 또한 빠르다고 생각했기에


첫 번째 듀얼부트 형태의 우분투 설치를 추천드립니다


자세한 우분투 듀얼부트 설치에 관해서는 관련 게시물을 보시기 바랍니다




우분투 환경이 구축된 후, 바젤을 설치하기 위해서는


가장 먼저 오라클 JDK를 설치해야만 합니다


이를 위해서는 우분투의 터미널을 실행시킨 다음,



$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer


위의 명령어를 차례로 입력해야 합니다


만약 시간이 지나 JDK의 버전이 변경되었다면, 


마지막 명령어의 oracle-java8-installer에서 적절한 java 버전으로 변경해야 할 것입니다


바젤의 공식 홈페이지에서는 ubuntu 15.10 버전에서는 Open JDK 환경만으로도 실행이 가능하나


ubuntu 14.04 LTS 버전에서는 Oracle JDK 환경을 만들어줘야 한다고 이야기합니다


저희는 ubuntu 16.04 LTS 버전에서 Oracle JDK를 설치 후 진행하였습니다




이제 바젤에 필요한 나머지 패키지들을 설치해야 합니다


$ sudo apt-get install pkg-config zip g++ zlib1g-dev unzip


위의 명령어를 터미널에 입력하여 패키지 설치를 완료합니다




마지막으로 바젤을 다운로드하고 설치하도록 합니다


https://github.com/bazelbuild/bazel/releases


우선 위의 깃허브 링크에 접속하여 아랫쪽에 다양하게 있는 바젤 설치파일 중에서


installer-linux가 적혀있는 파일을 다운로드합니다


$ chmod +x bazel-version-installer-os.sh
$ ./bazel-version-installer-os.sh --user


그 다음 위의 두 명령어를 차례로 입력하여 바젤을 설치하도록 합니다. 


$ export PATH="$PATH:$HOME/bin"


마지막으로 바젤의 패스를 추가해주기 위해 위의 명령어를 입력해 줍니다




이 과정이 모두 막힘없이 진행되었다면 성공적으로 바젤을 설치되었을 것입니다


현재 Mac OS X를 사용하고 계신 분의 경우에는


아래의 참고 링크의 바젤 공식 홈페이지에 나타난 설치법을 따라가시면 됩니다






참고 링크


바젤에 대해 설명한 블로터의 기사

http://www.bloter.net/archives/238481


텐서플로우에서 공식적으로 제안하는 바젤 설치법(ctrl + F로 bazel을 검색하자)

https://www.tensorflow.org/versions/master/get_started/os_setup.html#source


바젤 공식 홈페이지의 환경별 바젤 설치법

https://bazel.io/docs/install.html




'Projects > SnapLearn' 카테고리의 다른 글

Prologue : Tensorflow Android Demo Application  (0) 2016.08.25
Snap Learn 프로젝트 개요  (0) 2016.08.04

+ Recent posts