피드로 돌아가기
I built Soul, a tiny compiled language that generates ~22KB binaries — here's what I learned
Dev.toDev.to
Infrastructure

Runtime 없는 컴파일러 설계를 통한 22KB 초경량 Binary 구현

I built Soul, a tiny compiled language that generates ~22KB binaries — here's what I learned

RobeLTDP2026년 4월 28일2advanced

Context

Bash Script의 확장성 부족과 Go/Python의 무거운 Runtime으로 인한 오버헤드 발생. 단순 파일 시스템 작업 수행 시 불필요한 리소스 낭비와 관리 복잡도가 증가하는 문제 직면.

Technical Solution

  • 파일 시스템을 단순 명령 실행 대상이 아닌 Tree, Difference 등 구조적 모델로 정의한 Declarative 모델 채택
  • External Dependency 및 Runtime을 완전히 제거하여 Binary 크기를 최소화한 Static Compilation 방식 적용
  • 실행 전 파일 변경 사항을 분석하여 예측 가능성을 확보하는 Language-level Plan Mode 설계
  • 파일 시스템 작업에 특화된 최소 기능 집합만 포함하여 컴파일 효율을 극대화한 언어 설계
  • Docker FROM scratch 기반 이미지 구성을 통한 배포 아티팩트 최소화 전략 수행

- 리소스 제한이 심한 IoT 환경 설계 시 Runtime-less Static Binary 고려 - 파괴적 작업 수행 전 상태를 예측하는 Plan Mode와 같은 결정론적 검증 단계 도입 - 범용 프레임워크 도입 전 해결하려는 문제의 핵심 도메인 모델을 정의하여 불필요한 의존성 제거

원문 읽기