본문으로 건너뛰기

에이전트 자동화를 문법으로 넣은 MALDA 언어

MALDA는 prompt와 workflow를 문법에 통합한 오픈소스 AI-native programming language입니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

MALDA는 prompt, agent, tool, MCP, REST endpoint, 내구성 workflow를 별도 glue code가 아니라 하나의 언어 문법과 runtime 안에 넣은 오픈소스 AI-native programming language입니다. prompt는 기본적으로 템플릿을 렌더링하고 await를 붙이면 모델 호출과 스키마 검증으로 이어지며, workflow는 local SQLite의 single writer 구조로 동작합니다. .NET executable, interpreter, 브라우저용 JavaScript subset이라는 세 backend는 기능이 같지 않고, 타입 annotation도 runtime 정적 검사가 아니라 IDE·LSP 진단에 우선 사용됩니다. 코딩 에이전트가 수천 lines 규모의 showcase를 작성하도록 docs/llm language pack과 conformance·guard tests를 함께 배포하지만, maintainer는 이를 실제 업무용 대체재가 아닌 AI 시대의 언어 설계 실험으로 규정합니다.

섹션별 상세

01
MALDA는 에이전트, 웹 앱, 내구성 워크플로를 언어 문법 안에서 다루려는 오픈소스 AI-native 프로그래밍 언어이자 플랫폼입니다. 저장소에는 언어 runtime, compiler/transpiler, Desktop IDE, Web IDE, Language Server, 예제, 템플릿, reference manual이 함께 들어 있습니다. 코딩 에이전트가 MALDA 코드를 작성하고 MALDA 프로그램이 다시 개발 작업을 자동화하는 양방향 구조가 프로젝트의 중심입니다.
malda
schema Review {
  summary: string;
  issues: string[];
}

prompt codeReview(code, language) -> Review {
  system: "You are an expert reviewer of {language}.",
  user: "Review this {language} code:

{code}"
}

var rendered = codeReview("function add(a, b) { return a + b; }", "javascript");
io.print(rendered.user);

var checked = validate("Review", {
  "summary": "Looks fine",
  "issues": []
});

if (checked.ok) {
  io.print("schema ok: " + checked.data.summary);
} else {
  io.print("schema failed: " + checked.error);
}

Review 스키마를 프롬프트 반환형에 연결하고, 모델을 호출하지 않은 상태에서 렌더링과 JSON 검증을 수행하는 기본 예제입니다.

02
프롬프트와 스키마가 별도 glue code가 아니라 언어 요소로 연결됩니다. prompt 선언은 입력값을 템플릿에 주입해 렌더링하며, await를 붙였을 때 모델 호출과 JSON 결과 검증으로 이어지고 validate 함수는 같은 스키마 검사를 오프라인에서 수행합니다. 기본 first_look.malda 예제는 Review 스키마의 summary와 issues 필드를 사용하지만 API key나 네트워크 호출 없이 렌더링과 검증 흐름을 확인하게 합니다.
03
MALDA runtime은 객체, 함수, actor, exception, io·math·str 네임스페이스 표준 라이브러리를 제공하고, AI 영역에서는 prompt 선언, agents, tools, MCP를 포함합니다. 웹 기능은 REST decorator와 host runtime의 @PAGE·@AIPAGE로 구성되며, 워크플로는 local SQLite에 durable step, retry, compensate 상태를 기록합니다. SQLite 구조가 single writer이므로 Temporal cluster 같은 분산 워크플로 시스템을 목표로 하지 않는다는 제한도 명시되어 있습니다.
bash
git clone https://github.com/amaldini/maldalang.git
cd maldalang
dotnet build MaldaLang.sln
dotnet run --project MaldaLang -- Examples/Basics/first_look.malda

소스 저장소를 내려받아 .NET 솔루션을 빌드한 뒤 기본 MALDA 프로그램을 실행하는 절차입니다.

bash
dotnet run --project MaldaLang -- compile Examples/Basics/first_look.malda --mode transpile -o first-look.exe

MALDA 파일을 transpile 모드로 컴파일해 실행 파일을 생성하는 명령입니다.

