1P by GN⁺ 5시간전 | ★ favorite | 댓글 1개
  • Clojure가 글로벌 핀테크들의 인프라 언어로 성장한 과정을 다룬 1시간짜리 공식 다큐멘터리 영상 공개
  • Clojure의 독특한 기원가치 중심적인 커뮤니티, 소프트웨어 사고방식에 미친 영향을 추적하여 소개
  • 유튜브 링크: 한 프로그래머의 펫 프로젝트가 소프트웨어에 대한 우리의 생각을 어떻게 바꾸었는가
  • 쇼노트에는 Clojure의 기반이 된 핵심 논문, 서적, 강연, 기업 사례가 정리되어 있음
  • Clojure, ClojureScript, ClojureCLR 등 런타임과 Babashka, Jank, ClojureDart 같은 확장 프로젝트도 함께 소개
  • 공식 페이지는 AI 도구, 데이터 사이언스, 에디터 통합, 커뮤니티 채널까지 아우르는 Clojure 생태계의 종합 허브 역할

다큐멘터리 개요

  • Clojure 다큐멘터리는 Rich Hickey의 2년간의 안식년과 한 고집스러운 아이디어에서 출발해, 세계 최대 핀테크 기업 중 하나의 엔지니어링 스택을 구동하게 된 과정을 다룸
  • Rich Hickey, Alex Miller, Stuart Halloway 등 주요 인물이 등장하며, Clojure의 비전통적 기원, 가치 중심 커뮤니티, 그리고 소프트웨어 사고방식에 미친 영향을 탐구
  • 다큐멘터리는 Nubank의 후원으로 제작됨

쇼 노트

  • 기초 연구 논문

    • Out of the Tarpit (2006) — Ben Moseley & Peter Marks, 소프트웨어의 가변 상태가 우발적 복잡성의 주요 원인임을 지적
    • Ideal Hash Trees — Phil Bagwell, Hash Array Mapped Tries (HAMTs) 연구로 Clojure의 영속적 데이터 구조에 직접적 영감 제공
    • Composable Memory Transactions (2005) — Tim Harris 외, 소프트웨어 트랜잭셔널 메모리(STM) 개념 제시로 Clojure의 동시성 모델에 영향
    • Paper Bibliography — Rich Hickey가 Clojure 개발 시 참고한 논문 목록, Michael Fogus가 정리
  • 영향력 있는 서적

    • On Lisp — Paul Graham, 고급 Lisp 기법을 다룬 대표 저서, 온라인 무료 제공
    • Programming Clojure (4th ed.) — Alex Miller, Stuart Halloway, Aaron Bedra 공저, 1판은 Clojure 1.0과 함께 출간
    • The Joy of Clojure — Michael Fogus & Chris Houser 저
  • Rich Hickey의 주요 강연

    • Simple Made Easy (2011) — "simple"과 "easy"의 차이를 정의한 대표 강연
    • Clojure at LispNYC (2007) — Clojure의 첫 공개 발표
    • Are We There Yet? (2009) — Clojure의 상태 모델과 프로그래밍에서의 시간 개념 분석
    • Hammock Driven Development (2010) — 코드를 작성하기 전 문제를 깊이 사고하는 접근 강조
    • The Value of Values (2012)불변 값(immutable values) 의 중요성 강조
    • Writing Datomic in Clojure (2012) — Datomic을 Clojure로 작성한 이유 설명
    • Effective Programs - 10 Years of Clojure (2017) — Clojure 10년의 발전과 실제 문제 해결 중심의 기능 우선순위 회고
    • Talk Transcripts — Rich Hickey 및 커뮤니티 강연의 기록 보관소
    • Rich Hickey Talks — Rich의 강연 영상 모음 재생목록
  • Paul Graham의 에세이

  • 주요 기업 및 프로젝트

    • Cognitect — 오랜 기간 Clojure를 관리한 컨설팅 회사
    • Nubank — 세계 최대 독립 디지털 은행으로, Clojure와 Datomic으로 핵심 인프라 운영, 2020년 Cognitect 인수 후 Clojure 개발 주도
    • Datomic불변 사실(immutable facts) 기반 분산 데이터베이스, Rich Hickey와 Cognitect가 설계
  • 커뮤니티 및 아카이브 자료

    • Java.next Blog Series (2008) — JVM 언어 동향을 다룬 Stuart Halloway의 블로그 시리즈
    • Clojure IRC Log Archive — 초기 Clojure IRC 채널의 보존 기록
    • Clojure Etiquette — Rich의 메일링 리스트 글에서 유래한 커뮤니티 예절 지침

