모조 컴파일러 오픈소스, 기여는 아직 막혀 있다

소스는 다 열렸는데, 고칠 수는 없다
모조는 1.0까지 오는 동안 커뮤니티 풀 리퀘스트 1,100건을 받았다. 기여자는 약 200명, 바뀐 코드는 20만 줄이 넘는다. 모듈러가 1.0을 발표하며 직접 밝힌 숫자다.
그런데 어제 공개된 컴파일러 폴더에 낼 수 있는 풀 리퀘스트는 0건이다.
같은 리포지터리 안내문에 이렇게 적혀 있다. “We aren’t accepting contributions to the Mojo compiler yet.” 아직 컴파일러 기여는 받지 않는다는 뜻이다.
2026년 8월 18일, 모듈러가 모조(Mojo) 컴파일러의 소스 코드를 공개했다. 4년 동안 닫혀 있던 물건이다. 라이선스는 아파치 2.0에 LLVM 예외 조항이 붙은 것으로, 상업적으로 써도 되는 대표적인 오픈소스 라이선스다.
그런데 소스를 볼 수 있고 고쳐서 쓸 수도 있는데, 고친 걸 본가에 돌려보내는 경로만 아직 안 열려 있다.
이 글은 이런 사람을 위한 것이다. 모조라는 이름을 오늘 처음 들었거나, 들어는 봤는데 “그거 파이썬 비슷한 거 아냐?” 정도로만 아는 사람. 그리고 “오픈소스가 됐다”는 소식을 보고 지금 뭘 해도 되는지, 뭘 아직 못 하는지 구분하고 싶은 사람.
공식 발표문과 깃허브 리포지터리, 공식 FAQ를 직접 확인한 내용만 쓴다.
모조가 뭔지부터 (오늘 처음 들었다면)
모조는 AI 프로그램을 빠르게 돌리려고 만든 프로그래밍 언어다. 2023년에 처음 나왔다.
만든 사람이 크리스 래트너(Chris Lattner)다. 애플의 스위프트(Swift) 언어를 만들고, 그 전에는 LLVM이라는 컴파일러 기반 기술을 만든 사람이다. LLVM은 지금 스위프트·러스트·클랭 같은 언어들이 전부 깔고 앉아 있는 바닥이다.
모조가 노리는 자리는 이렇다.
지금 AI 개발은 대부분 파이썬으로 한다. 파이썬은 쓰기 쉽지만 느리다. 그래서 실제로 계산이 무거운 부분은 파이썬이 아니라 C++이나 CUDA로 짠 코드를 파이썬이 불러 쓰는 구조가 됐다. 코드 한 덩어리 안에 언어가 두 개 있는 셈이다.
모조는 그 두 개를 하나로 합치려는 시도다. 문법은 파이썬처럼 읽히는데, 컴파일하면 C++급 속도가 나오게 하는 것이 목표다.
주의할 점 하나. 모조는 파이썬의 상위 집합(superset)이 아니다. 공식 FAQ가 그렇게 말하지 않는다. 기존 파이썬 코드를 그대로 가져다 돌리는 물건이 아니라, “파이썬 개발자를 위한 차이점 안내”를 따로 읽어야 하는 다른 언어다. 대신 파이썬 바인딩을 만들어 프로젝트를 조금씩 옮겨 가는 방식은 지원한다.
돌아가는 곳은 맥과 리눅스다. 윈도우는 WSL(윈도우 안에서 리눅스를 돌리는 기능)을 통해서만 쓸 수 있다.
C 언어로 짠 코드와는 FFI를 통해 서로 부를 수 있고, C++은 extern "C"로 노출한 부분까지만 된다.
어제 정확히 무엇이 열렸나
공식 발표문의 핵심 문장은 이렇다.
“The source code for the Mojo compiler, tooling, and everything else you need to build the language are now available.” (모조 컴파일러와 도구, 그리고 언어를 빌드하는 데 필요한 나머지 전부의 소스 코드를 지금 받을 수 있다.)
받는 곳은 github.com/modular/modular 하나다. 별(star)은 2만 6,900개가 찍혀 있다.
리포지터리 안에서 어디에 무엇이 있는지 공식 README가 적어 둔 대로 옮기면 이렇다.
| 경로 | 내용 |
|---|---|
/KGEN |
모조 컴파일러 — 어제 새로 열린 부분 |
/mojo/stdlib |
모조 표준 라이브러리 — 2024년부터 열려 있었다 |
/max/kernels |
MAX 가속기 라이브러리 |
/max/python/max/serve |
MAX 추론 서버 (OpenAI 호환 엔드포인트 제공) |
/max/python/max/pipelines |
MAX 모델 파이프라인 (파이썬 그래프 도구) |
/mojo/examples, /max/examples |
예제 코드 |
컴파일러가 KGEN이라는 폴더 이름으로 들어가 있다. 소스를 받아 직접 빌드해 돌려 보는 명령도 발표문에 그대로 나와 있다.
./bazelw run --config=build-mojo KGEN:mojo -- run hello.mojo
빌드 방식은 두 가지를 고를 수 있다.
--config=build-mojo— 전부 소스에서 컴파일한다. 시간이 오래 걸리지만 내가 고친 컴파일러로 돌아간다.--config=prebuilt-mojo— 나이틀리 바이너리를 내려받아 쓴다. 빠르게 써 보기만 할 때.
이 명령 한 줄을 뜯어보면
위 명령이 짧아 보이지만 안에 정보가 꽤 들어 있다.
./bazelw는 이 프로젝트가 **바젤(Bazel)**이라는 빌드 도구를 쓴다는 뜻이다. 구글이 만든 도구로, 수백만 줄짜리 저장소 하나를 통째로 관리할 때 쓴다. 앞에 붙은 w는 래퍼(wrapper)라는 뜻이라, 바젤을 미리 깔아 두지 않아도 스크립트가 알아서 맞는 버전을 가져온다.
KGEN:mojo는 “KGEN 폴더 안의 mojo라는 빌드 대상”을 가리킨다. 즉 컴파일러 폴더에서 모조 실행 파일을 만들라는 지시다.
-- run hello.mojo는 방금 만든 그 실행 파일에 넘기는 인자다. 갓 빌드한 컴파일러로 hello.mojo를 바로 돌려 본다.
한 줄로 “컴파일러를 소스에서 빌드하고, 그걸로 코드를 실행”까지 간다. 어제 이전에는 이 명령의 앞부분이 성립하지 않았다. 빌드할 소스가 없었기 때문이다.
또 하나 짚어 둘 것은 모조와 MAX가 같은 저장소에 들어 있다는 점이다. 언어와 추론 스택을 따로 관리하지 않고 하나로 묶어 둔 구조라, 컴파일러를 고치면 그 위에 얹힌 커널·모델 파이프라인까지 같은 커밋에서 함께 검증할 수 있다. 대신 소스를 받는 쪽 입장에서는 “언어만 필요한데 왜 추론 서버까지 따라오나” 싶을 만큼 덩치가 크다.
라이선스는 아파치 라이선스 2.0에 LLVM 예외 조항이 붙은 것이다. LLVM 예외는 쉽게 말하면 “컴파일러가 만들어 낸 결과물(내 프로그램)에까지 라이선스 고지 의무를 옮기지 않는다”는 조항이다. 컴파일러 계열 프로젝트가 흔히 붙인다. 이게 붙어 있어야 상업 제품을 컴파일해도 마음이 편하다.
4년 동안 무엇이 닫혀 있었나
모듈러 발표문의 표현을 그대로 옮기면, 모조는 그동안 **“열린 커뮤니티와 닫힌 컴파일러”**로 개발돼 왔다. 4년간 그랬다.
시간 순으로 정리하면 이렇다.
| 시점 | 일어난 일 |
|---|---|
| 2023년 | 모조 첫 공개. 컴파일러·표준 라이브러리 모두 비공개 |
| 2024년 | 표준 라이브러리만 아파치 2.0으로 공개, 외부 기여 수용 시작 |
| 2026년 8월 11일 | 모조 1.0 출시 (모듈러 26.5). 컴파일러는 여전히 비공개 |
| 2026년 8월 18일 | 컴파일러·툴체인 소스 공개. 기여는 아직 안 받음 |
1.0과 소스 공개 사이가 딱 일주일이다.
이 순서가 우연이 아니다. 8월 11일 1.0 발표문에서 모듈러가 두 가지를 동시에 약속했다. 하나는 “1.x 기간 동안 변경은 주로 추가적(additive)일 것이고, 파괴적 변경이 필요하면 C++ 같은 성숙한 언어가 하는 방식으로 신중하게 관리하겠다”는 것. 다른 하나는 “우리 약속은 그대로다 — 2026년 안에 모조 컴파일러와 툴체인을 오픈소스로 공개한다”는 것이었다.
언어 문법을 먼저 얼린 다음에 소스를 열었다. 순서가 반대였다면 매주 문법이 바뀌는 물건의 컴파일러 소스를 받아 놓고 아무것도 못 했을 것이다.
앞서 말한 커뮤니티 숫자도 이 1.0 발표문에 나온 것이다. 기여자 약 200명, 풀 리퀘스트 1,100건 이상, 코드 변경 20만 줄 이상, 이슈를 올린 커뮤니티 구성원 1,000명 이상. 전부 표준 라이브러리와 그 주변에서 나온 숫자다. 컴파일러는 그 밖에 있었다.
열린 것과 안 열린 것을 갈라 보면
“오픈소스가 됐다”는 한 문장에 실제로는 세 가지 층이 섞여 있다. 갈라 놓으면 이렇다.
| 소스를 볼 수 있나 | 고쳐 쓸 수 있나 | 고친 걸 본가에 보낼 수 있나 | |
|---|---|---|---|
| 모조 표준 라이브러리 | ○ (2024~) | ○ | ○ |
모조 컴파일러 (/KGEN) |
○ (2026-08-18~) | ○ | × — 아직 |
| MAX 가속기 라이브러리·모델 아키텍처 | ○ | ○ | ○ |
| MAX 자체 (배포·사용 조건) | ○ | 조건부 | 별도 라이선스 |
세 번째 열이 이번 소식의 진짜 내용이다.
아파치 2.0으로 공개됐으니 법적으로는 지금 당장 소스를 받아 고치고, 고친 걸 배포하고, 이름을 바꿔 포크를 만들어도 된다. 라이선스가 막지 않는다.
막혀 있는 건 법이 아니라 운영이다. 모듈러가 “컴파일러 기여는 아직 안 받는다”고 못박아 뒀고, 언제 열 것인지도 발표문에 적어 뒀다 — 올해 안이다.
아파치 2.0이라 지금 당장 되는 것
기여 경로가 닫혀 있다고 해서 손을 못 대는 건 아니다. 라이선스가 아파치 2.0이라는 사실이 실제로 보장하는 게 꽤 많다.
- 포크해도 된다. 소스를 받아 이름을 바꾸고 내 저장소에 올려 따로 발전시켜도 라이선스 위반이 아니다.
- 고쳐서 배포해도 된다. 사내에서 쓰려고 컴파일러를 손본 다음, 그 컴파일러를 팀에 배포하는 것도 된다. 고친 내용을 공개할 의무도 없다(아파치 2.0은 GPL 계열의 소스 공개 의무가 없다).
- 상업적으로 써도 된다. 이 컴파일러로 만든 제품을 팔아도 로열티가 없다.
- 특허 사용권이 따라온다. 아파치 2.0에는 기여자가 자기 특허 사용을 허락하는 조항이 들어 있다. 회사 법무팀이 신경 쓰는 부분이다.
- LLVM 예외 덕에 결과물이 자유롭다. 이 조항이 없으면 “이 컴파일러로 컴파일한 내 프로그램에도 고지 의무가 붙느냐”는 논쟁이 생긴다. 예외 조항이 그 고리를 끊는다.
지켜야 할 것은 저작권·라이선스 고지를 남기고, 파일을 고쳤으면 고쳤다고 표시하고, 모듈러의 상표를 마음대로 갖다 쓰지 않는 정도다.
그러니 “기여를 못 받는다”는 제약은 밖에서 안으로 들어가는 방향에만 걸린다. 안에서 밖으로 나오는 방향, 즉 받아서 쓰고 고치고 퍼뜨리는 쪽은 전부 열려 있다.
왜 바로 안 받는 걸까
발표문이 이유를 길게 설명하진 않는다. 다만 상황을 보면 짐작할 만한 구석은 있다.
컴파일러는 표준 라이브러리와 성격이 다르다. 표준 라이브러리는 “리스트에 메서드 하나 추가” 같은 기여가 성립하지만, 컴파일러는 한 줄을 고치면 그 언어로 짠 세상의 모든 코드가 영향을 받는다. 리뷰 체계와 테스트 인프라를 먼저 세우지 않으면 받는 쪽이 감당을 못 한다.
그래서 지금 상태를 정확히 부르면 **“소스 공개(source available)를 넘어 오픈소스 라이선스까지 갔지만, 개발 프로세스는 아직 사내”**다. 흔한 중간 단계이고, 리눅스 커널처럼 처음부터 열려 자란 프로젝트와는 다른 경로다.
MAX는 아직 라이선스가 다르다
여기서 헷갈리기 쉬운 부분이 하나 더 있다.
모듈러가 파는 물건은 언어 하나가 아니다. **모조(언어)**와 **MAX(AI 모델을 실제로 돌리는 추론 스택)**가 같은 리포지터리에 들어 있다. 그런데 라이선스가 갈린다.
- 모조 관련 코드 — 아파치 2.0 + LLVM 예외
- MAX — Modular Community License라는 자체 라이선스
Modular Community License는 아파치 2.0이 아니다. 내용을 확인해 보면 이렇다.
되는 것: 영구·전 세계·비독점·무상 라이선스로 복제하고 파생물을 만들 수 있다. 오브젝트 코드 형태로 배포·서브라이선스도 된다. 애플리케이션에 MAX 구성요소를 함께 배포하는 것도 된다.
안 되는 것:
- MAX를 AI 학습 데이터·파인튜닝 데이터·입력으로 써서 MAX를 재구현하거나 대체하는 소프트웨어를 만드는 것
- 모듈러가 승인·보증했다고 오해하게 표시하는 것
- MAX에 포함된 기능 말고 실질적인 추가 기능이 없는 애플리케이션으로 내놓는 것
- 저작권·라이선스 고지를 빼는 것
최근에 풀린 것: 예전 라이선스에는 “x86·ARM·엔비디아를 제외한 가속기는 프로덕션에서 8개까지”라는 상한이 있었고, 커스텀 하드웨어는 서면 승인이 필요했다. 이 제한이 없어졌다. 매출 상한이나 별도 상업 이용 조건도 지금은 없다.
정리하면 언어는 아파치 2.0으로 완전히 넘어갔고, 추론 스택은 여전히 모듈러의 조건 아래 있다. “모조가 오픈소스가 됐다”와 “모듈러 플랫폼이 전부 오픈소스가 됐다”는 다른 말이다.
지금 직접 해 볼 수 있는 것
오늘 처음 듣는 사람 기준으로, 순서대로 적는다.
1) 그냥 써 보기만 할 거라면 소스는 필요 없다. 모조는 이전부터 무료로 설치해 쓸 수 있었다. 어제 바뀐 건 “쓸 수 있느냐”가 아니라 “안을 볼 수 있느냐”다. 맥이나 리눅스면 바로 되고, 윈도우면 WSL을 먼저 켜야 한다.
2) 안을 뜯어보고 싶다면 리포지터리를 받아 --config=prebuilt-mojo로 먼저 돌려 본다. 나이틀리 바이너리를 내려받아 쓰기 때문에 전체 빌드를 기다리지 않아도 된다. 컴파일러를 실제로 고쳐 볼 때만 --config=build-mojo로 넘어가면 된다.
3) 기여를 하고 싶다면 지금은 /KGEN 말고 다른 곳이다. 표준 라이브러리, MAX 가속기 라이브러리, MAX 모델 아키텍처, 예제 코드, 모조 문서는 지금도 풀 리퀘스트를 받는다. 컴파일러만 대기 상태다.
4) 회사에서 도입을 검토 중이라면 갈라서 봐야 한다. 언어만 쓴다면 아파치 2.0이라 법무 검토가 가벼워졌다. MAX까지 얹어 서비스를 만들 거라면 Modular Community License를 따로 읽어야 한다. 특히 “MAX를 대체하는 물건을 만들지 말 것” 조항과 “실질적 추가 기능” 조항은 제품 성격에 따라 걸릴 수 있다.
이게 왜 뉴스인가
프로그래밍 언어에서 컴파일러가 닫혀 있다는 건 생각보다 무거운 제약이다.
컴파일러가 닫혀 있으면 회사가 사라지는 순간 언어도 같이 죽는다. 소스가 없으니 아무도 이어받을 수 없다. 그래서 신중한 조직일수록 “그 언어 컴파일러 오픈소스야?“를 먼저 묻는다. 모조는 3년 동안 그 질문에 “아직”이라고 답해야 했다.
또 하나는 하드웨어 확장이다. 공식 FAQ는 모조가 LLVM 수준의 dialect를 통해 하드웨어 타깃을 지원하며 “어떤 하드웨어 백엔드로든 확장하기 쉽다”고 적고, 추가 하드웨어 지원은 커뮤니티 기여를 기대한다고 말한다. 그런데 그 확장을 하려면 컴파일러 소스가 있어야 한다. 어제까지는 없었다.
그러니까 어제 열린 건 “코드 구경거리”가 아니라 모조가 모듈러 밖에서도 살 수 있는 조건이다. 다만 그 조건이 완성되려면 기여를 받는 문까지 열려야 하고, 그건 아직 남은 숙제다.
아직 확인되지 않은 것
발표문과 공식 문서에 없어서 이 글에 쓰지 않은 것들도 적어 둔다. 어디까지가 확인된 사실인지 알아야 판단이 선다.
- 성능 수치가 없다. 8월 11일 1.0 발표문에도, 어제 소스 공개 발표문에도 벤치마크 숫자는 나오지 않았다. “파이썬 문법에 C++급 속도”는 모조가 내건 목표를 옮긴 것이지, 이번 발표에서 새로 제시된 측정값이 아니다.
- 기여를 받는 정확한 날짜가 없다. “올해 안(by the end of this year)“이 전부다. 어떤 형태로 받을지, 리뷰는 누가 할지도 아직 적혀 있지 않다.
- 컴파일러 코드의 규모가 공개되지 않았다. “수십만 줄의 커널 코드”라는 표현은 함께 공개된 커널 쪽 이야기이고, 컴파일러 자체가 몇 줄인지는 발표문에 없다.
- MAX의 나머지 부분이 언제 어떻게 되는지도 없다. 이번 발표는 모조 컴파일러와 툴체인에 관한 것이고, MAX 라이선스를 바꾸겠다는 말은 없었다.
정리
- 2026년 8월 18일, 모조 컴파일러 소스가 아파치 2.0(LLVM 예외)으로 공개됐다. 4년 만이고, 위치는
github.com/modular/modular의/KGEN이다. - 다만 컴파일러 기여는 아직 받지 않는다. 모듈러가 목표로 밝힌 시점은 올해 안이다.
- 표준 라이브러리는 2024년부터 열려 있었고, 1.0까지 오는 동안 기여자 약 200명이 풀 리퀘스트 1,100건을 넣었다. 컴파일러에는 그 경로가 이제 막 반쯤 열렸다.
- 순서가 중요하다. 8월 11일에 1.0으로 문법을 먼저 얼리고(1.x 동안 변경은 주로 추가적), 일주일 뒤에 소스를 열었다.
- MAX는 별개다. Modular Community License가 적용되고, 재구현 금지·실질적 추가 기능 요구 같은 조건이 붙는다. 대신 예전의 가속기 8개 상한은 없어졌다.
- 오늘 할 일: 써 보는 데는 소스가 필요 없다. 안을 보려면
--config=prebuilt-mojo로 시작하고, 기여하려면 지금은 표준 라이브러리 쪽으로 간다.
모조 컴파일러를 실제로 뜯어볼 생각이라면, 지금은 “고쳐서 보내는 사람”이 아니라 “읽고 포크하는 사람”의 시간이다. 문이 완전히 열리는 건 올해 안이라고 적혀 있다.