์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”2. ํŠน์ง•
2.1. REPL2.2. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ2.3. LISP์˜ ๋ฐฉ์–ธ2.4. ๋Ÿฐํƒ€์ž„ ๋‹คํ˜•์„ฑ2.5. ๋ณ‘ํ–‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ2.6. ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹  ๊ธฐ๋ฐ˜์˜ ์‹คํ–‰
3. ํ•˜์œ„ ํ”„๋กœ์ ํŠธ
3.1. ClojureScript3.2. ClojureCLR
4. ๋„์„œ

1. ๊ฐœ์š”[ํŽธ์ง‘]

๊ณต์‹ ํ™ˆํŽ˜์ด์ง€

Rich Hickey์— ์˜ํ•ด ์ฐฝ์•ˆ๋œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, LISP์˜ ๋ฐฉ์–ธ์ด๋‹ค. JVM, .NET Framework, JavaScript๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ปดํŒŒ์ผ๋œ๋‹ค. Java์™€์˜ ์ƒํ˜ธ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ฐœ๋ฐœ ๋„๊ตฌ๋Š” ๋Œ€๋ถ€๋ถ„ Emacs๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. IDE๋กœ๋Š” IntelliJ IDEA์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ๊ฐœ๋ฐœ๋œ Cursive(์œ ๋ฃŒ)๊ฐ€ ์กด์žฌํ•œ๋‹ค.[1]

2. ํŠน์ง•[ํŽธ์ง‘]

๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ์†Œ๊ฐœํ•˜๋Š” ๋Œ€ํ‘œ ํŠน์ง• ๋ชฉ๋ก ์—์„œ๋Š” Dynamic Programming(REPL), Functional Programming, LISP(์˜ ๋ฐฉ์–ธ์ž„), Runtime Polymorphism, Concurrent Programming, Hosted on JVM์„ ๋Œ€ํ‘œ ํŠน์ง•์œผ๋กœ ๊ผฝ๊ณ  ์žˆ๋‹ค.

2.1. REPL[ํŽธ์ง‘]

REPL(Read-Eval-Print-Loop)์˜ ์•ฝ์ž๋กœ, ์ปดํŒŒ์ผ๋˜๋Š” ์–ธ์–ด์ด์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด(์˜ˆ๋ฅผ ๋“ค์–ด JavaScript) ํ™˜๊ฒฝ์ฒ˜๋Ÿผ ์ง์ ‘ ๋ช…๋ น๋ฌธ์„ ์ž…๋ ฅํ•˜๋ฉด์„œ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

2.2. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ[ํŽธ์ง‘]

2.3. LISP์˜ ๋ฐฉ์–ธ[ํŽธ์ง‘]

2.4. ๋Ÿฐํƒ€์ž„ ๋‹คํ˜•์„ฑ[ํŽธ์ง‘]

Runtime Polymorphism

2.5. ๋ณ‘ํ–‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ[ํŽธ์ง‘]

Concurrent Programming

2.6. ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹  ๊ธฐ๋ฐ˜์˜ ์‹คํ–‰[ํŽธ์ง‘]

3. ํ•˜์œ„ ํ”„๋กœ์ ํŠธ[ํŽธ์ง‘]

JVM ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” Clojure๋ฅผ ํ•„๋‘๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ์˜ ์‹คํ–‰์„ ์œ„ํ•œ ๊ณต์‹ ํ”„๋กœ์ ํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

3.1. ClojureScript[ํŽธ์ง‘]

ClojureScript Github ํŽ˜์ด์ง€ Clojure ํ”„๋กœ๊ทธ๋žจ์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ปดํŒŒ์ผํ•ด ์ฃผ๋Š” ํŠธ๋žœ์Šค์ปดํŒŒ์ผ๋Ÿฌ.

3.2. ClojureCLR[ํŽธ์ง‘]

ClojureCLR Github ์‚ฌ์ดํŠธ Java๊ฐ€ ์•„๋‹Œ .NET์˜ CLR(Common Language Runtime) ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ Clojure ๊ตฌํ˜„์ฒด.

4. ๋„์„œ[ํŽธ์ง‘]

Programming Clojure
ํ˜„์žฌ๊นŒ์ง€ (๊ตญ๋‚ด์—) ๋‚˜์˜จ ๋„์„œ๋“ค ์ค‘์— ๊ฐ€์žฅ ํ›Œ๋ฅญํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ถœํŒ๋…„๋„๊ฐ€ 2009๋…„์ธ๋งŒํผ ํ˜„์žฌ ๋ฒ„์ „์—์„œ "contrib" ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์˜ ์‚ฌ์šฉ๋ฒ•์ด ๋งž์ง€ ์•Š๋‹ค.

Living Clojure
๋น ๋ฅด๊ฒŒ ๋ฐ”๋กœ ์จ๋จน์„ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ์ถ”์ฒœํ•œ๋‹ค. ๋˜ํ•œ 10์žฅ์˜ ์—ฐ์Šต ๋ฌธ์ œ๋“ค๋„ ์‹ค๋ฌด์—์„œ ๋„์›€์ด ๋˜๋Š” ๋‚ด์šฉ์ด๋‹ค.

[1] ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋˜๋Š” Non-Commercial ๋ผ์ด์„ผ์Šค๋„ ์žˆ์ง€๋งŒ ๋Œ€์‹  6๊ฐœ์›”๋งˆ๋‹ค ๊ณ„์† ๊ฐฑ์‹ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.