성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>Clojure 언어의 윈도우 개발환경 설정</h1> <p> 저는 그냥 언어차원에서의 이해를 목적으로 하는 것이기 때문에 전문적인 개발환경을 구성하기 보다는 단순히 JDK(또는 JRE)와 clojure만 설치했습니다. 그 과정을 잠시 설명드리면, JDK/JRE는 당연히 오라클 홈페이지에서 다운로드 받아 설치하면 되고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Java SE Downloads ; <a target='tab' href='http://www.oracle.com/technetwork/java/javase/downloads/index.html'>http://www.oracle.com/technetwork/java/javase/downloads/index.html</a> </pre> <br /> clojure는 아래의 링크에서 다운로드 받을 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Clojure ; <a target='tab' href='http://clojure.org/downloads'>http://clojure.org/downloads</a> </pre> <br /> 오늘자 기준으로 1.6.0이 최신 버전인데 링크를 타고 들어가 clojure-1.6.0.zip 파일만 다운로드하시면 됩니다. (사실, 그냥 REPL 실습이라면 clojure-1.6.0.jar 파일 하나만 다운로드 받아도 됩니다.)<br /> <br /> 그런 다음 cmd.exe 명령행 창을 하나 띄우고 java.exe가 실행되도록 환경변수 PATH를 잡아준 다음, REPL 콘솔 프로그램을 실행해 주면 끝입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > java -cp .\clojure-1.6.0.jar clojure.main </pre> <br /> 그럼, 곧바로 clojure를 실습할 수 있는 REPL 프롬프트가 보이고 사용자가 코드를 입력하길 기다립니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > d:\temp\clojure-1.6.0><span style='color: blue; font-weight: bold'>java -cp .\clojure-1.6.0.jar clojure.main</span> Clojure 1.6.0 user=> </pre> <br /> <hr style='width: 50%' /><br /> <br /> 제가 구매한 clojure 책인데, (사실, ^^; 선택의 폭이 적습니다.)<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 프로그래밍 클로저: Lisp ; <a target='tab' href='http://www.yes24.com/24/Goods/3907543?Acode=101'>http://www.yes24.com/24/Goods/3907543?Acode=101</a> </pre> <br /> 이를 실습하려면 clojure-contrib 라이브러리도 다운로드받아야 합니다. 아래의 링크에서,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > clojure-contrib ; <a target='tab' href='http://code.google.com/p/clojure-contrib/downloads/list'>http://code.google.com/p/clojure-contrib/downloads/list</a> </pre> <br /> 오늘자 기준으로 최신 버전이 1.1.0이고, 이를 다운로드 받아 압축을 해제하면 "clojure-contrib.jar" 파일이 있는데 이것만 있으면 됩니다. clojure REPL내에서 이를 사용하기 위해 java.exe 시작시 -cp 옵션에 clojure-contrib.jar 파일이 있는 경로를 포함해 주면 됩니다. (물론, 상대경로도 됩니다.)<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > java -cp .\clojure-1.6.0.jar<span style='color: blue; font-weight: bold'>;d:\temp\clojure-contrib.jar</span> clojure.main </pre> <br /> 그리곤 clojure-contrib.jar에서 제공하는 기능을 사용할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > D:\clojure-1.6.0>java -cp .\clojure-1.6.0.jar;d:\temp\clojure-contrib.jar clojure.main Clojure 1.6.0 user=> <span style='color: blue; font-weight: bold'>(require 'clojure.contrib.str-utils)</span> nil user=> </pre> <br /> 결과로 "nil"이 보이면 정상입니다. 만약 로드가 안되면 다음과 같은 식으로 오류가 발생합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > user=> (require 'clojure.contrib.str-utils) FileNotFoundException Could not locate clojure/contrib/str_utils__init.class or clojure/contrib/str_utils.clj on classpath: clojure.lang.RT.load (RT.java:443) </pre> <br /> 참고로 로드된 clojure 관련 모듈은 ClassLoader를 통해 확인할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > user=> (println (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader)))) (#<URL file:/D:/clojure-1.6.0/clojure-1.6.0.jar> #<URL file:/D:/temp/clojure-contrib.jar>) nil </pre> <br /> 컴파일된 JAR 뿐만 아니라 소스 코드 형태의 파일도 로드할 수 있습니다. 예를 들어, temp.clj라는 클로저 소스 코드를 만들어 두었다면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ; ..\sample\temp.clj (defn hello [name] (str "Hello, " name)) </pre> <br /> 그럼, clojure 내부에서 'load-file' 명령어를 이용해 로드할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > user=> (load-file "..\\sample\\temp.clj") #'user/hello </pre> <br /> load-file의 기준 경로는 clojure-1.6.0.jar 파일이 위치한 폴더입니다. 따라서 이번 글의 실습에서는 d:\sample\temp.clj 파일이 로드됩니다.<br /> <br /> 대개의 경우 이렇게 REPL 상에서 자주 사용되는 몇몇 명령어를 자동으로 실행해 두고 싶을 텐데요. 이럴 때는 java.exe 실행시 -i 옵션으로 스크립트를 담은 파일을 지정하면 됩니다. 예를 들어 항상 clojure-contrib 라이브러리의 str-join 함수를 사용한다면 임의의 파일을 하나 만들고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ; init_run.clj (use 'clojure.contrib.str-utils) </pre> <br /> java 명령행을 다음과 같이 주면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > java -cp .\clojure-1.6.0.jar;d:\temp\clojure-contrib.jar clojure.main <span style='color: blue; font-weight: bold'>-i .\init_run.clj -r</span> </pre> <br /> 이후부터는 곧바로 str-join 문을 실행할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > user=> (str-join "t" "test") "ttetstt" </pre> <br /> 이 정도만 알아두시면, 책을 보고 실습하시는 데 아무런 문제가 없을 것입니다. ^^<br /> <br /> <hr style='width: 50%' /><br /> <br /> 마지막으로, 보다 전문적인 개발환경을 원한다면 다음의 글을 참고하세요. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Clojure 개발환경 셋팅 및 개발 예제 ; <a target='tab' href='http://www.slideshare.net/netpyoung/clojure-development-environment'>http://www.slideshare.net/netpyoung/clojure-development-environment</a> </pre> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1938
(왼쪽의 숫자를 입력해야 합니다.)