User Tools

Site Tools


lecture:clojure:설치

개발 환경의 설치

이 장에서는 Windows 7 에서 Clojure 개발 환경을 설치하는 방법에 대해 설명한다. 하지만 설명된 내용을 바탕으로 약간만 변용하면 Linux와 같은 다른 운영 체제에서의 설치도 용이할 것이다.

Clojure의 프로그래밍 환경을 구축하는 방법은 Emacs, CursiveClojure, LightTable등이 있다.전통적으로 Lisp 계열 언어(Common Lisp, Scheme, elisp, …)의 프로그래밍은 주로 Emacs 환경 아래에서 이루어져 왔기 때문에 Emacs가 Lisp 계열 언어의 프로그래밍을 가장 잘 지원한다. 그러나 Emacs에 익숙하지 않은 사람들은 Emacs의 기능을 새로이 익혀야 한다는 부담이 있다.

Emacs 와 Clojure에 모두 익숙하지 않는 사람은 개발환경으로 Emacs를 선택하는 것을 권하지 않는다. 이유는 첫째로 현재는 Emacs 말고도 Clojure를 위한 개발툴이 많이 발전되었다. 둘째는 Emacs가 학습비용이 크기 때문에 Clojure를 배우기 전에 미리 지치는 경우가 많았다. Emacs 와 Clojure가 둘다 익숙하지 않은 경우, 간단한 코딩은 LightTable을 규모가 있는 프로젝트는 CursiveClojure를 추천한다. CursiveClojure 관련 링크를 첨부한다. http://manmyung.github.io/posts/2015-03-17-post.html

Clojure 프로그래밍 환경을 구축하기 위해, 다음의 프로그램들을 설치할 것이다. 가능하면 모두 최신의 버전으로 설치하는 것이 좋다.

1. Java SE JDK
2. Emacs
3. git
4. clojure-mode
5. nREPL.el
6. wget
7. leiningen

Java SE JDK의 설치


Clojure는 Java를 기반으로 실행되는 언어이므로, 최신 버전인 Java SE 7 JDK(Java Development Kit)를 먼저 설치하도록 한다.

  1. http://www.oracle.com/technetwork/java/javase/downloads/index.html를 방문해 Java SE 7 JDK Windows 버전을 내려 받는다.
  2. 내려 받은 파일을 실행해, JDK 설치를 시작한다. 기본 설정 값대로 진행해 설치를 마친다.
  3. 환경 변수 PATH에 Java 실행 파일 경로를 추가한다.

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

C:\> java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b11)
Java HotSpot(TM) Client VM (build 23.3-b01, mixed mode, sharing)

Emacs의 설치


emacs는 매번 실행될 때마다, 환경 변수 HOME에 저장되어 있는 값을 먼저 읽어 들인다. 이 환경 변수에 저장되어 있는 폴더 경로에 .emacs 파일이 있으면, 그 파일을 읽어 들여 emacs 환경을 초기화하고, .emacs 파일이 없으면, 바로 그 아래 하위 폴더인 .emacs.d에 있는 init.el 파일을 읽어 들여 emacs 환경을 초기화 한다. 따라서 Emacs를 설치하기 이전에, 환경 변수 HOME을 미리 만들고, 그 값을 자신이 원하는 폴더 경로로 설정해 주는 것이 좋다.

참고로, 근래에는 ~/.emacs 파일보다는 ~/.emacs.d/init.el 파일을, emacs 설정 파일로 이용하는 추세로 변하고 있는데, ~/.emacs.d 폴더 아래에 emacs 관련 패키지들을 한데 모아 관리하기 편하기 때문이다.

[시작]-[제어판]-[시스템 및 보안]-[시스템]-[고급 시스템 설정]-[고급]-[환경변수]-[사용자 변수]-[새로 만들기] 선택 후, [변수 이름] 란에 HOME으로, [변수 값] 란에는 자신이 원하는 폴더 경로(예를 들면, C:\home\philos)를 입력한다.

http://ftp.gnu.org/pub/gnu/emacs/windows/를 방문한 후, 최신 버전의 emacs를 내려 받는다. 이 예제의 경우에는, emacs-24.2-bin-i386.zip를 내려 받았다.

내려 받은 파일을 실행해, 자신이 원하는 폴더에 emacs를 설치한다. 이때 단계 1에서 환경 변수 HOME을 미리 설정해 놓은 경우에는, 설치 과정에서 지정한 폴더 경로 바로 아래에 .emacs.d 폴더가 자동으로 생성되는 것을 볼 수 있다.

Git의 설치


