Trend: 모조가 Mojo❔

ofohj·2023년 5월 10일
0

IT 트랜드 스터디

목록 보기
6/7
post-thumbnail

Mojo🔥

0. 소개

이번 달 3일에 등장한 새로운 프로그래밍 언어, Mojo를 소개합니다!

🧑‍💻 개발자: Chris Lattner와 팀원들
🏢 개발사: Modular


1. 등장 배경

Mojo는 사람들이 개발과 배포를 덜 복잡하게, 더 빠르게 하는 것을 목표로 탄생했습니다.

다르게 말하면 모조는 Python을 대체하기 위해 등장했습니다.
이를 구체적으로 설명드리겠습니다.

Python

👍 Python은 다양한 장점을 가지고 있으며, 특히 AI 분야에서 많이 사용됩니다.

Python의 장점

  • 쉬운 문법과 가독성 → 배우기 쉬움!
  • numpy, pandas 등 풍부한 라이브러리 제공 → AI 모델 개발 작업에 유용

👎 그렇다면 파이썬은 어떤 단점이 있길래 대체 언어가 등장했을까요?

Python의 단점(한계)

  • 속도가 느림
    : 파이썬은 인터프리터 언어로, 코드를 한 줄씩 해석하고 실행합니다. 이러한 특성때문에 속도가 느릴 수 밖에 없습니다.

🎉 그래서 이 성능 이슈의 해결책으로 Mojo가 등장했습니다! 🎊
이제 Mojo에 대해 자세히 알아보겠습니다~


2. 성능

성능은 아래 표 하나로 설명을 끝낼 수 있다고 느꼈습니다.

*자료는 공식 홈페이지에 제공되어 있습니다.

같은 알고리즘을 실행했을 때 1027초가 걸린 python에 비해, mojo는 0.03초가 걸렸습니다!

⚡무려 35,000배 빠른 속도를 보였습니다.

이 표를 보고 mojo의 성능에도 감탄했지만, 그것보다 오히려 4가지 언어 중 가장 느린 python이 가장 인기있다는 점이 더 놀라웠습니다. 그만큼 python의 장점이 강력한 것 같습니다!


3. 원리 - 병렬 처리

Python

  • 하나하나 직렬처리

Mojo

  • 여러 코어(CPU의 계산 엔진)를 병렬처리

4. 기능

🔻 일부 기능을 정리하였습니다!

(1) 언어 통합 자동 튜닝

Mojo는 AI를 위한 프로그래밍 언어라고 소개되어있습니다.

이는 가장 진보된 컴파일러와 이기종 런타임으로 하드웨어의 모든 성능을 활용할 수 있다고 합니다. 특히, '언어 통합 자동 튜닝'이라는 기능을 통해 매개변수에 대한 최적의 값을 자동으로 찾아주는 기능이 있기 때문에 ai 모델 개발에 탁월할 것이라 생각합니다.

📍 [참고] 이기종 런타임
- 서로 다른 종류의 장치에서 실행되는 소프트웨어 관리 및 조정을 수행하는 환경
- 다양한 아키텍처와 특성을 가진 장치들의 상호작용을 지원

(2) 정적 분석기 강화

코드를 분석하여 잠재적 오류, 보안 취약점, 코딩 규칙 위반을 탐지하는 정적 분석기가 강화되어 안정적인 라이브러리를 만들 수 있어 성능이 향상될 수 있습니다.


5. 장점

(1) 사용성

기존 언어 외에 새로운 언어를 배워야한다는 부담이 있을 수 있지만, 다행히 mojo는 python과 유사한 문법을 사용하여 기존 python 사용자라면 쉽게 익힐 수 있습니다.

(2) 호환성

  • python의 라이브러리를 사용 가능
  • python으로 작성된 코드와 쉽게 통합 가능 → 별도의 코드 수정 불필요

(3) 속도

python과 C언어의 성능을 결합해 보다 매우 빠른 속도를 자랑합니다.


6. 실습

코드

# a와 b가 다른 값이면 b를 출력하시오.
def your_function(a, b):
	# let: 해당 블록 내에서만 변수가 유효하도록 사용
    let c = a

    if c != b:
        let d = b
        print(d)

your_function(2, 3)

위 코드는 mojo가 jupyter notebook에서 제공한 코드입니다.
파이썬과 동일한 문법을 사용하는 것을 알 수 있습니다.

위와 같이 올바른 결과가 나온 것을 확인할 수 있습니다

특이점

mojo는 확장자로 .mojo 뿐만 아니라 .🔥도 가능하다고 합니다.
이게 무슨말인가 했더니

확장자를 이모지로 표시해도 mojo파일로 잘 설정되는 것을 볼 수 있습니다!


💡

서비스를 유지하는데 있어 중요한 것에는 성능이나 사용 난이도, 요금제 등이 있겠지만 무엇보다 유저의 수가 확보되어야 한다고 생각합니다.

아무리 성능이 좋아도 해당 서비스를 아는 사람이 한명도 없다면 그 서비스는 존재하지 않는 것이나 마찬가지이기 때문입니다.

그런데 이 Mojo는 본격적인 등장 전, 실험 버전이 풀렸을 때부터 사람들에게 많은 관심을 얻었고 mojo가 미래에 대표적인 ai 개발 언어가 될 것 같다는 평도 있었습니다. 속도가 느리다는 파이썬을 사용한 인공지능의 발전도 충분히 빠른데, mojo를 이용하여 개발과 배포가 더욱 빨라지게 되면 이 분야가 얼마나 발전하게될지 궁금해지는 이번 주제였습니다!

들어주셔서 감사합니다:)


[출처] https://www.modular.com/
[공식 문서] https://docs.modular.com/mojo/

0개의 댓글