모든 코드를, 항상 다시 작성하라

1 day ago 3

AI로 코드 생성 비용이 계속 낮아지면 프로덕션 코드를 희소한 자산으로 유지할 이유가 사라지고, 대규모 코드베이스를 지속적으로 재작성하는 것이 경제적으로 가능해질 것이라는 전망 이때 장기적으로 보존해야 할 것은 구현 코드가 아니라 가장 높은 수준의 요구사항/명세이며, 코드는 명세에서 필요할 때 다시 생성하는 일회성 산출물이 됨 새로운 보안 요구사항이나 더 나은 알고리듬이 나오면 오래된 코드를 수정하는 대신 전체 코드베이스를 새 요구사항에 맞춰 다시 생성할 수 있게 됨 하지만 자연어 명세와 현재의 AI 코드 생성은 모호성과 오류 때문에 사람의 검토가 필요해, “항상 전체를 재작성”하는 수준의 완전 자동화에는 부족하다고 봄 결국 핵심은 AI가 코드를 잘 쓰는 것보다 형식 기법(formal methods)으로 명세를 모호하지 않게 만들고 사람의 감독 없이 전체 시스템을 재생성하는 것이며, 그렇게 되면 코드보다 명세가 소프트웨어의 장기 자산이 됨 프로덕션 코드를 희소한 자산으로 보지 않기 기존 소프트웨어를 개선할 때 이미 존재하는 막대한 코드와 형식 도구를 다룰 수 있는 개발자 부족이 장애물처럼 보이지만, 코드 자체의 재작성 비용이 크게 떨어진다면 상황이 달라짐 대규모 코드베이스를 지속적으로 재구현하는 비용이 현재 SaaS 구독료 정도까지 내려가는 상황을 예상함 이 환경에서는 프로젝트 전체 코드를 비교적 자주 다시 생성하면서 여러 종류의 요구사항을 새로 반영할 수 있음 새로운 보안 문제가 발견되면 모든 애플리케이션에 새로운 보안 설계를 적용함 익숙한 문제를 위한 더 좋은 알고리듬이 등장하면 작은 프로젝트별 조정을 포함해 새 알고리듬으로 다시 생성함 성능이나 다른 비기능 요구사항도 재생성 과정에 포함할 수 있음 기존 legacy code의 가치는 자동 대체가 쉬워질수록 감소하며, 강한 형태로는 코드 자체가 장기간 보존할 대상이 아니라 자동 생성되는 부산물이 됨 현재 assembly language가 고급 언어로부터 자동 생성되는 결과물로 취급되는 것처럼, 오늘날의 일반적인 소스 코드도 같은 위치로 이동할 수 있음 다만 이 변화의 핵심을 현재의 생성형 AI만으로 보지 않으며, 사람의 감독 없이 전체 코드베이스를 생성하려면 형식 기법이 결정적인 역할을 해야 한다고 봄 자동 프로그래밍은 이미 반복되어 온 변화 자연어 요구사항에서 AI가 거의 모든 프로그램을 생성하게 된다는 전망은 과거의 automatic programming...

Read Entire Article