이 장에서는 Windows 10 (64비트 버전)에 클로저 개발 환경을 설치하는 예를 보여준다. 다른 OS의 경우에는 이 장의 내용을 참고해서 약간 변용하면 설치가 가능할 것이다.

1. Java JDK 설치

  1. 클로저는 JVM(Java Virtual Machine) 상에서 실행되는 언어이므로, 먼저 JDK(Java Development Kit)를 설치해야 한다. 클로저는 JDK 1.6.0 이상의 버전에서 돌아가지만, 특별한 요구 사항이 없다면 최신 버전의 JDK를 설치하도록 한다.

  2. http://www.oracle.com/technetwork/java/javase/downloads/index.html를 방문해 'Java SE 11 (LTS)'의 'Oracle JDK DOWNLOAD' 버튼을 클릭한 후, 자신의 OS에 맞는 최신 버전의 JDK을 내려 받는다. 여기에서는 Windows (64비트 버전) 상에서 JDK를 설치하는 예를 보이겠다. 따라서 Java SE Development Kit 11 중에서 Windows x64 버전의 jdk-11_windows-x64_bin.exe 파일을 다운로드 받는다.

    Caution
    JRE(Java Runtime Environment)가 아니라 JDK를 다운로드 받아야 한다.
  3. 내려 받은 파일을 실행해, JDK 설치를 시작한다. 기본 설정 값대로 진행해 설치를 마친다.

  4. Windows 'Path' 환경 변수 설정하기

    • 화면 좌측 최하단의 ['시작' 버튼 — 'Windows 시스템' — '제어판'] 을 선택한다.

    • ['시스템 및 보안' — '시스템' — '고급 시스템 설정' — '고급' — '환경변수' — '시스템 변수' — 'Path'] 항목을 클릭한다.

    • ['편집' — '새로 만들기'] 클릭 후, 입력 상자에 C:\Program Files\java\jdk-11\bin 를 입력 후, '확인' 버튼을 누른다.

  5. Java SDK 설치 확인

    • 화면 좌측 최하단의 ['시작' 버튼 — 'Windows 시스템' — '명령 프람프트'] 를 선택한다.

    • 명령창에서 다음과 같이 실행해 메시지가 출력되면, Java JDK 버전 설치에 성공한 것이다.

      C:\> java -version
      java version "11" 2018-09-25
      Java(TM) SE Runtime Environment 18.9 (build 11+28)
      Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11+28, mixed mode)
      
      C:\>

2. wget 설치

