작동이 검증된 코드를 전달하는 것이 당신의 일이다

1 month ago 12

  • AI 보조 개발 환경에서 미숙한 엔지니어가 검증되지 않은 대규모 PR을 제출하는 사례가 늘고 있음
  • 개발자의 핵심 임무는 단순한 코드 작성이 아니라 작동이 입증된 코드를 제공하는 것임
  • 이를 위해 수동 테스트자동 테스트 두 단계를 반드시 수행해야 함
  • 코딩 에이전트 역시 자신이 만든 변경 사항을 스스로 검증하도록 설정해야 함
  • 최종적으로 책임은 인간 개발자에게 있으며, 검증 증거를 포함한 코드만이 진정한 가치가 있음

검증되지 않은 코드 제출의 문제

  • LLM 도구를 활용한 주니어 엔지니어가 거대한 미검증 PR을 제출하고 코드 리뷰에 의존하는 사례가 언급됨
    • 이는 무례하고 비효율적이며, 개발자로서의 책임 방기 행위로 지적됨
  • 소프트웨어 엔지니어의 역할은 단순한 코드 생산이 아니라 작동이 입증된 코드 제공
    • 검증되지 않은 코드는 검토자에게 부담을 전가하는 행위로 간주됨

코드가 작동함을 입증하는 두 단계

  • 첫 번째 단계는 수동 테스트로, 직접 코드가 올바르게 동작하는 것을 확인해야 함
    • 시스템을 초기 상태로 설정하고, 변경을 적용한 뒤 결과를 검증하는 과정 필요
    • 터미널 명령어와 출력 결과를 코드 리뷰 코멘트에 첨부하거나 화면 녹화 영상으로 증명 가능
    • 정상 동작 후에는 엣지 케이스 테스트를 통해 문제점을 탐색해야 함
  • 두 번째 단계는 자동 테스트로, LLM 도구의 발전 덕분에 필수 절차로 강조됨
    • 변경 사항과 함께 자동 테스트를 포함해야 하며, 구현을 되돌리면 테스트가 실패해야 함
    • 테스트 작성은 수동 테스트와 동일한 절차를 따르며, 테스트 하네스 통합 능력이 중요함
    • 자동 테스트만으로 충분하다고 판단해 수동 테스트를 생략하는 것은 잘못된 접근으로 지적됨

코딩 에이전트의 역할과 검증

  • 2025년 LLM 분야의 주요 흐름은 코딩 에이전트의 급성장으로, Claude Code와 Codex CLI 등이 대표적임
    • 이들은 코드를 실행해 문제를 스스로 수정할 수 있음
  • 코딩 에이전트도 자신의 변경을 입증해야 하며, 수동 및 자동 테스트를 수행해야 함
    • CLI 도구의 경우 에이전트가 직접 실행하도록 학습시키거나, Click의 CLIRunner 같은 시스템으로 자동화 가능
    • CSS 변경 시에는 스크린샷 캡처로 결과를 확인하도록 설정 가능
  • 프로젝트에 기존 테스트가 있다면, 에이전트는 이를 확장하거나 패턴을 재사용함
    • 테스트 코드의 구성과 품질이 에이전트의 테스트 생성 품질에 직접적인 영향을 미침
    • 테스트 코드에 대한 미적 감각은 시니어 엔지니어를 구분하는 핵심 역량으로 언급됨

인간의 책임과 코드의 가치

  • 컴퓨터는 책임을 질 수 없으며, 인간이 그 역할을 맡아야 함
    • LLM이 대규모 패치를 생성하는 것은 더 이상 가치 있는 일이 아님
  • 진정한 가치는 작동이 입증된 코드를 제공하는 데 있음
    • PR 제출 시 반드시 코드가 올바르게 작동함을 보여주는 증거를 포함해야 함

Read Entire Article