Mojo 프로그래밍 언어

Coding
Programming
Mojo lang
Author

Taeyoon Kim

Published

January 8, 2025

Modified

January 14, 2025

Python 은 세계에서 가장 널리 사용되는 프로그래밍 언어 중 하나로 사용자 친화적인 성격 덕분에 다양한 분야에서 활발하게 활용되고 있습니다. 웹 개발자, 데이터 과학자, 마케터, 그리고 AI 전문가들까지, 여러 분야의 전문가들이 Python 을 선호하는 이유는 초보자도 쉽게 배울 수 있고 읽기와 쓰기가 쉽기 때문입니다.

그러나 Python 은 C++ 이나 Rust 와 비교했을 때 실행 속도가 느리고 배포 과정이 복잡하다는 단점이 있습니다. 반면, C++ 은 속도가 빠르지만 배우고 사용하기 어렵다는 문제점이 있죠. 이런 문제를 해결하기 위해 등장한 언어가 바로 Mojo입니다.

0.1 Mojo🔥의 특징

Mojo 는 Python 과 유사한 구문을 제공하면서도 병렬 처리를 최적화한 컴파일러 인프라인 MLIR 을 사용하여 성능을 크게 향상시킵니다. 특히, Mojo 를 사용하면 AI 모델을 병렬 처리하여 더 빠르고 효율적으로 실행할 수 있습니다. 실제로 Mojo 는 Python 보다 약 35,000배 빠른 속도를 자랑합니다. 또한 Mojo 는 Python 과 완벽한 호환성을 목표로 하고 있어, 기존의 Python 코드를 거의 그대로 사용할 수 있으며 추가적인 강력한 기능도 제공합니다.

따라서, 현재 사용 중인 모든 Python 패키지와 라이브러리는 Mojo 에서 문제없이 동작합니다. 특히 Mojo 는 AI 하드웨어를 프로그래밍하는 데 사용할 수 있는데, 이는 기존의 언어로는 구현하기 어려운 복잡한 AI 하드웨어의 구조를 쉽게 처리할 수 있도록 도와줍니다.

C++ 이나 CUDA 와 같은 기존의 고성능 프로그래밍 언어는 배우기 어렵다는 단점이 있지만, Mojo 는 이러한 복잡성을 없애고 누구나 쉽게 AI 하드웨어를 프로그래밍할 수 있게 합니다. 더불어, 사전 및 사후 처리 작업을 통해 모델을 쉽게 확장하거나 커스텀 연산을 적용할 수 있어 다양한 AI 작업에서 큰 유연성을 제공합니다. 커널 퓨전, 그래프 재작성, 형상 함수 등 고급 기능을 통해 더욱 효율적인 AI 프로그래밍이 가능합니다.

Mojo 는 Python 의 단점을 보완하면서도, 그 친숙한 구문과 강력한 성능을 결합하여 차세대 AI 프로그래밍을 이끄는 도구로 자리 잡고 있습니다.

Note

Mojo 프로젝트는 이제 막 초기 단계에 있지만, 그 가능성과 전망은 매우 인상적입니다. 아직 시작 단계이지만, Mojo 가 앞으로 가져올 변화와 잠재력을 생각하면 기대감이 큽니다. Mojo 가 제공하는 풍부한 기능과 강력한 성능 향상은 그 자체로 큰 매력이며, 이것이 인공지능과 머신러닝 분야에 어떤 혁신을 가져올지 기대됩니다.

1 Mojo🔥 시작하기

이 글에서는 Mojo로 “Hello world”를 출력하는 방법을 보여드리겠습니다. 다른 Mojo 코드를 작성하는 방법을 읽고 싶으시다면 Mojo 문법 소개를 참조하세요.

1.1 1. 새 프로젝트 만들기

