목록clojure (19)
Dharma
클로져를 이용해서 웹 어플리케이션 간단한 것을 만들어 보고 싶은 욕망이 있을 것입니다. 만들어 보고 싶은 욕망은 의외로 간단하게 해결이 됩니다. 바로 컴포져(Compojure) 를 이용하면 쉽게 만들 수가 있습니다. 예전 포스트 를 보고 클로져 개발환경이 세팅되어 있다고 가정합니다. compojure 로 만들어진 예제를 다운 받습니다. $ cd ~/work (없으면 만들어 줍니다) $ git clone git://github.com/weavejester/compojure-example.git $ cd compojure-example $ lein deps $ lein ring server 이렇게 하고 좀 오랜 시간을 기다리면 Port 3000 번에 Jetty 를 이용한 어플리케이션 서버가 떠 있는 것을 확..
"리습은 그것을 마침내 손에 넣게 되었을 때 경험하게 되는 심오한 깨달음을 위해서라도 배울 가치가 있다. 리습을 이용할 일이 그렇게 많지 않다고 할지라도 그 경험은 그 자체만으로도 당신을 훨씬 훌륭한 프로그래머로 만들어 줄 것이다." - 에릭 레이먼드 (Eric Raymond) 제가 아는 선배가 송재경 (바람의 나라, 리지니 만드신 분) 씨와 인터뷰를 할 일이 있었는 데 그 분이 하신 말씀 중에 "프로그램은 어떠한 언어로 짜는 것이 중요한 것이 아니다. 가장 중요한 것은 전산적인 마인드를 소유하는 것이다" 라는 이야기를 들었다고 합니다. 상당히 많은 시간이 지났지만 이 이야기가 가지고 있는 의미는 아직까지도 도움이 됩니다. 저 또한 후학들을 만나면 이와 같은 이야기를 많이 합니다. 왜 리습을 공부해야 하..
lein 을 이용한 프로젝트 생성시 요즘 clojure 버젼이 1.4.0 이 기본인 것처럼 만들어 집니다. 아무 생각 없이 slime 을 연결해서 코딩을 시작하면 무엇인지 이상한 기분이 들기 시작합니다. 바로 doc 함수 입니다. doc 함수가 동작을 안합니다. "1.2.1" 버젼에서는 제대로 동작했는데 갑자기 동작안하기 시작합니다. 정확히는 "1.3.x" 와 "1.4.0" 에서 동작을 안합니다. REPL 상에서 user> (use 'clojure.repl) 만 해주면 그 다음부터 사용이 됩니다.
저번 포스트 에서 Clojure 와 Emacs 와 Slime 을 연동 시키는 방법을 했다면, 이제 실제 클로져 코드를 짜야 하는 일이 생길 것입니다. 그런데 전역으로 환경을 세팅하는 것이 아니기 때문에 다른 클로져 라이브러리를 포함 시키는 것이 어려울 것 같습니다. 특히 clojure-contrib 같은 거의 필수 라이브러리는 lein 으로 만들어준 프로젝트의 project.clj 를 열어줍니다. $ lein new test-project $ cd test-project $ emacs project.clj 다음 과 같이 [org.clojure/clojure-contrib "1.2.0"] 의 내용을 :dependencies 에 추가해 줍니다. 아래에 붙어 있는 congomongo 는 무시하세요. $ lei..
In console 'Terminal' $ sudo apt-get install clojure $ sudo apt-get install leiningen $ sudo apt-get install slime install clojure-mode $ cd ~/.emacs.d $ git clone git://github.com/technomancy/clojure-mode.git append to dot-emacs $ emacs ~/.emacs add followings below (add-to-list 'load-path "~/.emacs.d/clojure-mode/") (require 'clojure-mode) install swank-clojure $ lein plugin install swank-cloj..
Closure 라고 들어 보셨는지요. 최근에 차기 Java 버젼에 포함되기를 많은 사람이 희망하였다가 무산 되서 실망의 글로 자바 관련 게시판들이 도배가 됐다고 합니다. 자 그러면 대체 클로져 (Closure) 란 무엇인지 위키피디아의 내용을 보기로 하겠습니다. http://en.wikipedia.org/wiki/Closure_%28computer_science%29 어려운 내용들로 도배가 되어 있습니다. 쭈욱 살펴보자면 함수를 리턴하는 언어들에게서 흔히 찾아 볼 수 있는 개념이고요. Anonymous Function 하고 착각하면 안된다고 쓰여져 있습니다. 즉 'function value' 개념이라는 식으로 언급이 되어 있습니다. 가장 쉽게 설명하자면 '지역 변수' 가 코드가 쓰여질 때의 값으로 지정되..
저번 포스트 에서 Clojure 와 Slime 을 연결해봤습니다. 그런데 REPL 에서 색이 안 이쁘더군요. 간단하게 색을 집어넣는 방법을 설명하겠습니다. .emacs 파일을 열어서 맨 아래쪽에 다음 과 같은 내용을 추가해 줍니다. (add-hook 'slime-repl-mode-hook (defun clojure-mode-slime-font-lock () (let (font-lock-mode) (clojure-mode-font-lock-setup)))) 끝!!
드디어 올것이 오고 말았군요. clojure 를 emacs 에서 slime 과 연결시키는 방법에 관한 것입니다. 물론 제가 쓰고 있는 osx snow leopard 에서 말이죠. 기존에 제가 쓰고 있던 환경은 emacs 에 slime 을 clbuild 버젼으로 연결시켜서 쓰고 있었습니다. 나름 편해서 애용하고 있었는데 이번에 clojure 를 연결 시켜야 해서 살짝 골치가 아프군요. 참고로 clbuild 를 쓰게 되면 slime 관련 설정 부분입니다. (.emacs 에 있음) (setq load-path (cons "/Users/crazia/work/clbuild/source/slime" load-path)) (setq load-path (cons "/Users/crazia/work/clbuild/sou..
새로운 것을 좋아하는 후배가 책까지 사주면서 보라고 해서 결국 Clojure를 설치하기로 했습니다. Mac port 이용해서 Clojure 설치 하기 가장 쉬운 방법으로는 mac port 를 이용하는 방법이 있습니다. sudo port install clojure 하면 너무나 손쉽게 설치됩니다. 하나 이러한 방법을 쓰면 나중에 Emacs 나 Slime 과 연동 설치할 때 귀찮아 지기 때문에 수동 설치를 하려고 마음을 먹었습니다. Clojure 수동 설치 하기 참조 사이트: http://riddell.us/ClojureOnUbuntu.html 위에 링크한 사이트는 제가 여러모로 도움을 받는 사이트 입니다. 역시나 클로져도 우분투에 편하게 설치하는 방법이 잘 정리되어 있더군요. "그냥 사이트 보세요" 만큼 ..