Git(`깃'이라고 읽는다)은 프로그램 소스 관리 도구이다. 엄밀히 말하자면, 이 도구가 Clojure 프로그래밍 개발에 반드시 필요한 것은 아니지만, 프로그램 개발에 있어서 소스 버전 관리는 대단히 중요한 부분이고, 또한 요즘 대부분의 Clojure 라이브러리들이 git를 이용해 개발되고 있는 현실을 감안해 볼 때, 개발에 꼭 필요한 도구라 생각된다. 뒤에서 clojure-mode emacs 패키지와 nrepl.el 패키지를 내려 받을 떄, 이 도구를 이용할 것이댜.

http://git-scm.com를 방문해 Windows 버전 git 설치 파일을 내려 받은 후, 실행한다.

실행 도중에 Select Components 단계에서 Context Menu entires를 선택하도록 한다. 나머지는 기본 설정값을 그대로 따라 진행해 설치를 마친다.

clojure-mode 패키지의 설치


clojure-mode는 emacs용 패키지로, clojure 언어를 위한 일종의 emacs plugin 정도로 이해하면 된다.

Windows 탐색기를 연 후에, 앞에서 언급했던 .emacs.d 폴더를 클릭한 후, 오른쪽 마우스 버튼을 누르면, 팝업 메뉴가 나타난다. 이 메뉴 중에서 Git Bash Here를 선택하면 새로운 리눅스의 bash 쉘 입력창이 나타난다. 이때 다음과 같이 입력해, clojure-mode 패키지를 설치한다. 설치가 끝나면, .emac.d 폴더 아래에 clojure-mode 폴더가 새로 생성된 후 그 폴더 안에 clojure-mode 패키지가 설치된다.

.emacs.d> git clone https://github.com/technomancy/clojure-mode.git

현재까지의 .emacs.d 폴더 내부는 다음과 같은 모습이다.

.emacs.d> tree /a
C:.
\---clojure-mode

~/.emacs.d/init.el 파일에 clojure-mode와 관련되는 다음의 내용을 추가한다.

;; clojure-mode 설정
(add-to-list 'load-path "~/.emacs.d/clojure-mode")
(require 'clojure-mode)

nrepl.el 패키지의 설치


nrepl.el은 emacs와 JVM을 연동해 주는 역할을 담당한다.

Windows 탐색기를 연 후에, 앞에서 언급했던 .emacs.d 폴더를 클릭한 후, 오른쪽 마우스 버튼을 누르면, 팝업 메뉴가 나타난다. 이 메뉴 중에서 Git Bash Here를 선택하면 새로운 리눅스의 bash 쉘 입력창이 나타난다. 이때 다음과 같이 입력해, nrepl.el 패키지를 설치한다. 설치가 끝나면, .emac.d 폴더 아래에 nrepl.el 폴더가 새로 생성된 후 그 폴더 안에 nrepl.el 패키지가 설치된다.

.emacs.d> git clone https://github.com/kingtim/nrepl.el.git

현재까지의 .emacs.d 폴더 내부는 다음과 같은 모습이다.

C:\temp\temp2>tree /a
C:.
+---clojure-mode
\---nrepl.el
    \---test

~/.emacs.d/init.el 파일에 nrepl.el과 관련되는 다음의 내용을 추가한다.

;; nrepl.el 설정
(add-to-list 'load-path "~/.emacs.d/nrepl.el")
(require 'nrepl)

wget의 설치


leiningen이 라이브러리를 내려받을 때 wget 프로그램을 필요로 하므로, 이 프로그램을 미리 설치해 두어야 한다.

http://gnuwin32.sourceforge.net/packages/wget.htm을 미리 방문해, `Complete package, except sources Setup' 부분을 클릭하 후, 프로그램을 내려 받는다.

내려 받은 프로그램을 실행해, 자신이 원하는 폴더에 설치한다.

환경 변수 PATH에 wget.exe 파일이 위치한 폴더의 경로를 추가한다.

Leiningen의 설치


Leiningen(`라이닝겐'이라고 읽는다)은 Clojure 프로젝트 관리 도구이다.

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

C:\lang\lein\bin> wget --no-check-certificate https://raw.github.com/technomancy/leiningen/stable/bin/lein.bat

C:\lang\lein\bin> dir lein.bat
2013-03-27  오후 03:07             6,650 lein.bat

환경 변수 PATH에, lein.bat을 포함하고 있는 폴더의 경로(C:\lang\lein\bin) 를 추가한다.

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

아무 폴더에나 가서 도스창을 연 후, 다음과 같이 입력해 leiningen 본체를 설치한다.

> lein self-install

위 명령이 실행된 후에, LEIN_HOME에 지정한 폴더 아래에 self-installs 폴더가 생성되고 그 아래에 leiningen-2.1.1-standalone.jar(버전 번호는 다를 수 있음)가 설치된 것을 확인할 수 있다.

C:\lang\lein> tree /a /f
\---bin
    |   lein.bat
    |
    \---self-installs
            leiningen-2.1.1-standalone.jar

init.el 예제


다음은 본인의 ~/.emacs.d/init.el 파일 내용 중, Clojure 프로그래밍 환경 설정과 관련된다고 생각되는 부분만을 발췌한 것이다. 참고하기 바란다.

;; Hangul
(set-language-environment "Korean")
(prefer-coding-system 'utf-8)
(setq input-method-verbose-flag nil)

;; 폰트 설정
(set-face-font 'default "NanumGothicCoding-14")
(set-fontset-font "fontset-default" 'hangul  '("NanumGothicCoding" . "unicode-bmp"))

(setq inhibit-startup-message t)        ; Emacs 실행시 startup-message 보이지 않기
(setq initial-scratch-message nil)      ; *scratch* 버퍼 깨끗하게 시작하기
(setq column-number-mode t)             ; 컬럼 넘버도 보이게 하기

;; 괄호 하이라이팅 기능 설정
(setq show-paren-delay 0
      show-paren-style 'parenthesis)
(show-paren-mode t)

;; view-style
(global-font-lock-mode t)               ; syntax highlighting을 켜기
(setq indent-tabs-mode nil)             ; tab 문자 대신 space 문자로 공백을 채운다
(setq tab-width 2)

;; clojure 관련 설정
(add-to-list 'load-path "~/.emacs.d/clojure-mode")
(require 'clojure-mode)

(add-to-list 'load-path "~/.emacs.d/nrepl.el")
(require 'nrepl)

(add-hook 'nrepl-interaction-mode-hook 'nrepl-turn-on-eldoc-mode)
(setq nrepl-popup-stacktraces nil)
(add-to-list 'same-window-buffer-names "*nrepl*")
lecture/clojure/설치.txt · Last modified: 2019/02/04 14:26 (external edit)