--
์ด ๋ฉ์ผ์ Google ๊ทธ๋ฃน์ค 'Lisp์ ์ข์ํ๋ ์ฌ๋๋ค์ ๊ทธ๋ฃน(ํ๊ตญ ๋ฆฌ์คํผ)' ๊ทธ๋ฃน์ ๊ฐ์ ํ ๋ถ๋ค์๊ฒ ์ ์ก๋๋ ๋ฉ์์ง์ ๋๋ค.
์ด ๊ทธ๋ฃน์์ ํํดํ๊ณ ๋ ์ด์ ์ด๋ฉ์ผ์ ๋ฐ์ง ์์ผ๋ ค๋ฉด lisp-korea+...@googlegroups.com์ ์ด๋ฉ์ผ์ ๋ณด๋ด์ธ์.
์ด ๊ทธ๋ฃน์ ๊ฒ์ํ๋ ค๋ฉด lisp-...@googlegroups.com์ ์ด๋ฉ์ผ์ ๋ณด๋ด์ธ์.
http://groups.google.com/group/lisp-korea์์ ์ด ๊ทธ๋ฃน์ ๋ฐฉ๋ฌธํ์ธ์.
์ ์ด์ํด๋ก clojure๋ฅผ ์๊ฐํ์๋์ง ์ฌ์ญค๋ด๋ ๋ ๊น์?
๋ฆฌ์คํฌ๊ฐ ์์๋ค์. ์ด์ฟ ์ฟ ใ
์ด ๋ฉ์ผ์ Google ๊ทธ๋ฃน์ค 'Lisp์ ์ข์ํ๋ ์ฌ๋๋ค์ ๊ทธ๋ฃน(ํ๊ตญ ๋ฆฌ์คํผ)' ๊ทธ๋ฃน์ ๊ฐ์ ํ ๋ถ๋ค์๊ฒ ์ ์ก๋๋ ๋ฉ์์ง์ ๋๋ค.
์ด ๊ทธ๋ฃน์์ ํํดํ๊ณ ๋ ์ด์ ์ด๋ฉ์ผ์ ๋ฐ์ง ์์ผ๋ ค๋ฉด lisp-korea+...@googlegroups.com์ ์ด๋ฉ์ผ์ ๋ณด๋ด์ธ์.
์๋ ํ์ธ์. ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ง๋ ๋ฉฐ์น ๋์ ์ด๊ฒ ์ ๊ฒ ์ดํด๋ณด๊ณ ์๋๋ฐ ์ง๊ธ๊น์ง ์ ๋ฐ ์ ์ธ ๋๋์ ์ด๋ ์ต๋๋ค.
Clojure์ ๊ด๋ จ๋ ์๋ฃ๋ฅผ ๊ฒ์ํด๋ณด๋ฉด ๋๋ถ๋ถ 2012 ์ ํ์ ์๋ฃ๊ฐ ๋๋ถ๋ถ์ด๊ณ 2014๋ ๋๋ ํน๋ณํ ์ด์๊ฐ ์์๋๊ฒ ๊ฐ์ต๋๋ค.
์ด๊ธฐ์ ๋ฐ์ง ๊ด์ฌํ ๋ชจ๋ฉํ ์ ์๊ณ Lisp์ ๋๋ค๋ฅธ dialect๋ก ์ ๋ฝ๋๋๊ฑด ์๋์ง..
์์ผ๋ก์ ๋ก๋๋งต์ ์ฐพ์ ๋ณด๋ ค๊ณ ํ์ง๋ง ๋ณ๋ค๋ฅธ ์๋์ ์์์ต๋๋ค.
์ ๋ณด๋ค ๋ง์ ์ง์์ ๊ฐ์ง๊ณ ๊ณ์๋ ๋ถ๊ป ์์ผ๋ก ์ ๋ง์ ๋ํด์ ์ฌ์ญค๋ด ๋๋ค.
๋ง์ด ๋์จ๊น์ Clojure ๊ด๋ จ ๋ช๊ฐ์ง ์ง๋ฌธ์ ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค.
์ง๊ธ ๋น์ฅ ์จ๋ผ์ธ ๊ฒ์ ์ด์ํด์ ๊ฐ๋ฐ ํ๋ ค๋๋ฐ, UI ๋ ์ด๋ค๊ฑธ ์จ์ผํ๋ ๊ณ ๋ฏผ์ ๋น ์ก์ต๋๋ค.
1. JavaFX๊ฐ Swing์ ๋์ฑํ๋ค๊ณ ๋์๋๋ฐ, ๊ธฐ์์ด๋ฉด ์ต์ UI Framework๋ฅผ ์ฐ๊ณ ์ถ์ง๋ง Clojure JavaFX ๋ํผ ํ๋ก์ ํธ๋ ์ด์ ์์ํ๋๊ฒ ๊ฐ๊ณ , Seesaw ๋ฅผ ๊ฐ์ง๊ณ ํด์ผํ ๊น์? ์ถ์ฒํ ๋งํ UI toolkit์ด ์์ผ๋ฉด ๋ถํ๋๋ฆฝ๋๋ค.ย (์ค๋ ํ ์คํธ์ค seesaw๋ก ๊ฐ๋จํ ์๋์ฐ๋ฅผ ๋์ฐ๊ณ ์ข ๋ฃํ๋ฉด emacs ์์ nrepl connection ์ด ๋๊น๋๋ค. ํน์ ๋ญฃ ๋๋ฌธ์ ๊ทธ๋ฐ์ง... Java, Cider, Clojure, Seesaw ๋ชจ๋ ์ต์ ๋ฒ์ ์ ์ฌ์ฉ์ค์ ๋๋ค.)
2. ํน์ ์กฐ๋ง๊ฐ ๋ํ๋ฒ Clojure ์คํฐ๋ ๊ทธ๋ฃน์ ์์ํ์ค ๊ณํ์ด ์์ผ์ ์ง ๊ถ๊ธํฉ๋๋ค.
3. ์ด์ํด์ด MongoDB, MSSQL๊ณผ ์ฐ๋์ด ๋์ผํ๋๋ฐ, ํน์ ํด๋ณด์ ๋ถ ์ค์ ํน๋ณํ ๋ฌธ์ ๊ฐ ์๋์ง ๊ถ๊ธํ๋ค์.
ย
4. Docjure ๋ก Excel (.xls)ํ์ผ์ ์ฝ์ด์ค๋๋ฐ, interger ๊ฐ์ด ์๋์ผ๋ก float์ผ๋ก ๋ณํ๋์ ์ฝํ์ต๋๋ค. ํน์ ๋ฌด์จ ๋ฌธ์ ์ผ๊น์?
ย
5. Emacs ์์ Clojure ๋ฅผ ๊ธฐ๋ํ๋๋ฐ ์๊ฐ์ด ์ข ์ค๋๊ฑธ๋ฆฌ๋ ํธ์ ๋๋ค. (10+์ด), Leiningen ์์ run ์ ํ ๋๋ ๋ง์ฐฌ๊ฐ์ง.. ์๋ ๊ทธ๋ฐ๊ฑด๊ฐ์? ์๋๋ฉด ๋ญ๊ฐ ์ ๊ฐ ์ ์ ์ ์ ๋ชป ํ๊ฑด๊ฐ์?ย
ย
์ง๊ธ๊น์ง ํ ์คํธํด๋ณด๋ฉด์ ๊ถ๊ธํ๋ ์ ์ ๋๋ค.
๋ง๋ ์กฐ์ธ ๊ฐ์ฌ ๋๋ฆฝ๋๋ค. ์คํฐ๋๋ฅผ ํ๊ฒ๋๋ฉด ํ๋ฒ ์๋๋ก ํ๊ฒ ์ต๋๋ค. ^^
ย
2015๋ 1์ 29์ผ ๋ชฉ์์ผ ์ค์ 11์ 31๋ถ 34์ด UTC+9, ๊น์ํ ๋์ ๋ง:์์ ๋งํฌ์๋ GitHub repositories์ ๋ฑ๋ก๋ ํ๋ก์ ํธ๋ค์ด ์ฃผ๋ก ์ด๋ค ์ธ์ด๋ค๋ก ์ด๋ฃจ์ด์ ธ ์๋๊ฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๊ฐํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ธ๊ธฐ๋๋ฅผ ์ธก์ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ด๊ณ ์์ต๋๋ค. 2014๋ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ ํธ๋ ์กฐ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด, Scala๊ฐ Clojure๋ณด๋ค ์ธ๊ธฐ๋๊ฐ ์์๊ณ ์๋ ๊ฒ์ ์ฌ์ค์ ๋๋ค๋ง, Clojure๊ฐ Groovy๋ณด๋ค๋ ์์๊ณ ์๋ ๊ฒ์ผ๋ก ๋ํ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์์น๊ณผ ํ๊ฐ๋๋ฅผ ๋ณด๋ฉด Clojure๊ฐ ๊ฐ์ฅ ๋์ ์์น์ธ์ธ +5์ธ ๋ฐ๋ฉด์ Scala์ Groovy๋ ๋ ๋ค -2๋ฅผ ๊ธฐ๋กํ๊ณ ์์ต๋๋ค. ์์ ๊ฒฐ๊ณผ๋ก ๋ณผ ๋ ํ์ฌ ์ํฉ์์ Clojure๊ฐ ํ๋ก๊ทธ๋๋จธ๋ค์๊ฒ ํ์๋ฐ๊ณ ์์ง ๋ชปํ๋ค๋ ๊ฒฐ๋ก ์ ๋ค์ ์ฃ๋ถ๋ฅธ ๋ฏ์ด ๋ณด์ ๋๋ค.๋ค์์ ์ ๊ฐ ์ด ๋ ๊ฐ์ ๊ธ์ ์ฝ์ด ๋ณด์๋ฉด, Clojure์ ๋ํ ์ดํด์ ๋์์ด ๋ ์ ์์ ๋ฏ ํฉ๋๋ค. ยํ๋ก๊ทธ๋๋จธ์ ์ ์ฅ์์ ๋ณผ ๋, ๊ณ ๊ฐ์์ ์๊ตฌ๋ ๋ ๋ก ๋ณต์กํด์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ก ์ธํด ํ๋ก๊ทธ๋จ๋ ๋๋ ์ด ๋๋์ฑ ๋ณต์กํด์ง๊ณ ์์ต๋๋ค. ๊ฒฐ๊ตญ์ ์ด ๋ณต์ก๋๋ฅผ ์ด๋ป๊ฒ ๋ฎ์ถ ๊ฒ์ธ๊ฐ์ ๋ฌธ์ ๊ฐ ํ์ฌ์ ์ํํธ์ ๊ณ๊ฐ ๋น๋ฉดํ ๊ฐ์ฅ ํฐ ํ๋์ด์ ์ฑํจ์ ์ด์ ์ ๋๋ค.์ด๋ฐ ์ ์์ ๋ณผ ๋, Scala๋ ๊ฐ์ฒด์งํฅ ๋ฐฉ์๊ณผ ํจ์ํ ์ธ์ด์ ํน์ง์ ๋ชจ๋ ๋ด๊ณ ์๋๋ฐ, ์ด๋ฌํ Multi-paradigm ์ ๋ต์ ์ฅ์ ์ผ๋ก ์์ฉํ๊ธฐ ๋ณด๋ค๋ ๋จ์ ์ผ๋ก ์์ฉํ๊ธฐ ์ฝ์ต๋๋ค. ์ ์ฐจ์งํฅ๋ ๊ฒฐ๊ตญ์ State(๋ฉค๋ฒ ๋ณ์)์ ์ฌ์ฉ์ ์ ๊ทผ ์ง์ ์๋ฅผ ํตํด์ ์ ์ดํ๊ณ ์์ ๋ฟ, ๋ณธ์ง์ ์ผ๋ก๋ State๋ฅผ ์ ๊ทน ํ์ฉํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ๋๋ค. ๊ทธ๋์ ํจ์ํ ์ธ์ด ์ธก์์๋ ๊ฐ์ฒด์งํฅ์ ์ ์ฐจ์งํฅ๊ณผ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ ๋ถ๋ฅ๋ก ์ทจ๊ธํฉ๋๋ค. ํจ์ํ ์ธ์ด์์ State์ ์ฌ์ฉ์ ๊ฐ๋ฅํ ํ ์ต์ํํ๋ ค๋ ์ด์ ๋, ๊ทธ๋ผ์ผ๋ก์จ ํ๋ก๊ทธ๋จ์ ๋ณต์ก๋๊ฐ ์ค์ด๋ค์ด ์ ์ง/๋ณด์๊ฐ ์์ผํด์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.ย๊ฐ์ฒด์งํฅ์์๋ ํด๋์ค ๊ฐ์ ์์กด ๊ด๊ณ๊ฐ ๋ฐ์ํ ๋ ๊ทธ ๊ด๊ณ๋ฅผ ์ด๋ป๊ฒ ์ค์ ํ ๊ฒ์ธ๊ฐ์ ๋ฌธ์ ๋ ์์ฒญ๋ ๋ณต์ก์ฑ์ ์ถ๊ฐํฉ๋๋ค. ์์กดํ๋ ํด๋์ค๊ฐ ๋์ด๋ ์๋ก ๋ณต์ก๋๋ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํฉ๋๋ค. Clojure์๋ ๊ทธ๋ฐ ๋ณต์ก์ฑ์ด ์กด์ฌํ์ง ์์ต๋๋ค. ์๋๊ตฌ์? ํด๋์ค๋ผ๋ ๊ฐ๋ ์์ฒด๊ฐ ์๋๋ฐ, ํด๋์ค๊ฐ์ ๊ด๊ณ๋ฅผ ๊ณ ๋ฏผํด์ผํ ํ์๊ฐ ์์๊น์? Clojure๋ ๊ฐ์ฒด์งํฅ์ ์ง์ํ์ง ์์ต๋๋ค. ๊ฐ์ฒด ์งํฅ์ด ๋ฌธ์ ์ ๋ณต์ก๋๋ฅผ ์ค์ด๊ธฐ๋ ์ปค๋ ์คํ๋ ค ๋์ด๊ณ ์๋ ์์ธ์ผ๋ก ์ง๋จํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋์ Clojure์์๋ ๋ฐ์ดํฐ๋ฅผ ํด๋์ค๋ก ๊ฐ์ธ์ง ์์ต๋๋ค. ํด๋์ค๋ก ๊ฐ์ธ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ์๋ ๊ทธ๋๋ก ์ด์ฉํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ํด๋์ค๋ก ๊ฐ์ธ๊ฒ ๋๋ฉด์ ์ฝ๋๋ ๊ธธ์ด์ง๊ฒ ๋๊ณ , ๊ทธ๋ก ์ธํด ๋ถํ์ํ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ๊ธฐ ์์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋์ผํ ์ผ์ ์ํํ๋๋ฐ 10,000์ค ์ง๋ฆฌ ์ฝ๋์ 1,000์ค์ง๋ฆฌ ์ฝ๋๊ฐ ์๋ค๋ฉด, ๋น์ฐํ ์งง์ ์ฝ๋๊ฐ, ๊ตฌํ ๋ก์ง์ ์ดํด๋ ์ ์ง/๋ณด์์ ์๋ฑํ ์ฐ์์ฑ์ ์ง๋๊ฒ ๋๋ ๊ฒ์ ์๋ช ํฉ๋๋ค. ์ ์ด๋ ์ ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด, Java๋ก ์์ฑํ ๋๋ณด๋ค Clojure๋ก ํ๋ก๊ทธ๋๋ฐํ ๋ ์ฝ๋์ ๊ธธ์ด๋ ์ ์ด๋ 1/5, ํฌ๊ฒ๋ 1/10๋ก ์ค์ด๋ญ๋๋ค. Java ํ๋ก๊ทธ๋๋ฐํ ๋ ์ ์ผ ์ง์ฆ๋๋ ์ผ์ด gettter/setter๋ง ์์ฑํ๋๋ฐ๋ ์ด๋ฏธ ์ฝ๋๋ ์ ๋ฐฑ์ค์ ๋์ด๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ฐ๋์ ๋ด๊ฐ ์ง๊ธ ํ์ดํ์ ํ๊ณ ์๋ ํ๋ก๊ทธ๋๋ฐ์ ํ๊ณ ์๋ ํผ๋์ด ๋ค ์ ๋์ ๋๋ค.๊ฒฐ๋ก ์ ์ผ๋ก ์ ๊ฐ ๋ง์๋๋ฆฌ๊ณ ์ถ์ ๊ฒ์, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์ ๊ทผ์ผ๋ก ์ธํด ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์๋ค๋ ๊ฒ์ ์๋ ๊ทธ๋๋ก ์ธ์ ํ์๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ผ ๋์์ ๋ชจ์ํ๊ธฐ ์์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋์์ ์ฐพ์๊ฐ๋ ๊ณผ์ ์์, Clojure๋ ํ๋ฅญํ ํด๊ฒฐ์ญ์ด ๋ ์ ์๋ ์ธ์ด๋ผ๋ ๊ฒ์ ๋๋ค.ย
2015๋ 1์ 27์ผ ํ์์ผ ์คํ 11์ 46๋ถ 25์ด UTC+9, KI-YOUNG BANG ๋์ ๋ง:์ ์ด์ํด๋ก clojure๋ฅผ ์๊ฐํ์๋์ง ์ฌ์ญค๋ด๋ ๋ ๊น์?
์์ฆ java ๋์์ผ๋ก scala๋ groovy๋ ํซํ๋ฐ... clojure๋ ๊ทธ๋ฆฌ ํ์์ ๋ชป ๋ฐ๊ณ ์๊ฑฐ๋ ์.
--
|
์ด ์ด๋ฉ์ผ์ Avast ์ํฐ๋ฐ์ด๋ฌ์ค ์ํํธ์จ์ด๋ก ๋ฐ์ด๋ฌ์ค ๊ฒ์ฌ๋ฅผ ์๋ฃํ์ต๋๋ค.
|