섹션별 상세
계층적 명세 구조 (L0, L1, L2): len은 인간의 의도를 담는 L0, 타입과 관계를 정의하는 L1, 구체적인 코드 생성 전략을 정의하는 L2로 나뉜다. 각 계층은 자연어에서 정식 모델로, 다시 실행 가능한 코드로 이어지는 가교 역할을 수행한다. 이를 통해 개발자는 추상적인 아이디어를 단계적으로 구체화하여 LLM이 이해하기 쉬운 형태로 전달할 수 있다.
text
type String
rel Hello(output: String)
fn hello() -> output: String
ensures Hello(output)
quasi using style ProceduralAlgorithm:
let greeting := "Hello, world!"
return greetinglen 언어로 작성된 Hello World 예시로 타입 정의, 관계 선언, 함수 및 준인용(quasi) 블록을 포함한다.
명세 우선(Specification-first) 워크플로우: 코드를 직접 작성하는 대신 명세를 기본 자산으로 삼고, 이를 바탕으로 LLM이 코드를 생성하도록 유도한다. 생성된 결과물은 L1에서 정의한 제약 조건과 테스트를 통해 검증되어 신뢰성을 확보한다. 이 방식은 단순한 코드 생성을 넘어 프로그램의 논리적 일관성을 유지하는 데 중점을 둔다.
CLI 도구 및 검증 메커니즘: Go 언어로 작성된 CLI는 .l1 파일의 구문 분석 및 의미론적 유효성 검사를 지원한다. 중복 선언, 미해결 임포트, 함수 인자 수(Arity) 등을 체크하여 명세 자체의 오류를 사전에 방지한다. 비록 현재는 실행이나 증명 기능이 제한적이지만, 구조적 검증만으로도 LLM 프롬프트의 정확도를 높이는 데 기여한다.
bash
go run ./cmd/len-cli validate examples/basic/helloworld/hello.l1Go로 구현된 CLI 도구를 사용하여 작성된 .l1 명세 파일의 구조적 유효성을 검사하는 명령이다.
용어 해설
- 메타 프로그래밍(Meta-programming)
- — 프로그램이 다른 프로그램을 생성, 변형, 분석하거나 스스로를 수정하도록 작성하는 프로그래밍 기법이다. len 언어는 이러한 메타 프로그래밍을 위해 설계되어 코드 구조를 추론하고 생성하는 기능을 제공한다.
- 의미론적 모델(Semantic Model)
- — 데이터나 프로그램의 논리적 구조와 의미를 정의한 모델이다. len의 L1 계층에서 타입, 관계, 계약 등을 통해 구축되며 LLM이 코드를 생성할 때 지켜야 할 논리적 기준점이 된다.
- 준인용(Quasi-quoting)
- — 코드 템플릿 내에 특정 변수나 표현식을 삽입하여 동적으로 코드를 생성할 수 있게 하는 문법이다. len에서는 L2 계층에서 실제 실행 가능한 코드를 생성하기 위한 템플릿 작성 방식으로 활용된다.
- 형식화(Formalization)
- — 자연어로 된 모호한 의도를 수학적이나 논리적으로 엄격한 규칙을 가진 형태로 변환하는 과정이다. len은 L0의 자연어 설계를 L1의 구조적 코드로 형식화하여 검증 가능성을 높인다.
기술
- len
- Go
- LLM
- MkDocs
- GitHub Actions
활용 사례
- LLM 기반 자동 코드 생성
- 시스템 아키텍처 정식 모델링
- 코드 변환 및 리팩터링 도구 개발
언급된 리소스
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 03. 23.수집 2026. 03. 23.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.