예산이 빠듯하다면 유연한 코드보다 딱딱한 코드가 낫다
AI 에이전트나 LLM 기반 앱을 만들 때, '나중에 쓸 수도 있으니' 식의 유연한 설계보다 지금 필요한 것만 명확하게 하드코딩하는 편이 비용과 복잡도를 낮춰준다는 주장입니다. 추상화와 일반화는 멋있어 보이지만 토큰과 시간을 더 많이 소모합니다.
일반적인 소프트웨어 개발에서는 '유연하고 재사용 가능한 코드'가 미덕으로 여겨집니다. 하지만 LLM(대형 언어 모델)을 활용한 에이전트나 자동화 파이프라인을 구축할 때는 사정이 다릅니다. 유연성을 위해 추상 계층을 쌓으면 코드가 길어지고, 그 코드를 LLM에 넘길 때 토큰 수가 늘어나 비용이 올라갑니다.
반면 '지금 이 작업만' 처리하도록 딱딱하게 고정된(하드코딩된) 코드는 짧고 LLM이 이해하기 쉽습니다. LLM이 코드를 읽고 수정하거나 실행 결과를 판단할 때 맥락이 간결할수록 오류가 줄고 토큰도 절약됩니다. 이 글은 '미래를 위한 설계'가 예산이 부족한 개인 개발자나 소규모 팀에게는 오히려 부담이 될 수 있다고 지적합니다.
핵심 포인트
용어 한 줄 설명
- AI 에이전트
- 사람 대신 정보를 찾거나 작업을 처리하도록 만든 AI 프로그램입니다.
- 하드코딩
- 특정 값이나 동작을 코드 안에 직접 고정해서 적어두는 것으로, 나중에 바꾸기 어렵지만 단순하고 명확합니다.
- 소프트웨어
- 컴퓨터나 스마트 장치에서 작업을 수행하는 프로그램입니다.
- 대형 언어 모델
- ChatGPT, Claude처럼 글을 읽고 쓰고 코드를 짜는 데 쓰이는 대규모 AI 프로그램.
- 자동화 파이프라인
- 사람이 직접 하지 않고 프로그램이 자동으로 순서대로 처리하는 작업 흐름입니다.
- 파이프라인
- 데이터를 가져오고 바꾸고 내보내는 여러 작업을 순서대로 묶은 흐름입니다.
- 추상화 계층
- 여러 상황에서 재사용할 수 있도록 코드를 일반화한 구조로, 유연하지만 복잡도가 높아집니다.
- YAGNI
- 'You Aren't Gonna Need It'의 약자로, 지금 당장 필요하지 않은 기능은 미리 만들지 말라는 개발 원칙입니다.