본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 16. 12:11

명세(Specifications)에서 소프트웨어로: AiLang의 첫 번째 크로스 플랫폼 애플리케이션

요약

오픈 소스 프로그래밍 언어인 AiLang이 날씨 애플리케이션을 통해 macOS와 WebAssembly 환경에서의 크로스 플랫폼 실행을 성공적으로 증명했습니다. AiLang은 언어, 가상 머신(AiVM), UI 프레임워크(AiVectra)가 통합된 완전한 스택을 지향합니다.

핵심 포인트

  • AiLang은 애플리케이션의 의미론이 호스트 런타임이 아닌 언어 내에 존재하도록 설계됨
  • 날씨 앱을 통해 모듈 시스템, HTTP 요청, JSON 처리 등 실질적 기능을 검증
  • AiVM을 통해 플랫폼 간 일관된 결정론적 동작을 보장
  • AiVectra를 활용한 벡터 기반의 크로스 플랫폼 UI 모델 제공

지난 1년 동안 저는 다음과 같은 단순한 아이디어를 중심으로 설계된 오픈 소스 프로그래밍 언어인 AiLang을 구축해 왔습니다:

애플리케이션의 의미론(Semantics)은 호스트 런타임(Host runtime)이 아니라 언어 내에 존재해야 한다.

이번 주, 이 프로젝트는 중요한 이정표에 도달했습니다.

전부 AiLang으로 작성된 날씨 애플리케이션이 이제 네이티브 macOS와 브라우저/WebAssembly(웹어셈블리) 타겟 모두에서 실행됩니다.

날씨 앱이라고 하면 특별히 흥미롭게 들리지 않을 수도 있지만, 중요한 것은 애플리케이션 그 자체가 아닙니다. 중요한 것은 이 애플리케이션이 무엇을 증명하느냐 하는 것입니다.

왜 날씨 앱인가?

새로운 언어를 만들 때, 예제와 토이 프로그램(Toy programs)의 세계에 갇히기 쉽습니다.

Hello World는 작동합니다.

산술 연산도 작동합니다.

단위 테스트(Unit tests)도 통과합니다.

하지만 그 중 어느 것도 실제 애플리케이션을 구축할 수 있다는 것을 증명하지는 못합니다.

날씨 애플리케이션은 생태계의 놀라울 정도로 많은 부분을 연습합니다:

  • 다중 파일 모듈 (Multi-file modules)
  • 임포트 및 엑스포트 (Imports and exports)
  • HTTP 요청 (HTTP requests)
  • JSON 처리 (JSON processing)
  • 문자열 조작 (String manipulation)
  • 상태 관리 (State management)
  • 사용자 인터페이스 렌더링 (User interface rendering)
  • 크로스 플랫폼 실행 (Cross-platform execution)

이는 언어, 런타임(Runtime), 그리고 라이브러리(Libraries)가 실제로 함께 작동하는지를 확인하는 실질적인 테스트가 됩니다.

아키텍처 (The Architecture)

AiLang은 세 가지 주요 구성 요소로 이루어진 더 큰 생태계의 일부입니다:

AiLang

프로그래밍 언어 그 자체입니다.

AiLang은 결정론적 동작(Deterministic behavior), 명시적 구조, 그리고 AI 친화적인 소스 코드에 집중합니다.

AiVM

AiLang 애플리케이션을 실행하는 역할을 담당하는 가상 머신(Virtual machine)입니다.

핵심 설계 목표는 플랫폼 전반에 걸쳐 실행 동작을 일관되게 유지하는 것입니다.

AiVectra

그래픽 애플리케이션을 구축하는 데 사용되는 벡터 기반 UI 프레임워크입니다.

AiVectra는 네이티브 및 웹 환경 전반에 걸쳐 일관된 UI 모델을 제공하도록 설계되었습니다.

이 구성 요소들은 함께 완전한 스택을 형성합니다:

언어(Language) → VM → UI

이 이정표가 검증하는 것

날씨 애플리케이션을 구축하고 실행함으로써 시스템의 여러 주요 부분을 검증했습니다.

모듈 구성 (Module Composition)