Clojure 방언 및 런타임

  • 핵심

    • Clojure — JVM에서 실행, 공식 시작 가이드 및 무료 입문서 Brave Clojure 제공
    • ClojureScript — JavaScript로 컴파일되어 Reagent, Re-frame 등 프론트엔드 라이브러리 지원
    • ClojureCLR — .NET CLR에서 실행되는 Clojure
  • 확장

    • Babashka — JVM 시작 시간 없이 빠른 스크립팅 지원
    • Jank — LLVM을 대상으로 하는 네이티브 컴파일러
    • ClojureDart — Flutter 기반 모바일 앱 개발용
    • Squint / Cherry — ES 모듈로 컴파일되는 ClojureScript 변형
    • Other Clojure-like projects — 기타 유사 프로젝트 목록 제공
  • 데이터 사이언스

    • libpython-clj — Clojure에서 NumPy, pandas, scikit-learn 등 Python 라이브러리 직접 호출
    • NojSciCloj가 개발한 Clojure 네이티브 데이터 사이언스 툴킷, 데이터프레임·시각화·머신러닝 통합
    • Tablecloth — Python 연동과 Clojure 데이터프레임 결합
  • Clojure와 AI

    • ECA (Editor Code Assistant) — 코드 편집 보조 도구
    • Backseat Driver — Copilot용 Clojure 도구
    • ClojureMCP — Claude, Codex, Gemini 등 AI 어시스턴트와 REPL 연결하는 MCP 서버
    • MCP-nREPL — Babashka 기반 최소 MCP 서버, 코딩 에이전트의 nREPL 접근 제공
    • clojure-mcp-light — LLM 코딩 어시스턴트용 경량 CLI 도구
    • #ai-assisted-coding (Clojurians Slack) — AI와 Clojure 개발 관련 활발한 커뮤니티 채널

시작하기

  • 전체 체험 — macOS, Linux, Windows용 설치 영상이 포함된 공식 가이드 제공, VS Code의 Calva 사용
  • 가장 빠른 경로Babashka 설치 후 즉시 스크립팅 가능, JVM 설정 불필요
  • 웹/프론트엔드ClojureScript + Shadow CLJS로 시작
  • 모바일 앱ClojureDart로 Flutter 앱 개발
  • Python 사용자libpython-clj로 Python 라이브러리 직접 호출
  • 에디터Calva는 VS Code에서 REPL, 구조적 편집, AI 통합(Backseat Driver) 지원, 에디터 가이드 참고

용어집

  • Lisp — 괄호로 둘러싸인 중첩 리스트 형태로 코드를 표현하는 언어 계열, Clojure는 Lisp의 방언
  • REPL — Read-Eval-Print Loop, 표현식을 읽고 평가 후 결과를 출력하는 대화형 세션
  • 함수형 프로그래밍 — 가변 상태와 부작용을 최소화하고 함수 중심으로 구성된 프로그래밍 방식
  • 값(Value) — 생성 후 변경되지 않는 데이터, Clojure는 기본적으로 불변 값을 사용
  • 영속적 데이터 구조(Persistent Data Structure) — 수정 시 이전 버전을 보존하는 컬렉션, 버전 보존 의미의 "persistent"
  • 우발적 복잡성(Accidental Complexity) — 문제 자체가 아닌 도구나 설계 선택으로 인한 복잡성
  • STM (Software Transactional Memory) — 락 대신 트랜잭션으로 공유 상태 변경을 조정하는 동시성 모델
  • 호스티드 언어(Hosted Language) — 자체 런타임 대신 기존 플랫폼 위에서 실행되는 언어, Clojure는 JVM, ClojureScript는 JS, ClojureCLR은 .NET에서 동작

Clojure 팔로우 및 커뮤니티

  • YouTube, Reddit, Slack, LinkedIn 등 공식 채널 운영
  • Clojure/Conj Conference 2026 — 2026년 9월 30일부터 10월 2일까지 미국 노스캐롤라이나 샬럿에서 개최 예정
