본문 바로가기

프로그래밍 언어 노트/Clojure

[Clojure/Luminus] Luminus + Intellij 시작 설정

Luminus 는 Clojure Fullstack Web framework 이며, 얕게 여러가지 프레임워크를 경험해본 결과, Luminus 가 제일 깔끔하고 자료도 많고 초보자한테는 딱 좋은 물건이다. 특히 Clojure + ClojureScript 환경의 Fullstack 템플릿이 아주 좋다

[기본 도큐먼트] 도 나름 충실하고, [예시 프로젝트] 도 많이 있다.

 

프로젝트 만들기

Clojure 의 필수툴인 개미핥기, 라이닝엔으로 새프로젝트를 만들수 있다.

나는 야근관련(...) 홈페이지를 만들기 위하여 yageun 이라는 프로젝트에 re-frame 을 추가하였다.

lein new luminus <프로젝트명> +추가 종속성들..

luminus 의 장점중 하나가 풍부한 추가 프로파일들이다. 본인경우 ClojureScript 를 추가로 사용할겸 re-frame 을 추가하였다. (순수 ClojureScript 만 추가하고 싶으면 +cljs 하면된다)

Profiles 항목 이나 템플릿 Github 에서 다른 옵션들을 확인 할 수 있다.

 

프로젝트 시작하기

본인은 IDEA + Cursive 를 이용하여 Clojure 프로그래밍을 하므로, IDEA 프로젝트를 오픈한다.

lein run 을 하라고 친절하게 안내해주므로, 터미널에서 lein run 을 해주고, 3000 번 포트로 확인한다.

웹브라우저에서는 현재, ClojureScript 가 컴파일되지 않았으므로, lein figwheel 을 이용하여 컴파일 하라고 한다.

figwheel 은 컴파일말고도 장점이 많으므로 일단 다른 터미널에 lein figwheel 을 이용하여 실행시킨다.

figwheel 을 치고 실행을 대기하면 Luminus 초기페이지가 뜬다.

 

3000 번 포트인 이유는 dev-config.edn 에 그렇게 정의되어있기 때문이다.

서버포트는 3000, nrepl 포트는 7000이다. 참고로 figwheel 의 nrepl 포트는 기본 7002 이다.

 

REPL 사용하기

터미널에서 repl 을 이용해도 되지만, IDEA 와 빠르게 연동되는 REPL 이 필요하다.

위와 같이 Clojure REPL 을 설정한다. 아까 nREPL 포트가 7000 이었으므로, 7000을 설정한다. 이름은 뭐 아무거나..

위와 동일한 방식으로 7002 포트에 ClojureScript (Figwheel, Client) 의 Repl도 같이 설정한다.

 

실행버튼을 이용하여 두개 모두 실행시킨다.

 

일반 Clojure  repl 에서는 in-ns 로 바로 네임스페이스를 이동하고 사용이 가능하다.

(in-ns '네임스페이스)

 

ClojureScript 에서는 Clojure Script REPL 로 전환 해주어야 한다.

cljs

 

이제 Cursive + IDEA 와 함께 즐겁게 클로저 코딩을 하면 끗.

 

 

 

IDEA 에서 디버깅/빌드 설정

귀찮게 설정할필요없이 main 함수 옆에 버튼으로 config 를 자동으로 만들면된다 (그래봐야 namespace 설정이 끝)

당근빠따 JDK 는 설정되어있어야한다. (설정안되어있으면 어차피 에디터 맨위에서 계속 선택하라고 한다)

더 좋은 IDEA 설정법이 있을지도 모르지만, 우선 이정도면 나쁘지 않은듯.

728x90