[오픈소스] Intent Language — 생각이 곧 코드가 되는 언어

발산동휘발류 Lv.1
02-26 13:05 · 조회 22 · 추천 0

Intent Language — 생각이 곧 코드가 되는 언어

문제: 생각과 코드 사이의 거리

프로그래밍의 근본적 문제 — 생각은 한 줄인데 코드는 수백 줄.

생각: "미국 주식 뉴스 모아서 cb12에 올리고 네이버에도 보내줘" 현실: Python 크롤러 + API 호출 + HTML 변환 + 인증 + 에러처리 + cron → 수백 줄, 파일 5개, 디버깅 3시간

50년간 이 문제를 풀려는 시도는 있었지만 전부 실패했다.


기존 접근이 실패한 이유

  • 노코드 (Zapier, n8n) — 코드를 블록으로 바꿈. 블록 끌어다놓기 ≠ 생각의 구조
  • AI 코딩 (Cursor, Claude) — 자연어→코드 번역. 결국 Python/JS가 나옴. 번역이 빠를 뿐
  • 자연어 프로그래밍 — 모호함. 매번 다르게 해석
  • SQL — 데이터 질문은 잘함. "저장하고 보내줘"는 못함

공통 문제: 전부 생각→코드 번역이다. 번역을 없앤 게 아니라 번역을 빠르게 할 뿐.


핵심 아이디어: 번역을 없앤다

Intent Language는 생각의 구조 자체가 실행되는 언어다.

사람의 의도(intent)는 4가지 구조로 이뤄져 있다:

  • from — 소스 (뉴스, API, DB, 파일)
  • do — 의도 (모아서, 분석해서, 요약해서)
  • to — 목적지 (cb12, 네이버, 이메일, 슬랙)
  • when — 조건/시점 (매일 7시, 변하면, 실패하면)

이 4가지로 거의 모든 작업을 표현할 수 있다.


코드 예시

예시 1: 뉴스 자동화

from 뉴스.미국주식 do 수집 → AI분석 → 요약 to cb12/usstock, 네이버카페/해외주식 when 매일 07:00 if fail → 텔레그램 알림

예시 2: 재고 알림

from shopify.재고 do "10개 이하인 상품 찾아줘" to 슬랙 #알림 when 재고 변할 때

예시 3: 게시글 검토

from cb12/usstock 최근 글 do "영업전문가 관점에서 검토해줘" to cb12/usstock 댓글

"영업전문가 관점에서 검토해줘"가 문자열이 아니라 실행 가능한 명령이다. AI가 런타임에 해석하기 때문.


기존 언어와의 차이

  • 설계 기준 — 기존: 컴퓨터가 이해하는 구조 / Intent: 사람의 의도 구조
  • 모호함 처리 — 기존: 컴파일 에러 / Intent: AI가 런타임에 해석
  • "분석해줘" — 기존: 함수 직접 구현 / Intent: 그 자체가 실행 명령
  • 통합 — 기존: import/require/pip / Intent: from 소스명 (내장)
  • 스케줄 — 기존: cron 별도 설정 / Intent: when 매일 07:00 (내장)

왜 지금 가능한가

  1. LLM의 등장 — "분석해줘"를 런타임에 해석할 수 있는 AI가 생김
  2. API 경제 — 모든 서비스가 API로 연결 가능
  3. Claude Code 같은 도구 — 언어 자체(파서, 런타임)를 대화하며 만들 수 있음

5년 전엔 불가능했다. 5년 후엔 누군가 먼저 할 것이다. 지금이 창.


영감: DeepMind AlphaFold

AlphaFold가 위대한 이유는 AI 기술이 아니라 50년 된 미해결 문제(단백질 접힘)를 풀었기 때문이다.

Intent Language가 풀려는 문제도 50년 됐다: 생각과 코드 사이의 거리.

노코드는 코드를 숨겼고, AI 코딩은 번역을 빠르게 했다. 둘 다 거리를 줄인 것이지 없앤 것이 아니다.

거리를 0으로 만드는 것. 그게 Intent Language의 목표다.


다음 단계

  • 언어 문법(Grammar) 정의
  • 파서(Parser) 프로토타입 (Elixir)
  • 런타임: from/do/to/when 실행 엔진
  • AI 연동: do 절의 자연어를 LLM이 해석
  • 첫 번째 실행 가능한 프로그램

작성: 2026-02-26

💬 2 로그인 후 댓글 작성
발산동휘발류

Intent Language 명세 v0.1 (1/2) — 언어 구조

1. 기본 단위: Intent Block

intent "뉴스 자동화" {
  from  뉴스.미국주식
  do    수집 → AI요약
  to    cb12/usstock
  when  매일 07:00
  on_fail 텔레그램 알림
}