새로운 Mojo 프로젝트를 생성하기 위해 콘다 (Conda) 기반의 가상 환경 관리자이자 패키지 관리자인 magic 을 사용하겠습니다.

  1. 다음 명령어로 macOS 또는 우분투 리눅스에서 magic 을 설치합니다:

    curl -ssL https://magic.modular.com/94d3e79d-46f1-4fa6-9d1b-ee5b81f4b079 | bash

    그런 다음 터미널에 출력된 source 명령을 실행합니다.

  2. hello-world 라는 Mojo 프로젝트를 생성합니다:

    magic init hello-world --format mojoproject

    이렇게 하면 hello-world 라는 디렉터리가 생성되고 Mojo 프로젝트 종속성이 설치됩니다 (Mojo 프로젝트의 유일한 종속성은 max 패키지로 MAX와 번들 로 제공됩니다.).

  3. 프로젝트 가상 환경에서 셸을 시작합니다:

    cd hello-world && magic shell

이제 가상 환경이 활성화되어 Mojo를 사용해 볼 수 있습니다. 예를 들어 다음과 같이 Mojo 버전을 확인할 수 있습니다:

mojo --version

1.2 2. REPL에서 코드 실행하기

명령 프롬프트에서 Mojo 코드를 작성하고 실행할 수 있는 Mojo REPL을 사용해 보겠습니다:

  1. REPL 세션을 시작하려면 mojo 를 입력합니다.

  2. REPL을 종료하려면 :quit 을 입력하고 Enter 키를 누르거나 Ctrl + D 를 누릅니다.

REPL에서 원하는 만큼 코드를 작성할 수 있습니다. 새 줄을 시작하고 코드 작성을 계속하려면 Enter키를 누르고, Mojo가 코드를 실행하게 하려면 Enter키를 두 번 누릅니다. REPL은 코드가 저장되지 않으므로 주로 짧은 실험에 유용합니다. 따라서 실제 프로그램을 작성하려면 .mojo 소스 파일에 코드를 작성하는 편이 좋습니다.

1.3 3. Mojo 파일 실행하기

이제 Mojo 코드를 파일로 작성하고 mojo로 실행해 보겠습니다:

  1. hello.mojo(또는 hello.🔥) 라는 이름의 파일을 만들고 다음 코드를 추가합니다:

    fn main():
     print(“Hello, world!”)

    이 정도면 충분합니다. 파일을 저장하고 터미널로 돌아갑니다.

  2. 이제 mojo 명령어로 실행합니다:

    mojo hello.mojo

1.4 4. 실행 가능한 바이너리 빌드

마지막으로 동일한 코드를 실행 파일로 빌드하고 실행해 보겠습니다:

  1. build 명령어로 실행 파일을 만듭니다:

    mojo build hello.mojo

    실행 파일은 .mojo 파일과 동일한 이름을 사용하지만 -o 옵션을 사용해 변경할 수도 있습니다.

  2. 그런 다음 실행 파일을 실행합니다:

    ./hello

build 명령어는 정적으로 컴파일된 바이너리 파일을 생성하므로 실행에 필요한 모든 코드와 라이브러리가 포함되어 있습니다. 그리고 가상 환경을 비활성화 하려면 exit를 입력합니다.

exit

1.5 5. GitHub 에서 예제 실행하기

GitHub 의 Mojo 코드 예제에는 Magic 구성 파일이 포함되어 있으므로 간단히 리포지토리를 복제하고 magic 으로 코드를 실행할 수 있습니다. 예를 들어

  1. Mojo 리포지토리를 복제합니다:

    git clone https://github.com/modularml/mojo.git

    나이틀리(nightly) 빌드를 설치한 경우에만 nightly 브랜치로 체크 아웃하세요:

    git checkout nightly
  2. 예제로 이동합니다:

    cd mojo/examples
  3. 코드를 실행합니다:

    magic run mojo hello_interop.mojo

2 다음 단계

  • Mojo 를 처음 사용하는 경우 Mojo 소개에서 언어 기초를 익히는 것이 좋습니다.
  • magic 도구에 대해 자세히 알아보려면 Magic 시작하기를 참조하세요.
  • Mojo 리포지토리](https://github.com/modularml/mojo/) 에서 더 많은 코드 예제를 살펴보세요. 이 리포지토리에는 여러 가지 예제 외에도 Mojo의 고급 기능을 알려주는 Jupyter 노트북이 있습니다.
  • 사용 가능한 모든 Mojo API 를 보려면 Mojo 표준 라이브러리 참조를 확인하세요.
  • 설치 중 문제가 발생하면 이미 알려진 문제 문문서를 확인하세요.