SlideShare une entreprise Scribd logo
1  sur  29
Lisp을 좋아하는 사람들의 그룹
 http://lispkorea.org:8080/k-lisper
Clojure? - 소개
JVM위에서 돌아가는 Lisp 계통 언어.
발음은 "closure"와 같음.
Lisp가 뭘 의미하는 거야?
 이름의 기원 : LISt Processing
 이름에서 나타나듯이 Linked List(단일 연
결 리스트)가 주된 자료구조.
AI 언어?
 “John McCarthy”
 Lisp의 아버지 "존 매카시”
 (1927년 9월 4일 ~ 2011년 10월 24일)
 1956년 다트머스 학회에서 처음으로 인공지능(Artificial
Intelligence)이라는 용어를 창안
 1958년 Lisp 개발시작
 1960년 논문 "Recursive Functions of Symbolic
Expressions and Their Computation by Machine, Part I“
 1971년 튜링상 수상. 인공지능에 대한 연구업적 인정
Lisp Machine in MIT’s Museum
Clojure? - 역사
● 1930년
– lambda calculus 소개 - Alonzo Church
● 1958년
– Lisp 언어 소개 - John McCarthy
● 1959년
– 첫번째 Lisp 구현 - Steve Russell
● 1995년
– Java 출현 - James Gosling, Sun Microsystems
● 2007년 10월
– Clojure 출현 1.0.x - Rich Hickey
● 2015년 06월 30일
– Clojure 1.7.0 - stable
Clojure? - 창시자
● 리치히키(Rich Hickey)
● 20년 이상의 개발경력
– scheduling systems, broadcast automation, audio analysis, fingerprinting, dat
abase design, yield management, exit poll systems, machine listening
● NYU(New York University)에서 Advanced C++강의
● 다룬 언어들 C, C++, Java, C#
● 맘에드는게 없어 Clojure를 3년동안 개발
● .clj(C#, Lisp, Java)
Clojure - Lisp
Clojure? - 비교 - scala
● 중위표기법
● 정적타입
● 객체지향
● 타입시스템
Clojure? - 비교 - clojure
● 전위표기법
● 동적타입
● 데이터지향
● 코드 역시 데이터
Clojure - 개발 - Java
Clojure - 개발 - Clojure
뽐뿌
 자바 창시자 제임스 고슬링, 프로그래밍
다양성 강조
 "개인적으로도 스칼라(Scala), 클로저(Clojure)
를 좋아한다. 스칼라로는 프로젝트를 하나 했
고 클로저는 다뤄보고 있다”
 http://www.zdnet.co.kr/news/news_view.asp
?artice_id=20150731111920
뽐뿌 - 1
 Walmart Runs Clojure at Scale
 Our Clojure system just handled its first Wal
mart black Friday and came out without a sc
ratch. — Anthony Marcar, Senior Architect –
WalmartLabs
 https://www.youtube.com/watch?v=av9Xi6C
Nqq4
뽐뿌 - 2
 Brandon Bloom - Building CircleCI's
Front end With Om
 https://www.youtube.com/watch?v=LNtQPS
Ui1iQ
 https://github.com/circleci/frontend
뽐뿌 - 3
 Driving React Native with ClojureScri
pt / Om
 https://www.youtube.com/watch?v=Dt2zNem
LCCk
Clojure Programming 책
 Clojure Programming
 Practical Lisp for the Java World
 By Chas Emerick, Brian Carper, Christophe
Grand
 Publisher: O'Reilly Media
 Final Release Date: March 2012
 Pages: 630
 http://www.clojurebook.com/
스터디 일정, 방식 결정.
 참가자들 각자 소개
 스터디 일정, 방식 결정.
Leiningen
 Java 프로젝트 매니저인, ant와 maven은 XML을 가지고
프로젝트를 관리한다.
 하지만, XML은 보고 수정하기 힘들다!
 Leiningen은 프로젝트관리 파일 자체가 .clj 파일이다.
Leiningen
Ant: Java 프로젝트 관리도구
Leiningen: Clojure프로젝트 관리도구
라이닝겐(Leiningen)은 끝내 개미(Ant)들을 물리치고
자신의 농장을 지켰다.
“Leiningen Versus the Ants” - Carl Stephenso
n
Leiningen - command
lein new
lein deps
lein uberjar
lein repl
새로운 프로젝트
의존성 dependencies
모두 jar로 묶기
REPL 실행
Leiningen - 설치 및 REPL
Leiningen - JAVA환경설정
JAVA_HOME
C:Program FilesJavajdk1.7.0_40
PATH
%PATH%;%JAVA_HOME%bin
Leinin – new hello
> cd prj
> lein new hello
> tree hello
hello
├─doc
├─resources
├─src
│ └─hello
└─test
└─hello
nRepl
https://github.com/clojure/tools.nrepl
Clojure *n*etwork REPL.
Read–Eval–Print-Loop
nRepl
> lein repl
IntelliJ + Cursive 클로저 개발 환경 만들
기
 http://manmyung.github.io/posts/2015-
03-17-post.html
 https://www.jetbrains.com/idea/download/
 https://cursiveclojure.com/userguide/
 https://groups.google.com/forum/#!forum
/lisp-korea
 https://lisp-korea.slack.com/
 https://clojurians.slack.com/messages/cl
ojure-korea/
 https://www.facebook.com/groups/defncl
ojure/

Contenu connexe

Plus de EunPyoung Kim

Plus de EunPyoung Kim (6)

Clojure with panama
Clojure with panamaClojure with panama
Clojure with panama
 
Interop with c in clojure
Interop with c in clojureInterop with c in clojure
Interop with c in clojure
 
Using FXML on Clojure
Using FXML on ClojureUsing FXML on Clojure
Using FXML on Clojure
 
On lisp ch18
On lisp ch18On lisp ch18
On lisp ch18
 
On lisp ch09
On lisp ch09On lisp ch09
On lisp ch09
 
(Lisp)
(Lisp)(Lisp)
(Lisp)
 

Clojure programming study_00

  • 1.
  • 2. Lisp을 좋아하는 사람들의 그룹  http://lispkorea.org:8080/k-lisper
  • 3. Clojure? - 소개 JVM위에서 돌아가는 Lisp 계통 언어. 발음은 "closure"와 같음.
  • 4. Lisp가 뭘 의미하는 거야?  이름의 기원 : LISt Processing  이름에서 나타나듯이 Linked List(단일 연 결 리스트)가 주된 자료구조.
  • 5. AI 언어?  “John McCarthy”  Lisp의 아버지 "존 매카시”  (1927년 9월 4일 ~ 2011년 10월 24일)  1956년 다트머스 학회에서 처음으로 인공지능(Artificial Intelligence)이라는 용어를 창안  1958년 Lisp 개발시작  1960년 논문 "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I“  1971년 튜링상 수상. 인공지능에 대한 연구업적 인정
  • 6. Lisp Machine in MIT’s Museum
  • 7. Clojure? - 역사 ● 1930년 – lambda calculus 소개 - Alonzo Church ● 1958년 – Lisp 언어 소개 - John McCarthy ● 1959년 – 첫번째 Lisp 구현 - Steve Russell ● 1995년 – Java 출현 - James Gosling, Sun Microsystems ● 2007년 10월 – Clojure 출현 1.0.x - Rich Hickey ● 2015년 06월 30일 – Clojure 1.7.0 - stable
  • 8. Clojure? - 창시자 ● 리치히키(Rich Hickey) ● 20년 이상의 개발경력 – scheduling systems, broadcast automation, audio analysis, fingerprinting, dat abase design, yield management, exit poll systems, machine listening ● NYU(New York University)에서 Advanced C++강의 ● 다룬 언어들 C, C++, Java, C# ● 맘에드는게 없어 Clojure를 3년동안 개발 ● .clj(C#, Lisp, Java)
  • 10. Clojure? - 비교 - scala ● 중위표기법 ● 정적타입 ● 객체지향 ● 타입시스템
  • 11. Clojure? - 비교 - clojure ● 전위표기법 ● 동적타입 ● 데이터지향 ● 코드 역시 데이터
  • 13. Clojure - 개발 - Clojure
  • 14. 뽐뿌  자바 창시자 제임스 고슬링, 프로그래밍 다양성 강조  "개인적으로도 스칼라(Scala), 클로저(Clojure) 를 좋아한다. 스칼라로는 프로젝트를 하나 했 고 클로저는 다뤄보고 있다”  http://www.zdnet.co.kr/news/news_view.asp ?artice_id=20150731111920
  • 15. 뽐뿌 - 1  Walmart Runs Clojure at Scale  Our Clojure system just handled its first Wal mart black Friday and came out without a sc ratch. — Anthony Marcar, Senior Architect – WalmartLabs  https://www.youtube.com/watch?v=av9Xi6C Nqq4
  • 16. 뽐뿌 - 2  Brandon Bloom - Building CircleCI's Front end With Om  https://www.youtube.com/watch?v=LNtQPS Ui1iQ  https://github.com/circleci/frontend
  • 17. 뽐뿌 - 3  Driving React Native with ClojureScri pt / Om  https://www.youtube.com/watch?v=Dt2zNem LCCk
  • 18. Clojure Programming 책  Clojure Programming  Practical Lisp for the Java World  By Chas Emerick, Brian Carper, Christophe Grand  Publisher: O'Reilly Media  Final Release Date: March 2012  Pages: 630  http://www.clojurebook.com/
  • 19. 스터디 일정, 방식 결정.  참가자들 각자 소개  스터디 일정, 방식 결정.
  • 20. Leiningen  Java 프로젝트 매니저인, ant와 maven은 XML을 가지고 프로젝트를 관리한다.  하지만, XML은 보고 수정하기 힘들다!  Leiningen은 프로젝트관리 파일 자체가 .clj 파일이다.
  • 21. Leiningen Ant: Java 프로젝트 관리도구 Leiningen: Clojure프로젝트 관리도구 라이닝겐(Leiningen)은 끝내 개미(Ant)들을 물리치고 자신의 농장을 지켰다. “Leiningen Versus the Ants” - Carl Stephenso n
  • 22. Leiningen - command lein new lein deps lein uberjar lein repl 새로운 프로젝트 의존성 dependencies 모두 jar로 묶기 REPL 실행
  • 23. Leiningen - 설치 및 REPL
  • 24. Leiningen - JAVA환경설정 JAVA_HOME C:Program FilesJavajdk1.7.0_40 PATH %PATH%;%JAVA_HOME%bin
  • 25. Leinin – new hello > cd prj > lein new hello > tree hello hello ├─doc ├─resources ├─src │ └─hello └─test └─hello
  • 28. IntelliJ + Cursive 클로저 개발 환경 만들 기  http://manmyung.github.io/posts/2015- 03-17-post.html  https://www.jetbrains.com/idea/download/  https://cursiveclojure.com/userguide/
  • 29.  https://groups.google.com/forum/#!forum /lisp-korea  https://lisp-korea.slack.com/  https://clojurians.slack.com/messages/cl ojure-korea/  https://www.facebook.com/groups/defncl ojure/