코드 작성은 이제 저렴해졌다
Source: Hacker News
코드 작성이 이제 저렴해졌다는 사실의 결과에 익숙해지는 것이 에이전트 기반 엔지니어링 실천을 채택하는 데 가장 큰 도전 과제입니다.
코드는 언제나 비쌌습니다. 깔끔하고 테스트된 수백 줄의 코드를 만드는 데 대부분의 소프트웨어 개발자는 하루 이상을 투자합니다. 우리의 엔지니어링 습관은 매크로 수준이든 마이크로 수준이든 이 핵심 제약을 중심으로 형성되어 있습니다.
매크로 수준에서는 프로젝트를 설계하고, 추정하고, 계획하는 데 많은 시간을 할애합니다. 이는 비싼 코딩 시간을 가능한 한 효율적으로 사용하기 위함입니다. 제품 기능 아이디어는 그 시간에 대한 대가 측면에서 얼마나 큰 가치를 제공할 수 있는지 평가됩니다—기능은 그 개발 비용을 여러 배 초과해서 벌어야만 가치가 있습니다!
마이크로 수준에서는 가용 시간과 예상되는 트레이드‑오프에 기반해 하루에 수백 가지 결정을 내립니다. 코딩 시간이 한 시간 더 늘어나더라도 그 함수를 조금 더 우아하게 리팩터링해야 할까요? 문서를 작성하는 것은 어떨까요? 이 엣지 케이스에 대한 테스트를 추가할 가치가 있을까요? 이를 위한 디버그 인터페이스를 구축하는 것을 정당화할 수 있을까요?
코딩 에이전트는 코드를 컴퓨터에 입력하는 비용을 크게 낮추어, 어떤 트레이드‑오프가 타당한지에 대한 기존의 개인적·조직적 직관을 많이 뒤흔듭니다.
병렬 에이전트를 실행할 수 있는 능력은 이를 더욱 평가하기 어렵게 만듭니다. 이제 한 명의 인간 엔지니어가 여러 곳에서 동시에 구현, 리팩터링, 테스트 및 문서화를 진행할 수 있기 때문입니다.
좋은 코드에도 비용이 듭니다
새 코드를 배포하는 비용은 거의 무료 수준까지 떨어졌지만… 좋은 코드를 배포하는 비용은 여전히 그보다 훨씬 비쌉니다.
제가 말하는 “좋은 코드”는 다음과 같습니다:
- 코드는 동작합니다. 의도한 대로 버그 없이 작동합니다.
- 우리는 코드가 동작한다는 것을 알고 있습니다. 코드를 목적에 맞게 사용할 수 있다는 것을 스스로와 다른 사람에게 확인시켜 주는 절차를 거쳤습니다.
- 올바른 문제를 해결합니다.
- 오류 상황을 우아하고 예측 가능하게 처리합니다: 행복한 경로만 고려하지 않습니다. 오류는 향후 유지보수자가 무엇이 잘못됐는지 이해할 수 있도록 충분한 정보를 제공해야 합니다.
- 단순하고 최소화되어 있습니다 – 필요한 것만 수행하고, 인간과 기계 모두가 현재 이해하고 미래에 유지보수할 수 있는 방식으로 구현되었습니다.
- 테스트로 보호됩니다. 테스트는 현재 코드가 동작함을 보여주며, 향후에 조용히 깨지는 것을 방지하는 회귀 테스트 스위트 역할을 합니다.
- 적절한 수준에서 문서화되어 있으며, 그 문서는 시스템의 현재 상태를 반영합니다 – 코드가 기존 동작을 변경하면 기존 문서도 그에 맞게 업데이트되어야 합니다.
- 설계가 미래의 변화를 고려합니다. YAGNI를 유지하는 것이 중요합니다 – 결코 오지 않을 미래 변화를 예상해 복잡성을 추가하는 코드는 종종 나쁜 코드가 됩니다 – 하지만 미래 변화를 지나치게 어렵게 만드는 코드를 작성하지 않는 것도 중요합니다.
- 그 외의 모든 관련 “‑ilities” – 접근성, 테스트 가능성, 신뢰성, 보안, 유지보수성, 가시성, 확장성, 사용성 – 개발 중인 특정 소프트웨어 클래스에 적합한 비기능적 품질 측정 항목들.
코딩 에이전트 도구는 이 중 대부분을 도와줄 수 있지만, 현재 프로젝트에 필요한 좋은 코드의 부분 집합을 확보하기 위해 도구를 사용하는 개발자가 여전히 상당한 부담을 짊어져야 합니다.
우리는 새로운 습관을 만들어야 합니다
도전 과제는 에이전시 엔지니어링의 가능성과 기회에 대응하는 새로운 개인 및 조직 습관을 개발하는 것입니다.
이러한 모범 사례는 아직 우리 산업 전반에 걸쳐 탐구 중이며, 저 역시 아직 파악하고 있습니다.
지금은 우리가 스스로를 재검토하는 것이 최선이라고 생각합니다: 직감이 “그걸 만들지 마, 시간 낭비야”라고 말할 때마다, 비동기 에이전트 세션에서 프롬프트를 바로 실행해 보세요. 최악의 경우 10분 후에 확인했을 때 토큰이 가치 없었다는 것을 알게 되는 정도입니다.