← 목록으로

AI에게는 지혜가 없고 당신에게도 없게 될 것이다

  • Scala 라이브러리 Monix의 저자 Alexandru Nedelcu가 쓴 글로, 코드를 읽고 쓰지 않게 된 사람과 조직은 스스로 위험을 자초하는 것이라고 주장함
  • 바이브 코딩된 프로젝트는 시간이 지나며 유지보수 불가능한 상태로 퇴화하는데, 나쁜 아키텍처의 효과는 수개월~수년 뒤에야 드러나 즉각 측정할 수 있는 지표가 없기 때문
  • AI는 즉각적인 보상 신호가 필요한 강화학습 구조상 유지보수성을 학습할 수 없고, 초보자용 규칙서와 대체로 질이 낮은 야생의 코드에서 패턴을 배움
  • AI에 의존하는 사람은 선택하지 않고, 실수에 책임지지 않고, 실수에서 배우지 않으므로 숙련(mastery)에 도달할 수 없음
  • 미래에는 "NO-AI" 정책을 경쟁 우위로 내세우는 회사가 늘어날 것이며 그들이 옳을 것이라고 예측함

코드를 읽지 않는 시대

  • 저자가 최근 한 달 사이에만 들은 말들: "2025년 이후 코드를 쓴 적이 없다", "코드 리뷰는 죽었다", "사람들은 더 이상 코드를 읽지 않는다"
  • 업계가 변하고 있는 것은 분명하지만, 코드를 읽고 쓰지 않는 함정에 빠진 사람과 조직은 위험을 자초하는 것임

나쁜 코드는 늦게 드러남

  • 유지보수성과 좋은 아키텍처에는 적용할 수 있는 좋은 측정 지표가 없음. 나쁜 아키텍처의 효과를 알아채는 데 수개월에서 수년이 걸리기 때문임
  • 나쁜 코드의 정의는 가능함: 하나를 바꾸면 멀리 떨어진 곳이 비결정적으로 깨지는 나비효과 같은 코드, 기능 하나 추가에 여러 곳을 고치고도 빠뜨려 비일관성이 생기는 코드, 설계 불변식이 불분명한데 그것을 지킬 원저자도 떠난 코드, 목(mock)을 요구하고 구현 세부를 노출해 리팩터링을 막는 취약한 테스트를 낳는 코드
  • 숙련된 엔지니어는 장애를 디버깅하며 쌓은 직관으로 나쁜 효과가 관측되기 전에 코드 냄새를 감지함
    • 이 직관은 모든 것이 맥락 의존적이라 경직된 규칙 목록으로 만들 수 없음. 초보자를 생산적으로 만드는 규칙·레시피는 전문가와 호환되지 않으며, 전문가는 규칙을 따르지 않고 규칙을 만듦

AI가 유지보수성을 배울 수 없는 이유

  • 강화학습에는 즉시 측정 가능한 보상 신호가 필요하지만 유지보수성의 효과는 수개월~수년 뒤에 나타남
  • AI는 초보자용 규칙서에서 규칙을 배우고 야생의 코드에서 패턴을 배우는데, 야생의 코드 대부분은 질이 낮음
  • 유지보수 가능한 코드에 대한 적합도 함수(fitness function)는 정의할 수 없음. 가능했다면 이미 린터에 들어가 있었을 것임
  • 최신(SOTA) 모델조차 코드 "단순화"에 서투름
    • 재사용되지도 않는 작은 함수들로 쪼개는 선택을 하는데, 큰 함수를 이해하려고 추출된 작은 함수의 구현까지 읽어야 한다면 추출은 나쁜 선택임
    • 명료하고 재사용 가능한 함수 정의는 숙달이 필요한 기술이며, Dreyfus 모델 기준 "상급 초보자"에 머무는 대부분의 개발자도, 현재의 AI도 이를 하지 못함

숙련에 도달할 수 없는 사람들

  • 사람이 통제권을 쥐고 실수에서 배운다면 문제가 덜하겠지만, 지금은 코드 작성뿐 아니라 읽기까지 AI에 의존하는 추세임
  • 그런 사람들은 더 이상 선택을 하지 않고, 코딩 실수에 책임지지 않고, 실수에서 배우지도 않으므로 숙련에 도달하지 못함. 실수는 AI가 하는데 AI도 그 실수에서 배우지 않고, AI에 의존하는 사람도 배우지 않음

그래도 LLM은 좋은 도구임

  • 저자는 러다이트가 아니며 AI를 일상 업무에 통합했고 배운 것을 동료들에게 가르치고 있음. 지루하고 소모적인 일은 기꺼이 LLM에 맡기며 효율 이득도 누리고 있음
  • 다만 결국은 도구일 뿐이고 다른 혁명들처럼 그 빛도 바랠 것이며, 이미 바래고 있다고 봄. 요즘 기술 뉴스는 솔직히 꽤 지루함

예측

  • 사람들은 예측에 서툴고 미래는 모두를 놀라게 하겠지만, 저자의 예측: "NO-AI" 정책을 경쟁 우위로 자랑스럽게 내세우는 회사가 점점 늘어날 것이고, 그들이 옳을 것임
  • "자동화된 조립 라인이 항상 더 효율적"이라는 반론에 대해, 소프트웨어 산업은 원래부터 모든 것이 대규모 자동화라 LLM이 유일한 수단이 아니며 맥락에 따라 오히려 주의를 분산시키는 것일 수 있다고 답함
  • "코딩이 해결됐다"는 말은 어떤 의미로도 성립하지 않음. LLM에게 C/C++ 컴파일러를 만들게 할 수도 있지만 GCC나 LLVM을 클론하면 더 좋은 컴파일러를 공짜로 얻음. 같은 CRUD 앱을 재발명하는 것보다 나은 시간 사용처가 있음
  • 사람과 회사가 책임 있게 사용하지 않으면 대가가 따를 것임
그냥 목록으로
원문 보기 ↗