Hacker News 의견들
  • Clojure는 내 커리어에서 일어난 가장 좋은 일이었음
    이 언어 덕분에 연봉이 두 배로 올랐고, 더 안정적인 산업으로 이직할 수 있었음
    Heart of Clojure 컨퍼런스의 포용적 분위기는 정말 놀라웠음. 지금도 커뮤니티는 활발하고, 특히 저수준 작업을 위한 Clojure 방언을 만드는 Jank 커뮤니티의 열정이 인상적임
    문제는 대부분의 기업이 언어의 안정성이나 진정성보다 개발자 교체 용이성을 중시한다는 점임. 결국 품질이 떨어지고, AI로 대체하려다 스스로 회사를 망치는 악순환을 만듦
    상업적으로 Clojure를 쓰면서 놀랐던 건, 많은 개발자들이 언어의 철학이나 Rich Hickey의 강연, REPL 사용법조차 모른다는 것임. 그럼에도 그들이 Clojure 코드베이스를 관리하는 위치에 있다는 게 의문이었음

    • 나도 그 부분이 계속 마음에 남음. Clojure 개발자 중에 REPL 대신 JVM 프로세스를 계속 재시작하는 사람이 너무 많음
      내가 Clojure로 옮긴 이유가 바로 짧은 피드백 루프였는데, 그걸 활용하지 않는다면 왜 이 언어를 쓰는지 모르겠음
  • Clojure 덕분에 지난 10년간 1인 창업자로서 지속 가능한 비즈니스를 운영할 수 있었음
    클라이언트와 서버가 대부분의 비즈니스 로직을 공유하니 복잡한 코드베이스도 관리가 쉬웠음
    무엇보다 언어와 환경이 안정성 중심이라, 다른 언어처럼 몇 년마다 발 밑이 흔들리는 일이 없었음
    Clojure는 새롭거나 반짝이는 언어는 아니지만, 장기적으로 믿을 수 있는 동반자

  • 예전에는 매일 Clojure로 코드를 짰고, Clojure/Conj에서 Rich Hickey와 저녁을 함께했던 기억이 있음
    내 첫 스타트업도 전부 Clojure로 만들었고, AWS가 서비스가 몇 개 없던 시절에 Clojure를 JS로 컴파일해 Lambda에서 돌렸던 초기 실험자였음
    지금도 관련 영상을 볼 생각에 설렘이 있음

    • 지금은 어떤 언어를 쓰고 있는지, Clojure에 대한 생각이 어떤지 궁금함
    • 전체적으로 지금은 Clojure를 어떻게 느끼는지 알고 싶음
  • 2013년부터 Clojure를 써왔고, 내 인생에 매우 긍정적인 영향을 준 언어임
    나는 다소 비정통적인 사용자로, 내 예술 작업 대부분이 Clojure로 만들어졌음
    스타트업을 운영할 때도 Clojure 덕분에 번아웃을 피할 수 있었음
    커뮤니티 활동도 큰 즐거움이었고, 수많은 사람들의 헌신에 감사함

    • 당신의 웹사이트가 정말 아름답고, 작업물도 인상적임
  • Clojure는 훌륭한 언어이자 생태계임
    초기에 Rich의 프로젝트에 기부했었고, 몇 년간 Clojure 개발로 돈을 벌었음
    지금은 자주 쓰진 않지만, 두 시간 전에도 예전 Clojure 책의 예제를 업데이트하면서 즐거웠음

    • 왜 지금은 Clojure를 덜 쓰게 되었는지 궁금함. 일자리 문제 때문인지?
      또 Clojure가 ML/AI 애플리케이션에 적합하다고 생각하는지, Python과의 interop이 좋은데도 왜 더 널리 쓰이지 않는지 궁금함
  • JVM 위에서 Clojure는 내가 가장 좋아하는 대안 언어
    Lisp의 전통을 이어받으면서도, JVM을 새로 만들겠다는 허황된 말 대신 호스트 플랫폼을 포용하는 철학이 매력적임

    • 예전엔 이 접근이 부담스러웠지만, 지금은 Clojure가 틈새 언어로 자리 잡은 이유 중 하나라고 생각함
      Zig도 비슷한 접근을 하는데, 이런 통합 철학이 채택률과 실용성을 높이는 핵심 포인트라고 느낌
  • 정말 훌륭함. 다만 borkdude가 포함되지 않은 게 아쉬움

    • 맞음, 유럽 쪽 인물이 빠진 게 아쉬움. Metosin, Juxt, Borkent, Gaiwan(Arne), Flexiana, Peter Strömberg(Calva), Dustin Getz(hyperfiddle/electric), Christophe Grand(ClojureDart), Bojidar(CIDER), Renzo 등 훌륭한 인물들이 많음
  • jwr의 “stable long-term companion” 표현이 마음에 남음
    내가 일했던 회사 중 새로움만 좇던 곳들은 결국 마이그레이션에 더 많은 시간을 썼음
    안정성은 지루하게 들리지만, 작은 팀이 오래 살아남는 유일한 방법임

  • Clojure를 즐겨 썼지만, 내가 하는 일 대부분이 C 언어와의 상호작용을 요구해서 주 언어로 쓰긴 어려웠음

    • Janet을 살펴보면 좋음. Clojure만큼 강력하진 않지만, 프로토타이핑과 스크립팅에는 훌륭함
    • Jank도 흥미로움. 아직 초기지만 C/C++ interop을 목표로 함
    • Coffi는 Java 22(Project Panama)의 C FFI 위에 구축되어, C와의 바인딩을 훨씬 재미있게 만들어줌
    • 나도 C/C++과 많이 상호작용하지만, 요즘은 Claude로 Project Panama 래퍼를 생성하고 그 위에 Clojure 레이어를 입히면 꽤 수월함
  • Datomic이 이제 라이선스 무료라는 걸 몰랐음. 예전엔 비용이 너무 높아서 쓰지 않았는데 흥미로움

    • 맞음, 그리고 Datomic은 여러 Clojure 기반 Datalog 데이터베이스에 영감을 줬음
      예: Datalevin, Datahike, Asami
      XTDB도 있지만 Datalog을 버리고 다른 방향으로 나아감
      비교 사이트도 있음: Clojurelog (조금 오래됨)