자바 플랫폼에서 돌아가는 언어는 여러가지가 있습니다. groovy, javaFX, JRuby, jython, scala 등이 있는데, clojure 또한 마찬가지로 JVM위에서 동작하는 자바 문법을 사용하지 않는 언어입니다.

Clojure는 하위 레벨에 동시성이 빌드되어 있다. 그래서 개발자가 스레드와 잠금을 직접 다루지 않아도 되므로, 사용하기에 더 간단하고 문제도 적은 모델을 얻게 된다. 따라서 애플리케이션 논리에 다시 집중할 수 있고 시스템을 갑자기 정지시키는 교착 상태가 발생하지 않을까 너무 걱정하지 않아도 된다.
from: http://www.ibm.com/developerworks/kr/library/wa-clojure/index.html

웹 프로그래밍은 멀티스레드 처리할 경우가 많지 않습니다. 엔진 자체가 멀티스레드로 돌고 있기 때문이고, 비즈니스 구현상 멀티스레드 처리를 하는 요구사항이 극히 미미하기 때문입니다. 그렇기 때문에 동시성 프로그래밍이 익숙하지 않음으로 인해 동시성 처리하는 기술이 많이 낮다고 합니다. 저도 그런 듯 합니다. ^^;

이런 동시성 처리를 위해서 STM(Software Transactional Memory) 구현 키워드 ref를 제공한다고 합니다.
백견이 불여일타라고 Clojure 환경 구성하고 한 번 시도해보는 것도 좋을 것입니다.

http://clojure.org/




+ Recent posts