Clojure로 Shell Scripting

Heehong Moon
bgpworks
Published in
2 min readSep 11, 2017

Clojurescript 커뮤니티에 큰 진보 중에 하나는 cljs로 cljs컴파일러를 만들었다는 것이다.

예전에는 JVM에서만 clojurescript 컴파일이 가능했다면, 이제는 javascript환경에서 clojurescript 컴파일이 가능하다는 소리이다. 처음에 이걸 봤을때는 무슨 의미가 있나, 그냥 누가 취미로 했나 생각했지만 이걸로 새로운 가능성이 열린듯 하다. 새로운 가능성 중 인상적인것은 clojure로 shell scripting을 할 수 있게 되었다는 것이다.

Shell Script & CLI

우리가 보통 사용하는 shell script나 cli툴을 생각해보면 가장 중요한것 중에 하나가 실행 속도이다. 그런 이유로 보통 cli툴은 python이나 nodejs와 같은 언어로 만들지 java로 만들지 않는다. java로 만들게 되면 수정도 어렵고, JVM이 뜨는데 시간이 꽤 걸리기 때문이다.

이런 이유로 clojure로 간단한 cli툴을 만들고 싶어도 현실적으로 잘 안되었다. 그런데 만약 nodejs기반에 clojurescript로 코딩할 수 있다면 JVM보다는 켜지는 속도가 빠를 것이다.

정확히 이걸 제공하는 lumo라는 프로젝트가 있다.

lumo

lumo는 nodejs기반이며 cljs 코드를 shell script 용도로 사용할 수 있을 정도의 속도를 가진 REPL이다. 일반적인 cljs라이브러리를 가져다 사용할 수도 있고, npm 모듈을 그대로 사용도 가능하다.

이제 nodejs로 간단하게 스크립팅해서 shell script를 만들어서 사용하던 부분을 cljs로 스크립팅해서 사용할 수 있게 되었다.

--

--