이 애플리케이션은 단일한 모놀리식 (Monolithic) 소스 파일이 아니라, 여러 파일과 모듈로 나뉘어 구성되어 있습니다.

이를 통해 향후 애플리케이션들이 의존하게 될 임포트/엑스포트 (import/export) 시스템과 패키지 구조를 검증합니다.

표준 라이브러리의 성장 (Standard Library Growth)

애플리케이션은 다음과 같은 공통 기능에 크게 의존합니다:

  • 문자열 처리 (String handling)
  • 컬렉션 (Collections)
  • HTTP 통신 (HTTP communication)
  • 데이터 처리 (Data processing)

이것들은 향후 모든 애플리케이션이 구축해 나갈 토대입니다.

크로스 플랫폼 실행 (Cross-Platform Execution)

아마도 가장 만족스러운 결과는 애플리케이션 자체를 다시 작성하지 않고도 다음과 같은 환경에서 동일한 애플리케이션 로직이 실행되는 것을 확인한 것이었습니다:

  • 네이티브 macOS (Native macOS)
  • 브라우저/웹어셈블리 (Browser/WebAssembly)

런타임 프로필 (Runtime profile)은 변하지만,

애플리케이션 코드는 변하지 않습니다.

UI 프레임워크 통합 (UI Framework Integration)

이는 또한 AiLang, AiVM, 그리고 AiVectra 간의 통합 테스트 역할도 수행합니다.

언어, 런타임, 그리고 UI 프레임워크는 더 이상 독립적으로 진화하는 것이 아니라, 하나의 응집력 있는 생태계로서 기능하기 시작했습니다.

무엇이 다른가? (What Makes This Different?)

많은 현대적 프레임워크들은 점점 더 복잡한 추상화 (Abstractions)를 통해 이식성을 추구합니다.

AiLang은 다른 접근 방식을 취합니다.

목표는 프레임워크 코드의 계층 뒤에 플랫폼의 차이점을 숨기는 것이 아닙니다.

목표는 호스트 (Host)가 가볍고 교체 가능한 상태를 유지할 수 있도록 허용하면서, 애플리케이션의 의미론 (Semantics)을 언어 자체 내에 유지하는 것입니다.

다시 말해:

  • 언어는 의미를 정의합니다.
  • VM은 의미를 실행합니다.
  • 호스트는 기능을 제공합니다.

이러한 분리는 프로젝트 시작부터 지켜온 핵심 원칙 중 하나였습니다.

아직 초기 단계 (Still Early)

이것은 프로덕션 환경에 바로 투입할 수 있는 애플리케이션 프레임워크가 아닙니다.

AiVectra는 아직 초기 단계입니다.

AiLang은 여전히 진화 중입니다.

AiVM은 계속해서 기능을 확장하고 있습니다.

남은 작업량이 상당합니다.

하지만 소프트웨어 프로젝트는 한 번에 하나의 마일스톤 (Milestone)씩 구축됩니다.

1년 전, AiLang은 주로 명세 (Specifications), 프로토타입 (Prototypes), 그리고 아키텍처 논의 단계였습니다.

오늘날, AiLang은 네이티브 및 웹 타겟 모두에서 완전한 애플리케이션을 실행하고 있습니다.

이는 의미 있는 진전입니다.

다음 단계는? (What's Next?)

날씨 애플리케이션은 시작일 뿐입니다.

다음 마일스톤(Milestones)은 다음과 같습니다:

  • 추가 샘플 애플리케이션
  • 확장된 표준 라이브러리 (Standard libraries)
  • 개선된 툴링 (Tooling)
  • 더 많은 런타임 프로필 (Runtime profiles)
  • AiVectra의 지속적인 성장
  • 생태계 내에서의 추가적인 셀프 호스팅 (Self-hosting)

장기적인 목표는 동일합니다:

언어 자체가 진실의 근원 (Source of truth)이 되는 결정론적 (Deterministic)이고 AI 네이티브 (AI-native)한 소프트웨어 플랫폼을 구축하는 것입니다.

링크 (Links)

프로젝트 웹사이트: https://ailang.codes

GitHub 조직: https://github.com/AiLangCore

AiLang, AiVM, 그리고 AiVectra는 오픈 소스이며 활발하게 진화하고 있습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0