본문 바로가기

내 이야기/생각노트

AI가 당신의 10년 묵은 스파게티 코드를 구원할 수 없는 이유 (feat. 제조사 SW의 눈물)

320x100

"이거 AI 돌려서 싹 정리하죠?" 요즘 회의 시간이나 커뮤니티에서 종종 듣는 말입니다. AI 툴이 비약적으로 발전하면서, 복잡하고 지저분한 레거시 코드(Legacy Code)를 AI에게 맡겨 깔끔하게 리팩토링하자는 주장이 힘을 얻고 있습니다.

하지만 20년 넘게 안드로이드와 제조사 SW를 다뤄온 제 입장에서 단호하게 말씀드립니다. "그건 판타지입니다."

오늘은 왜 AI가 레거시 코드의 만능열쇠가 될 수 없는지, 특히 현업의 관점에서 이야기해 보려 합니다.

1. SW의 진짜 가격표는 '코드'가 아니라 '검증'에 붙어 있다

많은 분이 간과하는 사실이 있습니다. 소프트웨어의 가치는 코드를 짜는 행위가 아니라, **"이 코드가 어떤 상황에서도 죽지 않고 돈을 벌어다 준다"는 검증(Verification)**에서 나옵니다.

10년 된 코드에는 지난 10년의 역사가 담겨 있습니다.

  • 특정 AP 칩셋에서만 발생하는 발열 이슈를 잡기 위한 코드
  • Android 구버전과 신버전의 충돌을 막기 위한 덕지덕지 붙은 if 문들
  • 공장 라인 검사기와의 통신 타이밍을 맞추기 위한 딜레이

이 코드들은 겉보기에 더럽고 비효율적일 수 있습니다. 하지만 그건 수억 원의 비용을 들여 '검증'을 마친, 살아남은 코드들입니다.

2. AI는 '맥락(Context)'을 모른다

AI에게 이 코드를 던져주면 뭐라고 할까요? "이 부분은 중복이고, 이 부분은 Deprecated 된 함수네요. 최신 문법으로 깔끔하게 바꿨습니다!"

결과는 뻔합니다. 코드는 예뻐졌지만, 현장에서는 에러가 터질 겁니다. AI는 코드 텍스트만 볼 뿐, 그 코드가 탄생하게 된 하드웨어의 제약, 파생 모델의 히스토리, 현장의 땀방울은 알지 못하기 때문입니다.

3. 배보다 배꼽이 더 큰 '재검증'

AI가 고쳐준 코드를 그대로 상용 제품에 올릴 수 있을까요? 절대 불가능합니다. 결국 사람이 다시 붙어서 하나하나 검증해야 합니다.

10년 치가 쌓인 코드를 뒤집어엎고 다시 전수 검사(Full Regression Test)를 한다? 회사 경영진에게 이 비용을 결재해달라고 하면 아마 반려당할 겁니다. 검증되지 않은 깔끔함보다는, 검증된 지저분함이 상업적으로는 훨씬 가치 있기 때문입니다.

4. 결론: AI는 '마법사'가 아니라 '부관'이다

저는 AI를 부정하지 않습니다. 오히려 매일 사용합니다. 하지만 그 용도는 명확합니다.

  • 설계/분석: Agent 모드로 전체적인 그림을 그릴 때 조언을 구하고,
  • 구현: Ask 모드로 내가 작성할 코드의 보조를 맞추게 합니다.

AI는 제 명령을 수행하고 제가 검토할 수 있는 결과물을 가져오는 가장 든든한 부하직원이지, 제 판단을 대신해 주는 책임자가 아닙니다.

도구는 도구답게 쓸 때 가장 빛납니다. AI에 대한 환상보다는, 내 프로젝트의 특성에 맞게 '검증 가능한 범위'에서 AI를 활용하는 지혜가 필요한 시점 아닐까요?

반응형