클로저 프로젝트 관리 도구인 Leiningen이 라이브러리를 내려받을 때 wget 프로그램을 필요로 하므로, 이 프로그램을 미리 설치해 두어야 한다.

  1. https://eternallybored.org/misc/wget을 방문해, 최신 버전을 다운로드 받는다. 여기에서는 64비트 버전인 wget-1.19.4-win64.zip 파일을 다운로드 받는 것으로 한다.

  2. 압축을 푼 후에, wget.exe 파일을 자신이 원하는 폴더로 복사한다. 여기에서는 C:\dev\bin\ 폴더에 복사하는 것으로 한다.

  3. 환경 변수 Pathwget.exe 파일이 위치한 폴더의 경로를 추가한다: (Windows 'Path' 환경 변수 설정하기 참고)

    • [시스템 변수]에서 [Path] 변수 선택 후, ['편집' — '새로 만들기'] 클릭 후, 입력 상자에 C:\dev\bin 경로를 추가한 후, '확인' 버튼을 클릭한다.

  4. wget 설치 확인

    • 화면 좌측 최하단의 ['시작' 버튼 — 'Windows 시스템' — '명령 프람프트'] 를 선택한다.

    • 명령창에서 다음과 같이 실행해 메시지가 출력되면, wget 설치에 성공한 것이다.

      C:\> wget
      wget: Missing URL
      Usage: wget [OPTION]... [URL]...
      
      Try `wget --help' for more options.
      
      C:\>

3. Leiningen 설치

Leiningen(라이닝언)은 클로저 프로젝트 관리를 위한 기본 도구이다.

  1. 다음과 같이 wget을 이용해 leiningen을 다운로드한다. 여기서는 leiningen을 C:\dev\bin\ 폴더 아래에 설치하는 것으로 한다.

    C:\> cd dev\bin
    
    C:\dev\bin> wget --no-check-certificate https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein.bat
  2. 환경 변수 LEIN_HOME 추가 (Windows 'Path' 환경 변수 설정하기 참고)

    환경 변수 LEIN_HOME을 새로 만들고, lein.bat을 포함하고 있는 폴더의 경로를 입력한다.

    • [시스템 변수 — 새로 만들기] 선택 후, [변수 이름] 란에 LEIN_HOME으로, [변수 값] 란에는 C:\dev\bin을 입력한다.

  3. 이후 같은 명령창에서 다음과 같이 입력해 leiningen 본체를 설치하려 하면, 다음과 같은 에러가 날 것이다.

    C:\dev\bin> lein self-install
    Downloading Leiningen now...
    "2"개의 인수가 있는 "DownloadFile"을(를) 호출하는 동안 예외가 발생했습니다.
    "요청이 중단되었습니다. SSL/TLS 보안 채널을  만들 수 없습니다."                                                                                         ......

    이 에러는 https://github.com/technomancy/leiningen/issues/2412에 이미 보고되어 있다. lein 다음 버전에는 이 문제가 해결될 것으로 보인다. 하지만 당장은 임시방편으로 위의 사이트에 나와 있는 대로, 다운 받은 lein.bat 파일의 내용 중 다음 라인을

    powershell -Command "& {param($a,$f) $client = New-Object System.Net.WebClient;  $client.Proxy.Credentials =[System.Net.CredentialCache]::DefaultNetworkCredentials; $client.DownloadFile($a, $f)}" ""%2"" ""%1""

    다음 라인으로 직접 대체해서 해결하도록 한다.

    powershell -Command "& {param($a,$f) $client = New-Object System.Net.WebClient; [Net.ServicePointManager]::SecurityProtocol = 'tls12' ; $client.Proxy.Credentials =[System.Net.CredentialCache]::DefaultNetworkCredentials; $client.DownloadFile($a, $f)}" ""%2"" ""%1""

    lein.bat 파일을 위와 같이 수정한 후, 다음 명령을 재실행해 leiningen 본체의 설치를 마친다.

    C:\dev\bin> lein self-install

    위 명령이 실행된 후에, LEIN_HOME에 지정되어 있는 폴더에 self-installs 폴더가 생성되고 그 아래에 leiningen-2.8.1-standalone.jar가 설치된 것을 확인할 수 있다.

    C:\dev\bin> tree /a /f
    |   lein.bat
    |   wget.exe
    |
    \---self-installs
        leiningen-2.8.1-standalone.jar
  4. Leiningen 설치 확인

    다음과 같이 실행해 메시지가 출력되면, Leiningen이 제대로 설지된 것이다.

    C:\> lein version
    Leiningen 2.8.1 on Java 11 Java HotSpot(TM) 64-Bit Server VM

4. 예제 프로젝트 만들기

여기서는 sample이라는 이름의 프로젝트를 만들 것이다. 이 프로젝트를 아래의 IDE 설치 절에서 읽어 들여 실행해 볼 것이다.

  1. 먼저 명령창에서 다음의 명령을 실행해 C:\dev\projects 폴더를 만들어 놓는다.

    C:\> cd dev
    
    C:\dev> mkdir projects
    
    C:\dev> cd projects
    
    C:\dev\projects>
  2. 다음을 실행해 sample이라는 이름의 프로젝트를 만든다. 그러면 sample 폴더 아래에 이 프로젝트에 기본적으로 필요한 여러 개의 폴더와 파일이 만들어질 것이다.

    C:\dev\projects> lein new sample
    Generating a project called sample based on the 'default' template.
    The default template is intended for library projects, not applications.
    To see other templates (app, plugin, etc), try `lein help new`.
    
    C:\dev\projects> cd sample
    
    C:\dev\projects\sample> dir
    
     C:\dev\projects\sample 디렉터리
    
    2018-10-10  오후 08:12    <DIR>          .
    2018-10-10  오후 08:12    <DIR>          ..
    2018-10-10  오후 08:12               110 .gitignore
    2018-10-10  오후 08:12               134 .hgignore
    2018-10-10  오후 08:12               790 CHANGELOG.md
    2018-10-10  오후 08:12    <DIR>          doc
    2018-10-10  오후 08:12            11,433 LICENSE
    2018-10-10  오후 08:12               272 project.clj
    2018-10-10  오후 08:12               246 README.md
    2018-10-10  오후 08:12    <DIR>          resources
    2018-10-10  오후 08:12    <DIR>          src
    2018-10-10  오후 08:12    <DIR>          test
                   6개 파일              12,985 바이트
                   6개 디렉터리  11,568,414,720 바이트 남음
  3. 만들어진 파일들 중에서 project.clj 파일을 편집기로 열어, 다음과 같이 수정한다.

    project.clj
    (defproject sample "0.1.0-SNAPSHOT"
      :dependencies [[org.clojure/clojure "1.10.0-RC1"]])
  4. 다음과 같이 실행해, 의존 라이브러리들을 미리 다운로드 받아 놓는다.

    C:\dev\projects\sample> lein deps
    Retrieving org/clojure/clojure/1.10.0-beta2/clojure-1.10.0-RC1.pom from central
    Retrieving org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176.pom from central
    Retrieving org/clojure/pom.contrib/0.2.2/pom.contrib-0.2.2.pom from central
    ......
    
    C:\dev\projects\sample>

5. IDE 설치

클로저 프로그래밍을 위한 IDE(Intergrated Development Environment)는 여러가지가 있다. 다음에는 설치와 사용이 수월한 것에서 어려운 순서대로 나열하였다. 자신에게 익숙하고 편리한 IDE를 골라 설치하도록 한다.