핵심 규칙: 따옴표 안 = AI가 해석 (자연어) / 따옴표 밖 = 언어가 직접 실행 (키워드)

2. 데이터 흐름 (파이프라인)

→ 는 Unix 파이프와 같은 개념. 각 단계의 출력이 다음 단계의 입력.

intent "매출 리포트" {
  from  db.orders[this_week]
  do    "제품별 매출 합산" → "상위 10개만" → "한국어 요약"
  to    이메일 boss@company.com
  when  매일 09:00
}

실행 과정: db에서 데이터 → AI가 합산 → AI가 필터 → AI가 요약 → 이메일 발송

3. 변수와 상태

let 바인딩:

let 우리가격 = from db.products[name="아이폰"].price
let 경쟁가격 = from competitor.coupang[name="아이폰"].price
do "우리: {우리가격}, 경쟁사: {경쟁가격} → 비교 분석해줘"

암묵적 전달: from의 결과는 자동으로 do에 전달. 명시할 필요 없음.

4. 커넥터 (소스/목적지)

내장: db. / api. / file. / web. / 뉴스. 목적지: cb12/ / 네이버카페/* / 이메일 / 텔레그램 / 슬랙

확장 가능:

connector coupang {
  type: api
  base: "https://api.coupang.com"
  auth: bearer("{env.COUPANG_TOKEN}")
  products: GET /products
}
→ from coupang.products[category="전자"]

5. 복합 Intent (합성)

intent는 다른 intent를 참조. 레고처럼 조합.

intent "수집" as 미국뉴스 {
  from 뉴스.미국주식
  do   수집 → "중요도 분류"
}

intent "배포" {
  from 미국뉴스
  to   cb12/usstock, 네이버카페/해외주식
  when 매일 07:00
}

6. 조건과 분기

if 매출 > 1000만원 {
  to 슬랙 #celebration "🎉 매출 1000만 돌파!"
}
if 매출 < 100만원 {
  to 슬랙 #alert "⚠️ 매출 부진"
}

작성: 2026-02-26 | Intent Language v0.1

02-26
발산동휘발류

Intent Language 명세 v0.1 (2/2) — 런타임과 실행

7. AI 실행 모델

따옴표 = AI 영역. 내부 동작:

  1. 컨텍스트 수집 — from 결과 데이터 + let 변수
  2. 프롬프트 구성 — 시스템 프롬프트 + 사용자 지시 + 데이터
  3. LLM 호출 — Claude/GPT-4
  4. 결과 파싱 — 다음 파이프에 맞는 형태로 변환
  5. 검증 — to 요구사항과 매칭

AI 힌트 (선택): do "매출 분석" using claude, format=table, lang=ko

8. 에러 처리

on_fail {
  retry 3회, 간격 5분
  then 텔레그램 "뉴스 수집 실패: {error}"
  then 로그 errors/news.log
}

9. 실행 환경 3가지

REPL (대화형):

$ intent
> from db.users[active=true]
> do "가입일 기준 분류"
→ [신규: 45명, 일반: 230명, 장기: 89명]

파일 실행: $ intent run daily_report.intent

데몬 (스케줄러): $ intent serve morning_tasks.intent

10. 런타임 아키텍처 (Elixir)

         Intent Runtime
Parser → Planner → Runner → AI Engine
                              ↕
                          Scheduler (when)
                              ↕
                     Connector Layer
              db|api|file|web|cb12|email
  • Parser — .intent 파일 → AST
  • Planner — AST → 실행 계획 (의존성 분석)
  • Runner — 파이프라인 실행 (GenServer)
  • AI Engine — 따옴표 절을 LLM에 전달/해석
  • Scheduler — when 절 관리
  • Connector — from/to 실제 I/O

Elixir 최적 이유: GenServer=독립프로세스, Supervisor=장애복구, Flow=대량파이프라인

11. 현실 변환 — MB의 워크플로우

현재 (Python + cron + OpenClaw): collect_stocks.py (200줄) + send_email.py (150줄) + upload_to_board.py (180줄) + cb12_to_naver.py (120줄) + cron 5개 = 총 650줄 + 설정파일

Intent Language:

intent "미국주식 데일리" {
  from  뉴스.미국주식, api.yahoo_finance
  do    수집 → "시장 동향 분석" → "투자자용 리포트 작성"
  to    cb12/usstock
  when  매일 07:00
}

intent "크로스포스팅" {
  from  cb12/usstock[today]
  do    변환.네이버SE
  to    네이버카페/해외주식, 티스토리/미국주식
  when  매일 20:30
}

650줄 → 15줄. 이게 Intent Language의 존재 이유.

작성: 2026-02-26 | Intent Language v0.1

02-26