Cursive 란게 있더군요. Intellij plugin 입니다.
https://cursiveclojure.com
김만명님이 정리해주신 다음 url 도 첨부해요.
http://manmyung.github.io/posts/2015-03-17-post.html
--
이 메일은 Google 그룹스 'Korean Clojure User Group' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 clojure-kr+...@googlegroups.com에 이메일을 보내세요.
이 그룹에 게시하려면 cloju...@googlegroups.com에 이메일을 보내세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/clojure-kr/40470eb6-bc0a-4061-b4c5-c87acdab3e53%40googlegroups.com을(를) 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.
요즘 꾸준하게 매일 조금씩 Clojure를 공부하고 있습니다. Living Clojure책에서 추천하는 진도에 맞춰 4Clojure 문제를 주로 많이 풀었고 다음 주 부터는 몇가지 카타를 풀어볼 예정입니다.그러다보니 간단한 클로져 코드를 작성하고 결과를 확인해 볼 일이 많습니다. 그런데 뭔가 매끄럽지가 않는 것 같아요.제가 시도해본 몇가지 방법은..1. lein repl터미널에서 바로 repl을 뛰울 수 있는 간단한 방법인데, 이게 생각보다 실행되는데 걸리는 시간이 좀 되더라구요.게다가 터미널에서는 IPython과 같은 상호작용성을 기대하기 힘들잖아요?2. emacs + cider + nrepl아직 emacs가 익숙하지 않지만 단축키며 설정이며 하나둘씩 익혀보는 중입니다. 직접 .clj파일로 저장하거나 Clojure 모드로 설정을 바꾸고나면 해당 단축키들을 사용할 수 있네요. C-c M-j 라는 복잡한 단축키를 누르면 cider-nrepl도 연결되어 버퍼와 repl을 왔다갔다 하면서조금씩 바꿔볼 수 있으니까 단순히 repl만 있는 것 보단 나은 것 같습니다.다만 emacs가 아직도 손에 익지 않아서 ㅠ.ㅠ 게다가 emacs를 띄우는 거나 repl 띄우는게 여전히 조금 무거운 느낌입니다.(맥에서는 그나마 조금 나은데, 윈도에서 이맥스는 처음 실행할 때 더 느린것 같아요)바로 뭔가 타이핑하고 결과 보고 .. 하려고 할때는 좀 ..
3. LightTable instarepl코드를 작성하는 중에도 인라인으로 실행 트레이스를 보여주는 건 매우 파워풀한 것 같습니다.단축키로 문서를 열어본다든지 자동완성이라든지.. 등등도 좋구요.다만 중간에 가끔씩 먹통이 되기도 하고, 역시나 instarepl을 띄우는 게 느립니다. ㅠ.ㅠ안정성/성능 등에 조금 문제가 있는 것 같아요.
4. tryclj이게 띄우기는 제일 편한 것 같아요. 로컬보다 리모트라니 -.-;;;(물론 repl이어서 상호작용성에는 똑같은 단점이 있다는..)이것 저것 느린걸 보면 제가 뭔가를 잘못 설정하고 쓰는 것이든가, 제가 참을성이 부족하든가 둘 중 하난가 싶기도 하네요. ^^;그냥 repl하나, emacs하나, lighttable 등을 미리 다 띄워놓고 언제든지 스위치해서 하는게 제일인가 싶기도 합니다.다른 분들은 어떤 방법을 사용하시나요? 초보를 위해 좋은 팁 공유 부탁드립니다.
저는 emacs 하나만 씁니다. 다른것은 이맥스를 포기하면서 써볼만큼 매력적이지 못하더군요. 게다가 cider나 clojure-mode는 저도 contribution을 가끔씩 하기 때문에 cider 환경에 대해서 자신감도 있습니다.일단 emacs는 daemon으로 쓰셔야합니다.emacs --daemon --debug-initemacsclient -t저는 작업시 이맥스 런타임을 7개 정도 열어두고 쓰는데, 하나는 데몬으로 맥 cocoa window를 이용하고, 나머지들은 전부 iterm 상에서 각 탭에 데몬아닌 emacs 하나씩 두고 사용합니다. (주로 iterm에 올려두고 쓰는것은 레퍼런스 프로젝트 repling을 위한)데몬 이맥스는 특별한 경우가 아닌한 다음 시스템 리부팅 전까지 계속 살려서 씁니다. 중간중간에 clojure repl만 리부트하는 정도.(이런 느낌입니다)두번째는 clojure repling을 하기에는 lein보다는 boot 툴링이 훨씬 더 매력적입니다. refactor-nrepl을 쓰지 않고도, deps hotloading이 가능하고, lein repl보다 jack-in 타임도 빠르구요. boot 툴링 시스템은 개인적으로 lein 보다 훨씬 선호합니다. 그래서 lein쪽에는 contribution을 한개도 한 것이 없지만 boot은 계속 늘려가고 있습니다.이맥스가 무겁다고 느끼는건 뭔가 유저코드단이 최적화가 안되어있다는 뜻입니다. 물론 이건 위에 말씀드렸던 데몬으로 사용하면 됩니다. 물론 윈도우 이맥스는 데몬을 지원하지 않았던것으로 기억해서 어쩔수없군요. 개인적으로 이맥스 초기화는 2000ms 이내로 돼야된다고 생각합니다.한 이맥스 헤비유저의 약파는 글이었습니다.
IntelliJ+Cursive의 리팩토링 기능이 버전별 소스 비교 기능은 이맥스 보다는 훨씬 낳은 듯 합니다. ^^;(최근에 Cider에 리팩토링과 코드 칼라링 기능이 들어갔다는 얘기는 들었었는데, 제가 이맥스를 쓰지 않아정확히 기능이 IntelliJ+Cursive와 비교를 못하겠네요.)
IntelliJ+Cursive의 리팩토링 기능이 버전별 소스 비교 기능은 이맥스 보다는 훨씬 낳은 듯 합니다. ^^;(최근에 Cider에 리팩토링과 코드 칼라링 기능이 들어갔다는 얘기는 들었었는데, 제가 이맥스를 쓰지 않아정확히 기능이 IntelliJ+Cursive와 비교를 못하겠네요.)버전별 소스비교 기능이 어떤거죠? 혹 git과 같은 scm 시스템으로 관리하는 소스트리상에서 소스의 diffing 같은 기능을 말하신거면 이맥스에는 magit이란 녀석이 있습니다. (단연 최강의 scm(git)의 최강의 UI/UX를 전해주죠 ;-D ) 혹 이것을 말씀하신거면 제가 장담하건데 magit을 결코 능가하긴 쉽지 않을겁니다. 후후혹 clojure.core 소스의 버전별 비교기능 같은것을 말하신것이라 해도 이 역시 magit등을 이용해 커스텀하면 되지 않을까 생각합니다.
그리고 코드 칼라링나 clojure coding refactoring등은 cider에서 구지 다뤄야하는 주제는 아닙니다. 오히려 코드칼라링(이맥스 컨텍스트로 말하면 font-lock)은 clojure-mode에서 구현해야하는 부분이고, 추가적인 let안에 로컬변수등을 구분해주는 flash effect는 이맥스 코어 번들 라이브러리인 hightlight.el에서 처리하는게 맞습니다. 이맥스 패키지 하나가 오히려 이 모든걸 다 처리한다면 개발을 잘못하고 있는셈이겠죠.
마지막으로 에디터의 선택은 결국 마지막에는 취향문제더군요. 전 에디터 플레임이 일어나면 일단 이맥스 가지고 트롤링(?) 혹 약장사를 하다가 결론은 별거 없다로 끝나곤 합니다 ㅋㅋ 뭐 그리고 꼭 리스퍼는 이맥스를 써야한다는 프레임도 이제 리스퍼가 되어서 다시 생각해보면 결국 약파는 소리이고, 그냥 이제 익숙해졌고 편해서 쓰는것이지 더 좋은게 나오기만(?)한다면 리스퍼의 성지가 또 다른 시스템으로 이동할수도 있겠지요.
--
이 메일은 Google 그룹스 'Korean Clojure User Group' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 clojure-kr+...@googlegroups.com에 이메일을 보내세요.
이 그룹에 게시하려면 cloju...@googlegroups.com에 이메일을 보내세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/clojure-kr/7f599ffe-6ac1-4364-9115-06ba15eeb003%40googlegroups.com을(를) 방문하세요.
아웅 JAVA & Spring 코딩도 그렇고 Clojure 도 그렇고 이젠 정말 IntellJ 로 이사 가야할 듯 하네요.
Emacs 는.. 제겐 안드로메다급이라서 GG
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/clojure-kr/800725d5-e3a3-4973-8ef2-185f8bc5db96%40googlegroups.com을(를) 방문하세요.