Clojure development environment

2,552 views

Published on

Clojure development environment

The 3rd Lisp Seminar in Korea

제 3회 리스프 세미나 발표자료.

ppt, pdf, 소스코드, 세미나용 셋팅 자료는 다음 dropbox링크를 열어두었습니다.
https://www.dropbox.com/sh/bt2ij5ucrr8vgj5/oH7seofBKk
상기 링크는 언제든지 지워질 수 있습니다.

저의 vim설정과, emacs설정은 다음과 같습니다.
- https://github.com/netpyoung/netpyoung.vim
- https://github.com/netpyoung/netpyoung.emacs.d

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,552
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
28
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Clojure development environment

  1. 1. Clojure 개발환경 셋팅 및 개발예 제 김은평
  2. 2. 은하수를 여행하는 히치하이커를 위한 안 내서
  3. 3. 목차 ● Clojure? ● Clojure 개발환경 셋팅 및 개발 예제 ● 마치며 ● 참고자료
  4. 4. Clojure? ● 소개 ● 역사 ● 창시자 ● Lisp ● 비교 ● 개발
  5. 5. Clojure? - 소개 JVM 위에서 돌아가는 Lisp 계통 언어 . 발음은 "closure" 와 같음 .
  6. 6. Clojure? - 역사 ● 1930 년 – ● 1958 년 – ● Java 출현 - James Gosling, Sun Microsystems 2007 년 10 월 – ● 첫번째 Lisp 구현 - Steve Russell 1995 년 – ● Lisp 언어 소개 - John McCarthy 1959 년 – ● lambda calculus 소개 - Alonzo Church Clojure 출현 1.0.x - Rich Hickey 2013 년 3 월 10 일 – Clojure 1.5.1
  7. 7. Clojure? - 창시자 ● 리치히키 (Rich Hickey) ● 20 년 이상의 개발경력 – scheduling systems, broadcast automation, audio analysis, fingerprinting, database design, yield management, exit poll systems, machine listening ● NYU(New York University) 에서 Advanced C++ 강의 ● 다룬 언어들 C, C++, Java, C# ● 맘에드는게 없어 Clojure 를 3 년동안 개발 ● .clj(C#, Lisp, Java)
  8. 8. Clojure - Lisp
  9. 9. Clojure? - 비교 - scala ● 중위표기법 ● 정적타입 ● 객체지향 ● 타입시스템
  10. 10. Clojure? - 비교 - clojure ● 전위표기법 ● 동적타입 ● 데이터지향 ● 코드 역시 데이터
  11. 11. Clojure - 개발 - Java
  12. 12. Clojure - 개발 - Clojure
  13. 13. 목차 ● Clojure? ● Clojure 개발환경 셋팅 및 개발 예제 ● 마치며 ● 참고자료
  14. 14. Setting and Development ● Leiningen ● nRepl ● LightTable ● Eclipse ● Vim ● Emacs
  15. 15. Leiningen https://github.com/technomancy/leiningen
  16. 16. Leiningen Ant: Java 프로젝트 관리도구 Leiningen: Clojure 프로젝트 관리도구 라이닝겐 (Leiningen) 은 끝내 개미 (Ant) 들을 물리치고 자신의 농장을 지켰다 . “Leiningen Versus the Ants” - Carl Stephenson
  17. 17. Leiningen - command lein new 새로운 프로젝트 lein deps 의존성 dependencies lein uberjar 모두 jar 로 묶기 lein repl REPL 실행
  18. 18. Leiningen - 설치 및 REPL
  19. 19. Leiningen - JAVA 환경설정 JAVA_HOME C:Program FilesJavajdk1.7.0_40 PATH %PATH%;%JAVA_HOME%bin
  20. 20. Leinin – new hello > cd prj > lein new hello > tree hello hello ├─doc ├─resources ├─src │ └─hello └─test └─hello
  21. 21. nRepl https://github.com/clojure/tools.nrepl Clojure *n*etwork REPL. Read–Eval–Print-Loop
  22. 22. nRepl > lein repl
  23. 23. LightTable 장점 : 쉽게 사용할 수 있다 . 단점 : 버전이 너무 낮다 . CHRIS GRANGER Kickstarter: $316,270 Joined Y combinator
  24. 24. LightTable http://www.lighttable.com/
  25. 25. LightTable - 셋팅 http://www.lighttable.com/ 1. 위 사이트에서 압축파일을 다운받는다 . 2. 압축을 푼다 . 3. 폴더에 있는 Light Table 을 실행한 다.
  26. 26. LightTable - 시연 Literal Instarepl
  27. 27. LightTable - 조작키 Ctrl+Space 메뉴부르기 Ctrl+Enter 표현식 평가하기
  28. 28. CounterClockwise 장점 : eclipse 기반 . Java 사용자들이 많 다. 단점 : 다른 에디터에 비해 무겁다 .
  29. 29. CounterClockwise http://code.google.com/p/counterclockwise/
  30. 30. CounterClockwise - 셋팅 하나 . Eclipse 로 하는 방법 . 1. http://eclipse.org/downloads/ 2. Help> Install New Software> http://updatesite.ccw-ide.org/stable/
  31. 31. CounterClockwise - 셋팅 둘 . 미리 package 된 것으로 하는 방법 . 1. http://code.google.com/p/counterclockwise/wi 2. 압축풀고 실행 .
  32. 32. CounterClockwise - 시연 Java interop lein javac lein uberjar
  33. 33. Eclipse - 조작키 Ctrl+Enter 현재 표현식 평가 F3 정의로 이동
  34. 34. Vim 장점 : 리눅스 유저들의 친숙함 . 단점 : 확장 기능이 아직은 미숙함 . Vi - Bill Joy Vim - Bram Moolenaar
  35. 35. Vim - vim-fireplace https://github.com/tpope/vim-fireplace
  36. 36. Vim - 셋팅 1. init-loader 2. NeoBundle 3. vim-fireplace
  37. 37. Vim - 시연 Quil
  38. 38. Vim - 조작키 Shift + k 문서 보기 [ + d 정의 보기 [ + C-d 정의로 이동 C-o 정의에서 되돌아오기 cpp 표현식 평가 cmm 매크로확장 C-x C-o 자동완성 - 입력모드
  39. 39. Emacs 장점 : 자유로움 . 단점 : 익히는데 시간이 많이 든다 . Richard Stallman Guy L. Steele, Jr.
  40. 40. Emacs – CIDER https://github.com/clojure-emacs/cider Clojure IDE and REPL for Emacs (formerly nrepl.el)
  41. 41. Emacs - 셋팅 0. M-x list-packages 1. init-loader 2. cider 3. auto-complete 4. ac-nrepl
  42. 42. Emacs - 시연 Macro 확장
  43. 43. Emacs - 시연 String interpolation 소개 https://github.com/clojure/core.incubato infix 소개 https://github.com/liebke/incanter/b lob/master/modules/incantercore/src/incanter/infix.clj
  44. 44. Emacs - 조작키 C-c M-j cider 접속 C-c M-n namespace 설정 C-M-x 표현식 평가 C-c M-m 매크로 확장 M-. 정의로 이동 M-, 정의에서 되돌아오기
  45. 45. 목차 ● Clojure? ● Clojure 개발환경 셋팅 및 개발 예제 ● 마치며 ● 참고자료
  46. 46. 단점들 전위표기법 : 익숙치 않다 . 그러므로 어렵다 . 디버깅 : 알아보기 힘든 stacktrace. 색다름 : OOP,Mutable <> Data,Immutable 커뮤니티 : 언어 사용자가 적은 만큼 작다 .
  47. 47. 다른 시각으로 세상을 보면 ? 오늘날의 대부분의 언어 Java, C#, Python, Ruby, Scala statefull OO OOP 역시 지원은 하지만 ... 지향은 아닌 보다 다른 방식으로 문제를 해결하려는 하나의 실험 .
  48. 48. 새로운 시도 idea 를 구현 ( 혹은 구경 ) 할 수 있는 언어 . 새로운걸 시도해 볼 수 있는 언어 . Clojurescript, core.logic, core.typed ....
  49. 49. 추천 도서 Joy of Clojure Clojure Programming
  50. 50. 놀이터 http://www.4clojure.com/
  51. 51. if you give someone Fortran, he has Fortran. if you give someone Lisp, he has any language he pleases - guy steele.
  52. 52. 환영합니다 한국 Clojure 위키 http://clojure.or.kr 한국 K-lisp 그룹 https://groups.google.com/forum/?fromgro
  53. 53. 목차 ● Clojure? ● Clojure 개발환경 셋팅 및 개발 예제 ● 마치며 ● 참고자료
  54. 54. 참고자료 wiki:Lisp(programming_lanugage) http://en.wikipedia.org/wiki/Lisp_%28programming_language%29 wiki:Clojure http://en.wikipedia.org/wiki/Clojure github:clojure-1.0.x https://github.com/clojure/clojure/tree/1.0.x Lisp 의 car 와 cdr 의 기원 http://www.iwriteiam.nl/HaCAR_CDR.html
  55. 55. 참고자료 리치히키가 설명하는 Clojure http://www.infoq.com/presentations/hickey-clojure Rich Hickey Q&A. Fogus 가 질문 , Hickey 가 답변하는 식으로 진행 . http://www.codequarterly.com/2011/rich-hickey/ 리치히키의 뇌를 들여다 보고 싶다면 ... http://www.flyingmachinestudios.com/programming/the-unofficial-guide-to-rich-hi 데이터를 다룸에 있어 , OOP 접근법과는 다른 Clojure 의 접근법에 대해 설명 . http://www.infoq.com/presentations/clojure-data-state-value http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey

×