Windows 에서 Clojure Web 개발 환경설정(leiningen, Compojure, Eclipse REPL)
일하다가 지루해져서(화장실에 책 들고 볼일보다가..) Clojure 책을 구경하고 있었습니다.(열심히 읽은게 아니라 말 그대로 구경) 생각해보니깐, 프로그래밍 언어를 익히는 데 가장 좋은 방법은 프로그램을 계속 만드는 것인데, 요새 제 일도 그렇고 해서 웹으로 만들어야겠다 하는 생각이 들더군요. Programming Clojure 책 후반부에 Compojure 라이브러리가 딱 1챕터 나옵니다. 그런데 버전이 올라가면서 조금씩 바뀌었나보군요. 환경설정하는데 한참 걸렸습니다. ~_~
-
참고자료
준비물은 eclipse 3.4 이상, J2SDK 1.6 이상입니다.
1. counterclockwise 설치하기
쉬워요. counterclockwise 홈페이지에서 플러그인을 이클립스에 복사해 넣으면 땡입니다. 설치하고 나면 이클립스에 클로져 지원이 생기죠.
이렇게 말이죠
2. leiningen 설치
leiningen은 클로져 프로젝트 도구입니다. 프로젝트를 생성하고, 의존성을 관리하고, 빌드 등을 지원하는 툴이죠.(아겔님 블로그 참조)
- 설치방법
- github의 leiningen 저장소에 보면 릴리즈된 leiningen 패키지를 찾을 수 있습니다.(요즘은 1.3.0이군요.) 다운로드 받아서 적당한 위치에 옮겨넣습니다.(전 d:\src\leiningen 에 넣었습니다.)
- 그리고 실행 스크립트인 lein.bat 파일을 leiningen의 readme 페이지에서 찾을 수 있습니다. installation 부분에 있어요. 그것도 leiningen.jar 디렉토리에 같이 넣어둡니다. 필요하시면 path를 걸어두시는 것도 좋죠.
- 나중에 보니깐 lein.bat나 lein.sh 만 있으면 self-install 명령으로 설치가 가능한거였더군요. -_-;; leiningen jar를 다운받지 않아도 그냥 “lein self-install” 명령으로 알아서 다운받네요. 흠흠
- 전 처음에 lein.sh만 있는 줄 알고 그거 보고 스크립트를 윈도우용으로 작성해야겠구나 싶어서 스크립트 코드를 한참동안 읽었더랬습니다. readme 파일도 읽어봐야겠다 생각이 들어서 읽다가 발견한 lein.bat.. 하.. 참. ~_~
3. leiningen만 있으면 사실 거의 다 된겁니다. 프로젝트를 생성하고 이클립스 연동을 해 보죠.
lein new hello-www
이렇게 하면 leiningen 디렉토리 하위에 hello-www 디렉토리와 프로젝트를 위한 스켈레톤이 생성됩니다. 이클립스에서 편하게 Compojure 개발을 하려면 몇가지 더 추가하여야 합니다. hello-www 디렉토리를 보면 project.clj 파일이 있습니다. 에디터 등으로 열어서 다음과 같이 바꿔줍니다.
1 2 3 4 5 6 7 | (defproject hello-www "0.0.1-SNAPSHOT"
:description "FIXME: write"
:dependencies [[org.clojure/clojure "1.2.0"]
[org.clojure/clojure-contrib "1.2.0"]
[compojure "0.4.0"]
[ring/ring-jetty-adapter "0.2.3"]
[lein-eclipse "1.0.0"]]) |
compojure 지원, jetty 지원, eclipse 지원을 추가한거죠.(아겔님 블로그 참조, lein-eclipse 홈페이지 참조) 그 다음에 해당 프로젝트 디렉토리에서 “lein deps” 명령을 사용합니다.
cd hello-www
..\lein.bat deps그러면 “Copying 15 files to D:\src\lein\hello-www\lib” 와 같이 파일 몇 개를 복사했다고 알려줍니다. 필요한 jar 등을 가져온거죠.(다운로드 받을 수도 있습니다. 복사할 파일이 없으면 말이죠. 그리고 빌드 한번 해봐야죠.
..\lein.bat install
빌드는 maven을 이용하는 것 같습니다. pom.xml을 생성하거든요.(아직 정확히는 모르겠다는.. -_-;;)
Created D:\src\lein\hello-www/hello-www-0.0.1-SNAPSHOT.jar Wrote pom.xml [INFO] Installing D:\src\lein\hello-www\hello-www-0.0.1-SNAPSHOT.jar to C:\Docum ents and Settings\LG\.m2\repository\hello-www\hello-www\0.0.1-SNAPSHOT\hello-www -0.0.1-SNAPSHOT.jar
이렇게 말이죠.
이번엔 이클립스 지원을 추가해야죠.
..\lein eclipse
.classpath 파일과 .project 파일이 생성됩니다. 그럼 이클립스에서 import 하면 되죠. import->Existing Projects into Workspace 선택한 후 생성된 프로젝트(d:\src\leiningen\hello-www)를 선택하면 됩니다.
4. 생성된 프로젝트에 클로져 지원을 추가해줍니다.(프로젝트 오른쪽 클릭 -> “enable/disable clojure language support”) 그러면 Run As 메뉴에 “New Clojure project’s JVM, with a REPL”이 추가되어 있어요. 이제 이클립스에서 REPL을 사용할 수 있게 됬습니다.
5. 한번 코드를 동작시켜봐야죠? src/hello-www/core.clj 파일을 다음과 같이 수정하시거나 REPL에 바로 작성하셔도 됩니다.
1 2 3 4 5 6 7 8 9 10 | (ns hello-www.core
(:use compojure.core
ring.adapter.jetty)
(:require [compojure.route :as route]))
(defroutes example
(GET "/" [] "<h1>Hello World Wide Web!</h1>")
(route/not-found "Page not found"))
(run-jetty example {:port 8080}) |
요러면 http://localhost:8080 에서 “Hello World Wide Web!” 라는 글자를 볼 수 있을 겁니다.
6. 클로져 코딩하며 놀기~~
저 스스로도 잊어버리지 않으려고 적어놨습니다만… 썩 간단하지가 않군요. -_-

