AI와 엔지니어링 규율로의 전환

코드 생산의 경제학이 변했다

소프트웨어 엔지니어링의 주요 전환은 코드 생산의 경제학이 뒤바뀐 것입니다: 코드 라인을 생성하는 것이 이제 사실상 무료이며 즉시 가능합니다. 컴퓨팅 역사의 대부분 동안 코드는 생산 노동이 병목 현상이었기 때문에 귀중한 자산이었습니다. 오늘날 코드는 일회용 "이해의 물리화된 뷰"—현재는 유용하지만 오래되면 폐기 가능한 캐시가 되고 있습니다.

이 전환은 산업이 수제 "서버 펫"에서 불변 인프라 "가축"으로 이동한 것과 유사합니다. 서버를 직접 수정하면 드리프트와 불안정성이 발생한다는 것을 배운 것처럼, 애플리케이션 코드를 영구적이고 가변적인 아티팩트로 취급하면 기술적 엔트로피가 쌓입니다. 재생성이 저렴해지면 코드를 교체하는 것이 직접 수정하는 것보다 안전하고 효율적입니다.

코드 중심에서 평가 중심 엔지니어링으로

코드가 더 이상 병목이 아니므로, 소프트웨어 엔지니어링의 주요 과제는 생산에서 평가로 이동했습니다. 시스템의 가치는 코드 라인 자체에 있지 않고, 시스템이 올바르게 동작한다는 것을 검증할 수 있는 능력에 있습니다.

삭제 테스트

이 전환을 이해하기 위한 핵심 프레임워크는 "삭제 테스트"입니다: 시스템 전체 구현을 삭제한다면, 무엇이 이를 방해할까요?

답이 "필요한 동작을 정확히 알지 못한다" 혹은 "새 버전이 올바른지 판단할 방법을 모른다"라면, 문제는 코드 문제가 아니라 평가 문제입니다. 코드는 시스템 지식이 오직 그곳에만 존재할 때 비로소 귀중해집니다. 보다 규율 있는 AI 통합 워크플로우로 나아가기 위해 엔지니어는 엄격함을 코드 작성 행위에서 행동 정의·검증 행위로 옮겨야 합니다.

생산의 역할을 개발로서

AI가 생성한 코드 시대에 프로덕션은 개발 이후의 최종 목적지가 아니라 개발 단계 중 하나가 되었습니다. 엄격함은 다음을 통해 적용되어야 합니다:

  • Observability: 트레이스와 텔레메트리를 사용해 시스템에서 실제로 일어나는 일을 인코딩합니다.
  • Behavioral Testing: 특성 테스트, 캡처/리플레이, 트래픽 스플리터를 활용해 기존 동작을 관찰하고 인코딩합니다.
  • Production Evals: 프로덕션에서 직접 테스트와 평가를 실행해 비결정적 AI 출력의 정확성을 검증합니다.

엔지니어링 규율로의 복귀

일부는 AI가 소프트웨어 엔지니어링을 쓸모 없게 만든다고 주장하지만, 실제로 AI는 많은 엔지니어링 규율을 요구합니다, 적게가 아니라. 검증 엄격함이 따라가지 못한 채 코드를 빠르게 생성하면 시스템은 불안정해지고 "이색" 기술 부채가 축적됩니다.

AI 시대의 인간 가치

인간은 반복적이고 꼼꼼한 검증 작업에 근본적으로 약합니다—이 작업이 바로 품질 관문의 가장 약한 고리이기 때문입니다. 그러나 인간은 여전히 필수적입니다:

  • Creativity and Logic: 시스템 설계를 이끄는 논리적 도약과 영감을 제공합니다.
  • Architecture: AI 에이전트가 따를 고수준 목표와 제약을 정의합니다.
  • System Understanding: 코드만으로는 추론할 수 없는 조직 지식과 비즈니스 의도를 인코딩합니다.

"Vibe Coding"의 위험

"Vibe Coding"—AI가 만든 PR과 문서의 피상적인 설득력에 의존하는 행위—에는 큰 위험이 있습니다. AI가 저성능자도 생산적으로 보이게 만들수록, 업계는 겉보기에 올바르지만 근본적으로 결함이 있는 코드가 범람할 위험에 직면합니다. 유일한 대응책은 엄격한 엔지니어링 규율로 돌아가는 것입니다: 짧고 빠른 피드백 루프와 엄격하고 자동화된 검증.

"우리 머릿속 지식은 시스템에 인코딩하기 전까지 AI가 접근할 수 없습니다... 규율이 먼저, 쿠키는 나중에."

새로운 패러다임 요약

구 패러다임 AI 기반 패러다임
코드는 내구성 있는 자산이다 코드는 일회용 캐시이다
엄격함은 작성/검토에 있다 엄격함은 평가/관측에 있다
프로덕션은 최종 단계이다 프로덕션은 개발 단계 중 하나이다
인간 가치 = 올바른 코드를 작성하는 것 인간 가치 = 올바른 동작을 정의하는 것

Sources