Skip to content
industry insights

Mojo 1.0: C보다 빠르지만, 결함이 있는가?

Mojo는 Python의 단순함과 C++의 원시적 속도라는 불가능한 약속을 내걸었습니다. 하지만 1.0 오픈 소스 릴리스는 개발자들이 반드시 확인해야 할 안정성 위기와 의문스러운 벤치마크를 숨기고 있습니다.

Cassidy Wolfe
Mojo 1.0: C보다 빠르지만, 결함이 있는가?

Python의 속도 문제, 해결되었는가?

Python은 빠른 개발을 위해 최고로 군림하지만, 성능은 여전히 아킬레스건으로 남아 있습니다. 데이터 과학자와 ML 엔지니어들은 일상적으로 Python으로 프로젝트를 시작하지만, 원시적인 속도가 중요해지는 순간 한계에 부딪힙니다. 이는 중요한 구성 요소를 C++나 CUDA로 다시 작성해야 하는 취약한 이중 언어 시스템을 강제하며, 별도의 코드베이스가 불가피하게 분리되면서 유지 관리의 골칫거리를 야기합니다.

Mojo는 이러한 근본적인 딜레마를 해결하겠다고 약속합니다. 핵심 비전은 CPU와 GPU 모두에서 고성능으로 컴파일되는 단일 Python-like language입니다. 이는 전체 개발 워크플로우를 통합하여, 실행 대상에 따라 패러다임이나 언어를 전환할 필요를 없애줍니다. 이는 C 수준의 속도와 Python의 유명한 개발자 경험을 제공하겠다는 대담한 주장입니다.

가장 설득력 있는 증거는 빠르게 나타납니다. 표준 MacBook에서 Mojo의 기능을 시연하는 것은 매우 간단하고 읽기 쉬운 코드로 작동하는 GPU 커널을 컴파일하는 것을 포함합니다. 이는 이론적인 것이 아닙니다. 이 언어는 Metal, Swift, CUDA에 의존하지 않고 숫자 쌍을 더하는 GPU 가속 함수를 실행합니다. 이는 진정으로 통합된 고성능 Python 슈퍼셋이라는 약속을 입증하는 가시적인 '마법의 순간'입니다.

68,000배 속도 신화의 해체

바이럴 마케팅의 과대광고는 잊으십시오. Mojo의 초기 35,000배 또는 심지어 68,000배 속도 향상 주장은 기껏해야 오해의 소지가 있고, 최악의 경우 부정직합니다. 이러한 천문학적인 수치는 완전히 벡터화되고 병렬화된 Mojo 코드와 터무니없이 순진한 삼중 중첩 Python 루프를 비교한 결과에서 비롯되었습니다. 어떤 전문 개발자도 성능이 중요한 작업에 대해 이렇게 최적화되지 않은 Python 구현을 작성하지 않으므로, 이러한 비교는 무의미합니다.

M4 Pro에서 수행된 보다 현실적인 벤치마크는 더 명확한 그림을 보여줍니다. Mojo는 순수 Python보다 약 26.5배 빠름을 보여줍니다. 결정적으로, Python의 과학 컴퓨팅 스택의 기초가 되는 라이브러리인 NumPy보다 약 2배 더 빠르게 작동합니다. 이 차이는 매우 중요합니다. 26.5배는 인상적이지만, 처음에 선전했던 신화적인 수치는 아닙니다.

NumPy를 능가하는 것이 Mojo의 진정한 헤드라인입니다. NumPy 자체는 핵심 작업을 위해 고도로 최적화된 컴파일된 C 코드에 의존합니다. Mojo는 단순히 Python을 이기는 것이 아니라, 검증된 C를 능가하고 있습니다. 이는 Mojo가 우수한 메모리 관리와 정교한 컴파일러 최적화를 통해 고도로 튜닝된 레거시 코드조차 뛰어넘는 성능을 달성했음을 시사합니다.

Qualcomm, 오픈 소스, 그리고 의심스러운 타이밍

매우 이례적이고 압축된 타임라인이 Mojo의 최근 이정표를 흐리게 하며 즉각적인 조사를 요구합니다. Qualcomm은 7월 29일에 Modular 인수를 완료했습니다. 불과 2주 후인 8월 11일에 Mojo 1.0이 출시되었는데, 핵심 컴파일러는 눈에 띄게 비공개 소스로 유지되었습니다. 그러고 나서 불과 7일 후인 8월 18일에 컴파일러가 갑자기 오픈 소스로 전환되었습니다. 인수 후 이처럼 빠르게 연속적으로 일어난 사건들은 결코 일반적이지 않습니다.

