lawfully.kr
한 미국 변호사의 서랍

clojure

목차


왜?

설치하기

맥에서 clojure 를 할 때 가장 쉬운 방법은 leiningen을 사용하는 것이다. 설치하는 방법은 (언제나와 마찬가지로) 그냥 공식 홈페이지에서 시키는 대로, 또는 MacPorts 이용 또는 homebrew를 이용하는 방법이 있다.

공식적으로 시키는 방법

lein script를 다운로드받아, 경로를 인식하는 디렉토리 (예를 들어 $PATH 에 포함된 디렉토리, 예를 들어 ~/bin)에 옮겨 놓고, 실행권한을 다음과 같이 준 다음

$ chmod a+x ~/bin/lein

실행한다. 자세한 점은 leiningen 페이지를 참고하라.

MacPorts 를 이용하는 방법

$ sudo port install leiningen

homebrew를 이용하는 방법

먼저 자바 다운로드하여 설치한 다음 (아니면 자바가 설치되어 있는지 다음 한 가지 방법으로 확인):

$ javac -version
$ java -version

그 다음에는 다음의 명령어로 설치 (첫번째는 빼도 됨):

$ brew install clojure
$ brew install leiningen

leiningen 사용법

REPL로 실행하려면,

$ lein repl

도움말을 보려면,

$ lein help

그리고, 새로운 프로젝트를 만들려면 (아래에서 new-project 대신 자기가 지정한 프로젝트명을 사용한다)

$ lein new new-project

그러면, 여기에 프로젝트 파일이 만들어 진다. 이 가운데 project.clj 는 환경설정 파일이다. resources 디렉토리에는 이미지 등의 파일을 넣는다. src 디렉토리에는 프로젝트명의 서브디렉토리가 있고 (위의 경우에는 new-project 디렉토리) 그 아래에 core.clj 라는 파일이 있다. 이 파일, 그리고 이 디렉토리가 주로 작업할 디렉토리이다. 여기에서 작업을 한다. 작업을 하면서,

$ lein repl
$ lein run
$ lein uberjar

등의 명령어를 사용할 수 있다. 순서대로, 맨 위 명령은 프로젝트에 대한 REPL을 할 수 있고, 그 다음 명령어는 프로젝트를 실행시킨다 (구체적으로는 core.clj 파일의 -main 함수를 실행시킨다). 마지막 명령어는 jar 파일을 컴파일한다. 이 파일은 target/uberjar 디렉토리에 생성되며, 파일명은 프로젝트명-버전-SNAPSHOT-standalone.jar 형식이 된다. 이 파일을 다른 사람에게 보낼 수도 있고, 실행하려면 다음과 같이 실행할 수 있다.

$ java -jar target/uberjar/new-project-0.1.0-SNAPSHOT-standalone.jar

마지막으로, REPL 에 대해서 조금만 맛보기로 설명하자면, 위에서처럼 새로운 프로젝트를 만들었을 때 core.clj 파일의 내용은 다음과 같다.

(ns new-project.core
  (:gen-class))

(defn -main
  "I don't do a whole lot ... yet."
  [& args]
  (println "Hello, World!"))

아주 간략히 설명하자면, 맨 위의 두 줄은 네임스페이스를 지정하는 것이고, 그 다음줄에서는 -main 함수를 규정한다. 여기서 두 번째 줄은 설명이고, 그 다음에는 인자이다. 맨 마지막 줄의 println 이 포함된 괄호가 이 함수가 하는 일이다. 예상대로, 헬로월드를 프린트하는 일이다. 여기에서 REPL을 실행시키면,

$ lein repl
$ new-project.core=>

이렇게 될 것이다.

new-project.core=> (-main)
Hello, World!
nil
new-project.core=> (+ 1 2)
3
new-project.core=> (* 1 2)
2
new-project.core=> (first [1 2])
1
new-project.core=> exit
Bye for now!