04
실행 대상은 세 가지지만 기능이 대등하지 않습니다. 해석기는 반복 개발에 쓰이고, transpile 경로는 .NET executable을 만들며, JavaScript 경로는 브라우저 하위 집합만 컴파일하고 agents, HTTP servers, workflows는 지원하지 않습니다. 타입 annotation은 IDE와 LSP의 진단에 공급되어 기본적으로 편집기에서 Errors가 되지만 runtime은 dynamic 상태로 남고, publish 단계에서 해당 오류를 검사하며 --lenient-types로 건너뛸 수 있습니다.
05
프로젝트는 Desktop IDE, Web IDE, VS Code와 LSP를 서로 다른 사용 surface로 구분합니다. Windows용 WPF Desktop IDE는 multi-file/include, virtual @malda-section tabs, local models, MCP, UIHost preview, richer compile을 지원하는 reference IDE이며 Web IDE는 Monaco 기반 브라우저 playground로 Desktop과 기능 parity가 없습니다. VS Code 확장은 Desktop IDE 밖에서 cross-platform 편집을 담당하고, Linux에서는 CLI만 제공됩니다.
06
배포판은 self-contained zip으로 제공되어 별도 .NET 설치 없이 Windows와 Linux에서 CLI를 실행할 수 있습니다. 소스 빌드에는 .NET 8 SDK가 필요하고, WPF Desktop IDE가 포함된 MaldaLang.sln은 net8.0-windows를 대상으로 하므로 Linux와 macOS에서는 개별 프로젝트를 빌드해야 합니다. AI 기능은 OPENROUTER_API_KEY가 있으면 OpenRouter를 우선 사용하고, 그렇지 않으면 첫 실행 때 약 500MB의 qwen2.5-0.5b-instruct-q4_k_m.gguf를 Hugging Face에서 내려받아 로컬 fallback으로 사용합니다.
07
두 개의 큰 showcase인 Examples/Agents/secondbrain_semantic.malda와 Examples/RalphWiggum/은 코딩 에이전트가 전부 작성했으며, 각각 공유 라이브러리를 포함해 약 7,600 lines와 4,049 lines 규모입니다. MALDA가 어떤 모델의 training data에도 없었지만 docs/llm/에 compact language pack을 함께 배포해 에이전트가 문법을 익히도록 한 구성이 배경입니다. Guard tests, conformance matrix, 실행 가능한 reference-manual snippets가 이 작성 방식과 언어 동작을 점검 가능한 상태로 유지합니다.
08
MALDA의 개발 배경은 C#, Java, VB.NET으로 PDM/PLM, CAD integration, ERP 연동, data processing 같은 business software를 만들어 온 maintainer의 경험입니다. 작성자가 말하는 핵심 문제는 언어 내부보다 domain과 기존 시스템 사이의 연결에 있으며, 에이전트가 parser를 입력해도 grammar의 의미와 semantics를 정하는 판단은 남는다는 점입니다. 따라서 이 프로젝트는 실제 업무에 즉시 도입한 제품이라기보다 에이전트가 대부분의 코드를 작성하는 시대에 programming language를 어떻게 설계할지 실험하는 공개 프로젝트입니다.

용어 해설

내구성 워크플로(Durable Workflow)
실행 중단이나 실패 뒤에도 진행 상태를 보존하고, 정해진 단계와 재시도·보상 절차를 이어가는 작업 흐름입니다. MALDA에서는 이를 로컬 SQLite에 저장하며 단일 writer 구조로 처리하므로 분산 클러스터형 워크플로 엔진과 범위가 다릅니다.
언어 서버(Language Server)
코드 편집기에 자동완성, 진단, 오류 표시 같은 언어 기능을 전달하는 별도 프로세스입니다. MALDA의 Language Server는 IDE와 VS Code 확장에 연결되고, 타입 주석을 바탕으로 편집기 수준의 오류를 표시하지만 런타임을 정적 타입 언어로 바꾸지는 않습니다.
MCP
AI 모델이나 에이전트가 외부 도구와 데이터 소스를 일정한 방식으로 연결하도록 하는 프로토콜입니다. MALDA는 에이전트와 도구 기능의 일부로 MCP를 포함해 프롬프트 중심 프로그램이 외부 작업 자동화와 이어지도록 구성합니다.
트랜스파일러(Transpiler)
한 프로그래밍 언어로 작성한 코드를 다른 실행 대상 언어 또는 형식으로 변환하는 컴파일러 구성 요소입니다. MALDA는 .NET 실행 파일을 만드는 경로와 브라우저용 JavaScript 하위 집합을 만드는 경로를 분리하며, 두 경로가 동일한 기능을 지원하지는 않습니다.
스키마 검증(Schema Validation)
데이터가 미리 선언한 필드와 자료형 구조를 따르는지 검사하는 절차입니다. MALDA에서는 prompt 선언에 반환 스키마를 연결하고 validate 함수로 JSON 객체를 오프라인 검사할 수 있으며, await를 사용하면 모델 호출 뒤 결과 검증까지 이어집니다.

기술

  • .NET 8
  • C#
  • Java
  • VB.NET
  • SQLite
  • JavaScript
  • MCP
  • OpenRouter
  • Hugging Face
  • qwen2.5-0.5b-instruct-q4_k_m.gguf
  • WPF
  • Monaco
  • VS Code
  • LSP

활용 사례

  • 코딩 에이전트가 작성하는 AI 프로그램
  • REST 기반 웹 앱과 UI
  • MCP 도구를 연결한 에이전트 자동화
  • 로컬 SQLite 기반 내구성 워크플로
  • 브라우저 playground에서의 언어 학습과 실험
  • PDM/PLM·CAD·ERP 연동 같은 business software 실험

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 17.수집 2026. 08. 18.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.