핵심 요약
기존의 Make나 Just와 같은 태스크 러너는 셸 명령어 중심이었으나, makethlm은 자연어 프롬프트를 태스크의 핵심 구성 요소로 도입했다. 사용자는 Promptfile에 빌드, 테스트, 배포 과정을 일상 언어로 기술하고, 이를 Claude나 OpenAI와 같은 LLM이 해석하여 실행하도록 할 수 있다. 셸 명령어와 프롬프트를 자유롭게 교차하여 사용할 수 있으며, SSH를 통한 원격 실행 및 Dockerfile 자동 생성 기능도 지원한다. 이를 통해 복잡한 로직이 필요한 유지보수나 코드 리뷰 작업을 자동화하는 새로운 방식을 제시한다.
배경
Python 3.10 이상, Claude 또는 OpenAI API 키, 기본적인 셸 명령어 및 태스크 러너 지식
대상 독자
LLM을 활용해 개발 워크플로우 및 인프라 관리를 자동화하려는 DevOps 엔지니어 및 소프트웨어 개발자
의미 / 영향
이 도구는 단순 스크립팅을 넘어 LLM이 의사결정 과정에 참여하는 에이전틱 워크플로우를 CLI 환경으로 가져온다. 이는 빌드 및 배포 과정에서 발생하는 예외 상황을 사람이 아닌 AI가 1차적으로 대응하게 함으로써 운영 효율성을 극대화할 수 있다.
섹션별 상세
makethlm은 Promptfile 내에서 !로 시작하는 셸 명령어와 일반 텍스트인 LLM 프롬프트를 자유롭게 섞어서 사용할 수 있다. LLM은 이전 셸 명령어의 실행 결과를 바탕으로 다음 행동을 추론하거나, 복잡한 조건부 로직을 자연어로 처리할 수 있다. 예를 들어 테스트 실패 시 LLM이 원인을 분석하고 수정 사항을 제안하는 워크플로우를 구성하는 것이 가능하다.
Claude, OpenAI, Ollama 등 다양한 LLM API를 지원하며 태스크별로 다른 모델을 할당할 수 있는 기능을 제공한다. 보안 리뷰와 같이 정교한 작업에는 고성능 모델을 사용하고 단순 린팅 작업에는 저렴한 모델을 사용하도록 설정하여 비용과 성능을 최적화할 수 있다. 또한 커스텀 CLI 템플릿을 통해 로컬에서 실행되는 임의의 LLM 도구와도 연동이 가능하다.
Ansible과 유사한 호스트 인벤토리 기능을 갖추고 있어 SSH를 통해 원격 서버에서 셸 명령어를 실행하면서 로컬 LLM의 추론 능력을 결합할 수 있다. 또한 docker 블록을 사용하면 자연어 설명만으로 Dockerfile을 자동 생성하고 이미지를 빌드하는 기능을 지원한다. 이는 인프라 구성 및 배포 과정을 코드가 아닌 설명 기반으로 관리할 수 있게 해준다.
Justfile과 호환되는 변수 선언, 조건문, 내장 함수를 지원하여 복잡한 환경 설정을 처리할 수 있다. 변수는 CLI 인자로 오버라이드하거나 환경 변수에서 불러올 수 있으며 문자열 조작 함수를 통해 동적인 프롬프트 생성이 가능하다. include 지침을 통해 여러 Promptfile을 분할 관리함으로써 대규모 프로젝트에서도 확장성을 유지한다.
태스크 간의 의존성을 정의하면 위상 정렬을 통해 실행 순서를 자동으로 결정하며 순환 참조를 감지한다. --dry-run 옵션을 통해 실제 실행 전에 LLM에 전달될 프롬프트와 실행될 셸 명령어를 미리 확인할 수 있어 안전성을 확보했다. 또한 특정 OS에서만 실행되도록 제한하거나 실행 전 사용자 확인을 받는 등의 세밀한 메타데이터 옵션을 제공한다.
</> 코드 예제 포함
실무 Takeaway
- 자연어 프롬프트를 태스크 러너의 일급 시민으로 취급하여 복잡한 자동화 로직 구현 난이도를 낮춘다.
- 셸 명령어 실행 결과와 LLM의 추론을 결합하여 자가 치유 테스트나 지능형 배포 파이프라인을 구축할 수 있다.
- 기존 Make나 Just 사용자가 쉽게 적응할 수 있는 익숙한 문법을 제공하면서도 LLM 특화 기능을 강력하게 통합했다.
언급된 리소스
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료