AI 시대에 소프트웨어 기본기가 중요한 이유를 엉클 밥에게 물었습니다 — Tech Bridge
한 줄 요약
엉클 밥이 에이전트로 코딩하며 겪은 것을 이야기한다 — 프롬프트로 규칙을 쌓는 대신 결정론적 도구로 에이전트를 가두고, 인간의 규율이 아니라 인간의 가치만 옮기며, 사전 대규모 명세 대신 애자일식 반복으로 돌아갔다는 것.
영상 메타
- URL: https://youtu.be/IyJNc5vpN1Q
- 채널: Tech Bridge
- 길이: 56분 39초
- 업로드: 2026-08-21
- 조회수: 1923 / 좋아요 78
- 시청일: 2026-08-22 KST (🦉 가 자막 추출 후 요약)
픽업
- 에이전트도 지저분한 코드에 막힌다. 청소를 미루고 다음 작업을 시키면 한 곳을 고치며 다른 곳을 깨는 순환에 빠지고, 결국 “더는 못 하겠다”며 손을 놓는 지점이 온다. 임계값이 인간과 다를 뿐 임계값 자체는 존재한다.
- 규칙을 프롬프트에 쌓으면 에이전트가 그것을 “가이드라인” 정도로 다룬다.
lost in the middle때문에 길어진 지시의 중간이 사라지기 때문이다. 그래서 초기 프롬프트는 최소로 줄이고, 규칙은 사후에 결정론적 도구로 건다. - 결정론적 도구는 컨텍스트 창을 먹지 않아 계속 쌓을 수 있다. 다만 도구가 에이전트를 인간보다 느리게 만드는 지점이 한계이고, 그 지점을 아직 못 찾았다고 말한다.
- 인간의 규율을 에이전트에 강요하는 것은 실수다. TDD는 인간의 짧은 단기기억에 맞춰진 방식이라 에이전트에 시켜도 결국 함수를 쓰고 테스트를 쓰는 쪽으로 되돌아간다. 인간의 가치는 옮겨도 되지만 행동 방식은 아니고, 임계값은 조정 대상이다(crap 점수 4 → 6~8).
- 사전 대규모 명세는 폭포수의 재현이며 매번 실패했다고 말한다. 계획대로 못 가는 걸 사람이 뒤늦게 알아채고 멈춰 세워 다시 시작하게 된다. 변경 비용이 0에 가까워졌으니 조금 만들고 피드백 받고 재조직하는 쪽으로 돌아갔다.
- 명세는 휘발성이고 결과물이 곧 명세다. 자기가 만든 도구들에 대해 “받아서 쓰지 말고, 에이전트에게 그것을 보여준 뒤 당신 것을 만들게 하라”고 말한다.
- 에이전트가 잘못 가고 있음을 알아챈 근거는 코드가 지저분해서가 아니라 에이전트가 버둥거리는 모습을 알아봤기 때문이고, 그건 자기가 그 버둥거림을 직접 겪어봤기 때문이다. 기본기가 필요한 이유가 여기 있다 — 소프트웨어는 인간이 시도한 것 중 가장 복잡한 일이고, 기본기는 그 복잡도를 인간과 모델 둘 다 파악 가능한 형태로 조직하는 방법이다.
용어
- crap 점수 [하니스 · 패턴]: 테스트 커버리지와 순환복잡도를 한 공식에 섞어 함수가 얼마나 나쁜지 매기는 지표.
- 변이 테스트 (mutation testing) [하니스 · 패턴]: 소스의 부등호·등호·부호를 기계적으로 뒤집고 테스트가 실패하는지 보는 기법. 안 죽고 살아남은 변이는 테스트 구멍을 뜻한다.
- 순환복잡도 (cyclomatic complexity) [하니스 · 패턴]: 함수를 통과하는 경로의 수.
- lost in the middle [컨텍스트 · 캐시]: 컨텍스트 창이 길어질수록 앞과 뒤는 영향력이 남고 중간이 무시되는 현상.
- 궤적 (trajectory) [컨텍스트 · 캐시]: 컨텍스트에 한 번 들어간 방향이 이후 응답 전체를 물들이는 성질. 지우려면 컨텍스트를 비워야 한다.
- 깊은 모듈 (deep module) [하니스 · 패턴]: 인터페이스는 좁고 내부에 숨긴 것이 많은 모듈. 모델이 구현을 안 읽고 인터페이스만 봐도 되게 만든다.
- 전술적 / 전략적 프로그래밍 [워크플로우 · 문화]: 현장에서 싸우는 병사(전술) 대 전쟁 방향을 정하는 장군(전략). 에이전트는 전술에 강하고 전략에 약하다.
- 스펙 주도 개발 (spec-driven development) [워크플로우 · 문화]: 명세를 앞세워 구현으로 내려보내는 흐름.
- Gherkin [도구 통신 (MCP · CLI · API)]: given-when-then 형식으로 상위 수락 테스트를 기술하는 방식.