이 의심스러운 타이밍에서 두 가지 극명하게 다른 이야기가 나옵니다. 이것은 Qualcomm이 Mojo의 빠른 채택을 공격적으로 추진하며 개발자들의 가장 큰 진입 장벽(독점적 성격)을 전략적으로 제거한 것일까요? 아니면 더 불길하게도, 이는 Modular의 혁신적인 기술이 곧 흡수되고, 거대 기업 아래에서 장기적인 궤적과 독립적인 미래가 매우 불확실해지는 대규모 기업 흡수의 초기 단계를 의미하는 것일까요?

Apache 2.0 라이선스로의 전환은 투명성 측면에서 부인할 수 없는 큰 성과이며 개발자 커뮤니티에서도 환영받고 있지만, 중요한 제약 사항이 남아 있습니다. Modular는 컴파일러에 대한 외부 기여를 아직 수락하지 않는다고 명시했습니다. 이러한 결정적인 제한으로 인해 소스 코드는 공개되어 있지만, 이 프로젝트는 진정한 커뮤니티 주도형이라기보다 사실상 source-available 상태에 머물러 있어, Mojo가 성공하기 위해 필요한 협업 개발을 저해하고 있습니다. 언어에 대한 자세한 내용은 Mojo에서 확인할 수 있습니다.

이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.

하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음

Mojo의 '안정적' 릴리스에 존재하는 41가지 결함

Mojo 1.0 릴리스는 안정성의 이정표로 선언되었지만, 명백한 모순과 함께 출시되었습니다. 이른바 "안정적"이라는 기반에는 int, print, len과 같은 기본적인 내장 함수를 포함하여 41개의 불안정한 API 경고가 포함되어 있었습니다. 메이저 버전 릴리스에서 핵심 언어 구성 요소를 불안정한 것으로 표시하는 것은 단순한 실수가 아니라, 안정성이라는 약속 자체를 심각하게 훼손하는 것입니다.

신뢰를 더욱 떨어뜨리는 점은 핵심인 fn 키워드가 완전히 제거되었다는 것입니다. 수십 개의 패키지에 영향을 미치는 이러한 파괴적인 변경 사항은 Mojo가 API 안정성을 약속한 바로 그날, 적절한 지원 중단(deprecation) 절차 없이 발생했습니다. 기존 개발자 생태계를 이토록 무시하는 태도는 광범위한 프로덕션 도입을 목표로 하는 언어에 있어 매우 우려스러운 신호입니다.

GPU 커널 개발자에게 Mojo는 확실히 며칠간 실험해 볼 가치가 있는 매력적인 제안을 제시합니다. CPU와 GPU를 아우르는 통합 언어라는 비전은 독특하고 강력합니다. 그러나 일반적인 개발자 커뮤니티 입장에서 볼 때, Mojo의 심각한 안정성 문제와 최근 Qualcomm 인수와 관련된 불투명한 거버넌스 문제는 이를 고위험 투자로 만듭니다. 이 언어가 프로덕션 환경에서 신뢰할 수 있는 선택지가 되려면 상당한 성숙 과정이 필요합니다.

자주 묻는 질문

Mojo 프로그래밍 언어란 무엇인가요?

Mojo는 Modular에서 만든 프로그래밍 언어입니다. Python의 사용 편의성과 C++, CUDA와 같은 시스템 언어의 고성능을 결합하여, 주로 AI 및 고성능 컴퓨팅을 위해 설계된 Python의 슈퍼셋(superset)입니다.

Mojo는 Python보다 얼마나 더 빠른가요?

초기 마케팅에서는 35,000배 이상의 속도 향상을 주장했지만, 이는 불공정한 비교에 근거한 것이었습니다. 실제 테스트 결과, Mojo는 특정 작업에서 순수 Python보다 약 26.5배 빠르며, 고도로 최적화된 NumPy 코드보다 약 2배 빠른 것으로 나타났습니다.

Mojo는 정말 오픈 소스인가요?

네. 2024년 8월 기준으로 Mojo 컴파일러, 표준 라이브러리 및 핵심 구성 요소는 Apache 2.0 라이선스 하에 오픈 소스로 공개되었습니다. 하지만 프로젝트는 아직 컴파일러 자체에 대한 외부 기여를 수락하지 않고 있습니다.

Mojo 1.0은 프로덕션 환경에서 사용할 만큼 안정적인가요?

'1.0'이라는 버전 번호에도 불구하고, Mojo는 현재 상당한 안정성 우려를 안고 있습니다. 초기 릴리스에는 핵심 기능에 대한 수십 개의 불안정한 API 경고가 포함되어 있었고 파괴적인 변경 사항이 도입되었기 때문에, 오늘날 대부분의 프로덕션 환경에서 사용하기에는 위험한 선택입니다.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$500 · AI tools & software only