AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

코드 없는 오픈소스 라이브러리, AI가 알아서 구현합니다

소프트웨어 라이브러리에 코드가 없다면 어떻게 될까요? 명세서와 테스트 케이스만 있고, 실제 구현은 AI가 알아서 해준다면요?

사진 출처: dbreunig.com

개발자 Drew Breunig이 공개한 whenwords는 이 질문을 현실로 만든 실험입니다. 상대 시간을 표시하는 유틸리티 라이브러리인데, GitHub 저장소에는 실행 가능한 코드가 하나도 없습니다. 대신 상세한 명세서(SPEC.md), 125개의 테스트 케이스(tests.yaml), 그리고 몇 줄의 설치 가이드만 들어있죠.

출처: A Software Library with No Code – Drew Breunig

AI가 코드를 짜는 방식

사용방법은 놀랍도록 간단합니다. 설치 가이드의 프롬프트를 복사해서 Claude나 Cursor 같은 AI 코딩 도구에 붙여넣기만 하면 됩니다:

Implement the whenwords library in [LANGUAGE].
1. Read SPEC.md for complete behavior specification
2. Parse tests.yaml and generate a test file
3. Implement all five functions: timeago, duration, parse_duration, 
   human_date, date_range
4. Run tests until all pass
5. Place implementation in [LOCATION]

언어와 위치만 지정하면 AI가 명세서를 읽고, 테스트를 생성하고, 다섯 개 함수를 구현한 뒤, 모든 테스트를 통과할 때까지 디버깅합니다. 실제로 Ruby, Python, Rust, Elixir, Swift, PHP, Bash 등 여러 언어에서 작동이 검증됐고, 심지어 Excel 수식으로도 구현 가능하다고 합니다.

“코딩이 공짜면 엔지니어링은?”

저자가 이 실험을 통해 던지는 질문은 명확합니다. Opus 4.5 같은 최신 AI 코딩 에이전트는 2024년 4분기에 임계점을 넘었고, 잘 정의된 명세만 있으면 한 번에 완벽한 구현을 만들어냅니다. 그렇다면 우리는 여전히 언어별로 따로 존재하는 수많은 유틸리티 라이브러리가 필요할까요? 아니면 하나의 명세서를 프로젝트에 맞게 즉석에서 구현하는 방식으로 바뀔까요?

whenwords는 의도적으로 단순한 유틸리티입니다. 다섯 개 함수, 명확한 표준(Unix 시간), 약 500줄의 명세서. 브라우저 같은 복잡한 소프트웨어도 잘 정의된 표준만 있으면 비슷한 방식으로 접근할 수 있지 않을까요?

여전히 코드가 필요한 이유

하지만 저자는 균형 잡힌 시각을 유지합니다. 다섯 가지 경우에는 여전히 실제 코드가 담긴 라이브러리가 필요하다고 말하죠:

성능이 중요할 때 – 브라우저처럼 메모리 누수 없이 최적화가 필수적인 경우

테스팅이 복잡할 때 – 명세를 수정하면 20개 언어 × 4개 AI 모델 조합을 모두 다시 테스트해야 할까요?

버그 지원이 필요할 때 – 고객마다 AI가 다르게 생성한 코드베이스의 버그를 어떻게 재현할까요?

지속적 업데이트가 중요할 때 – LiteLLM처럼 새 모델을 빠르게 추가하거나 보안 패치를 배포해야 하는 경우

커뮤니티가 중요할 때 – 많은 사용자가 버그를 발견하고, 기여자들이 수정하고, 도움을 주고받는 생태계

결국 코드는 단순히 명세의 구현이 아니라 사람들과 문화가 목표를 중심으로 결정화된 산물입니다. 오픈소스의 마법이 작동하는 이유죠.

실험의 의미

whenwords는 완성된 해답이 아니라 질문을 구체화하는 사고실험입니다. 단순한 유틸리티는 명세만으로도 충분할지 모르지만, 우리가 의존하는 기반 라이브러리들은 여전히 커뮤니티와 실제 코드가 필요합니다.

하지만 모델은 계속 발전하고 에이전트는 더 유능해질 겁니다. 저자의 말처럼 이 리스트는 완전하지 않고, 우리가 “코드 없는 라이브러리”를 어디까지 밀어붙일 수 있을지는 아직 열린 질문입니다.

참고자료:


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다