에디터(Editors) 선택하기

에디터(Editors) 선택하기

Clojure는 대화형(interactive) 언어예요. 그래서 Clojure의 가장 좋은 경험을 얻으려면 코드 평가를 지원하는 에디터가 필요해요. 즉 연결된 REPL로 코드를 즉시 실행할 수 있어야 하고, 구조적 편집(structural editing) 도 지원해야 해요. 구조적 편집이란 코드 폼(form)을 텍스트가 아니라 데이터처럼 다루면서 편집하는 걸 말해요. 다행히 이런 기능을 갖춘 훌륭한 Clojure 에디터가 여럿 있고, 그 외에도 프로그래머를 위한 편의 기능을 많이 갖춘 에디터도 많아요.

참고로 아래에서 소개하는 에디터들은 대부분 활발하게 개발 중이에요. 그래서 여기 적힌 링크나 자료가 시간이 지나면 낡아 보일 수도 있는데요. 그럴 땐 언제든 질문을 올리거나 이슈를 남겨 주세요!

출처: Clojure 공식문서

본문

Emacs — 가장 인기 있고, 가장 자유롭게 꾸밀 수 있어요

Emacs는 지금도 활발히 쓰이는 편집기 중 가장 오래된 편집기 중 하나예요. Emacs는 그 자체의 Lisp 변형으로 확장이 가능한 플랫폼이라서, 원하는 거의 모든 기능을 만들 수 있죠. 다만 그만큼 뛰어난 확장성 덕분에 자기 취향대로 설정하는 일 자체가 하나의 작업이 될 수 있어요. 어떤 사람에게는 Emacs가 에디터라기보다 라이프스타일에 가깝기도 하고요. 그런데도 Clojure 개발자를 위한 친절한 시작점이 잘 마련돼 있고, Emacs 생태계를 흡수하는 속도는 여러분이 직접 고를 수 있어요.

Emacs에서 알아 두면 좋은 주요 모드는 이렇습니다.

  • clojure-mode — Clojure(Script)를 위한 주요 모드(major mode)로, 문법 하이라이팅(font-lock), 들여쓰기, 탐색, 리팩터링을 지원해요
  • CIDER — cider-mode라는 보조 모드(minor mode)로 Emacs에 Clojure 대화형 프로그래밍을 더해 줘요. clojure-mode를 보완하면서 대화형 지원을 제공하죠
  • inf-clojure — 유명한 inferior-lisp 패키지의 아이디어를 바탕으로, Clojure 서브프로세스(REPL)와의 기본적인 상호작용을 제공해요

시작하기 좋은 자료도 몇 가지 소개할게요.

  • GNU Emacs 다운로드·설치 — 공식 GNU Emacs 페이지예요
  • Practicalli의 Spacemacs 가이드 — Clojure를 위한 커뮤니티 기반 Emacs 설정으로, clojure-mode와 CIDER를 포함해요
  • Prelude — Emacs 입문자를 위한 설정이에요. Clojure 전용은 아니지만 Clojure 지원(clojure-mode, CIDER)이 들어 있죠
  • Aquamacs — Mac 기본 사용자를 염두에 둔 Emacs예요. inf-clojure 모드와 함께 쓰면 미니멀한 Clojure 환경으로 충분해요(참고: aquamacs-support를 함께 쓰는 걸 권장해요)

IntelliJ — Java 성향의 Clojure

IntelliJ IDEA는 다양한 언어와 도구를 지원하는 대표적인 '현대적' IDE 중 하나예요. IntelliJ는 정적 분석 플랫폼을 활용해 큰 규모의 Java 코드베이스에서 뛰어난 탐색과 리팩터링을 제공하는 세련된 Java 에디터로 이름을 알렸죠. JVM 개발용 IntelliJ IDEA Community Edition은 무료로 다운로드할 수 있어요.

IntelliJ에서 Clojure 개발을 가능하게 해 주는 중요한 플러그인이 두 개 있어요.

  • Cursive — 완전한 기능을 갖춘 Clojure 개발 환경이에요
  • clojure-extras — 인라인 평가 결과나 clj-kondo를 통한 린팅 같은 추가 기능을 통합해 줘요

이미 Java에 익숙하거나, Clojure와 Java가 섞인 프로젝트에서 작업할 예정이라면 Cursive가 잘 맞는 선택이에요.

VS Code — 빠르게 발전하고, 초보자에게 친절해요

Visual Studio Code는 여러 언어에서 사용이 빠르게 늘고 있는데, Clojure도 예외가 아니에요.

Calva 환경은 대화형 Clojure 개발을 위해 정적 분석과 동적 분석을 함께 활용해 폭넓은 언어 지원을 제공해요. 게다가 Calva는 초보자가 쉽게 시작하도록 Getting Started 경험을 특별히 신경 썼는데요, 이건 설치 없이 브라우저에서 바로 돌아가는 버전이에요.

Vim — 매우 효율적인 텍스트 편집

Vim(또는 vi)도 오랜 역사를 가진 에디터로, 텍스트를 빠르고 효율적으로 편집하는 능력으로 유명해요. Vim은 원래 Unix 비주얼 편집기였던 vi의 사실상 표준 후속작이 됐죠.

Vim만의 강력하고 독특한 UI는 워낙 인기가 많아서, 위에서 소개한 대부분의 에디터에는 Vim의 핵심 UI 기능을 재현한 vi 모드가 들어 있어요.

Neovim은 Vim의 포크(fork)예요. 호환성은 상당히 유지하지만, 두 편집기 사이에는 꽤 중요한 차이점도 있어요.

Vim과 Neovim 모두 확장성이 뛰어나고 방대한 플러그인이 있어요. 대부분은 두 편집기에서 함께 쓰이지만, 전부 그런 건 아니죠.

다음 플러그인들은 Vim과 Neovim 양쪽 모두에서 Clojure를 지원해요.

  • Fireplace — Clojure 지원과 REPL 통합을 제공해요
  • vim-iced — CIDER에서 영감을 받았어요
  • vim-slamhound — 네임스페이스 재작성을 자동화해 줘요

다음 플러그인들은 Neovim에서만 Clojure를 지원해요.

  • Conjure — 대화형 개발에 초점을 맞춰요

Clojure 플러그인 외에도, s-expression 편집을 더 잘하기 위해 Vim을 확장하는 것도 추천드려요. 아래 플러그인들은 Vim과 Neovim 양쪽에서 모두 쓸 수 있어요.

그 외에도 괄호의 색을 맞춰 주는 수많은 플러그인도 있어요.

그 외의 에디터들

이 밖에도 다른 환경들이 있긴 한데요, 그중 상당수는 덜 활발하거나 덜 쓰이고 있어요. 다른 아이디어는 Tools 페이지를 참고해 보세요.

더 알아보기