코드를 읽지 않는다는 것에 대한 단상

최근 코드를 읽지 않는 것에 대한 옹호라는 글을 읽었다. AI가 코드를 생성하는 시대에 라인별 코드 리뷰 대신 스펙과 테스트, 검증 인프라에 의존하자는 주장이었다. 이에 대한 내 생각을 정리한다.

코드를 전부 읽을 필요가 없다는 점에는 공감한다. AI가 작성하든 사람이 작성하든 버그는 언제나 발생할 수 있는 부분이다. 그리고 그것을 다른 사람이 읽는다고 해서 반드시 찾아낼 수 있는 것도 아니다. 실제로 문제가 발생한 뒤에 디버깅해서 추적하는 일이 훨씬 많지 않은가 생각한다. 코드 리뷰를 하면서 이상한 부분을 발견하는 경우도 있지만, 대부분은 정상적으로 동작하는 것처럼 보이다가 실제 운영 환경에서 문제가 터지는 경우가 많다.

그래서 여러 가지 테스트 단계가 있는 것이다. 유닛 테스트부터 통합 테스트, 스테이징 환경 테스트, Canary 배포까지. 코드를 읽는 것만큼이나 혹은 그보다 더 중요한 것은 코드가 의도한 대로 동작하는지 검증하는 것이다. AI가 코드를 인간보다 많은 버그를 발생시킨다고 한다. 하지만 그것은 테스트 코드와 코드 검증 시스템으로 해결할 수 있는 문제다. 정적 분석 도구, 린터, 보안 스캔, 뮤테이션 테스트 등 이미 우리는 인간의 검토를 보완할 수 있는 다양한 도구들을 가지고 있다.

인간이 코드를 직접 읽고 검토하는 것만이 유일한 해결책은 아니다. 오히려 AI가 생성한 코드를 검토하는 것보다 AI가 생성한 테스트 코드로 검증하는 것이 더 효과적일 수도 있다. 중요한 것은 코드가 아니라 제품이 의도한 대로 동작하는지다. 코드는 그저 제품을 만드는 수단 중 하나일 뿐이다.

물론 안전이 직접적으로 걸린 시스템이나 보안에 민감한 영역, 중대한 아키텍처 결정에서는 여전히 인간의 검토가 필요하다. 내비게이션에만 의존하다 보인 길을 찾는 감각을 잃게 되듯, AI에만 의존하다 보인 코드를 읽는 능력을 잃게 된다. 하지만 모든 코드를 읽으려는 집착은 이제는 버려야 할 때가 되었다. 코드는 점점 구현의 세부사항으로 이동하고 있으며, 스펙과 아키텍처, 검증 레이어가 핵심 산출물로 부상하고 있다. 이 흐름에 적응하는 것이 오히려 더 생산적인 개발자가 되는 길이다.

Author

Eric Han

Posted on

2026/02/25

Updated on

2026/02/25

Licensed under

Comments