서비스를 개발하다보면 더 나은 설계가 가능함에도 일정 등으로 미루게 되는 경우가 있다. 이를 기술 부채라고 말한다. 언젠가는 상환(해결)해야 할 빚이라는 뜻이다.

그저 미래에 해결해야 할 문제라면 부채라는 표현을 사용하지 않았을 것이다. 우리가 집이나 자동차를 사기 위해 대출을 받으면 원금을 갚을 때까지 이자를 낸다. 마찬가지로 기술 부채도 해결하기 전까지 이자가 발생하는데, 비효율적인 설계로 인해 추가적으로 소모되는 시간, 비용, 노력 등이 이에 해당된다.

여기까지 읽었다면 의문이 하나 들 수도 있다.

이제 AI 에이전트가 알아서 코드를 잘 만들어주니까 기술 부채는 없어지는 것 아닌가?

AI 시대에 들어서면서 코드 생산성이 폭발하고 있는 지금, 기술 부채는 과연 사라지게 될까? 아쉽게도 아니다.


나는 AI가 생성한 코드를 리뷰하는 것이 기술 부채라고 생각했다

생성형 AI가 이미 왠만한 코드는 인간보다 훨씬 빠르고 잘 만들어준다는 것은 보편적으로 퍼진 인식이다. 나 역시 (여전히 조금은 분하지만) 인정할 수밖에 없다.

얼마 전 이북리더기에서 사용할 안드로이드 마크다운 에디터 앱을 Kotlin 언어로 개발할 때에도 AI 덕을 제대로 봤다. 중간중간 문맥이나 흐름만 잘 잡아주면 왠만한 서비스는 무리 없이 개발할 수 있음을 느꼈다. 아마 많은 분들이 비슷하게 공감할 것이다.

AI가 몇 초만에 만들어주는 몇 백 줄의 코드를 보고 있자니 그런 생각이 들었다. ‘이렇게 생성된 코드가 내 의도를 잘 반영해는지 리뷰해야 하지 않나? 지금은 잘 동작하는 것처럼 보여도 혹시 모르지 않은가?’ 그러자 내 나름의 결론이 나왔다.

그렇다면 AI 시대의 기술 부채는 몇 초만에 생성된 수많은 코드를 리뷰하는 것이구나!

여기까지 생각이 다다르자 AI 시대의 기술 부채에 대해 더 궁금해져서 조사를 시작했다. 이미 나와 비슷한 생각을 한 사람들이 많았던지 ‘인지 부채’와 ‘의도 부채’라는 용어가 나와있었다. 하지만 이들은 어디까지나 파생된 용어일 뿐, 내가 생각했던 AI 시대의 기술 부채는 아니었다.

300 (최근 들어 기술 부채와 인지 부채, 의도 부채가 함께 언급되곤 한다.)


AI가 코드를 생성하는 시대에도 우리가 놓치지 말아야 할 기술 부채

본래의 기술 부채는 AI 시대에도 동일하게 적용된다. Toby Lee님의 블로그 글에 잘 정리되어있는데, 기술 부채의 본질은 더 나은 설계를 알면서도 개선하지 못함이다. 부채이기 때문에 원금(개선되지 못한 코드)과 이자(기존 코드를 다루면서 소모되는 모든 시간)가 존재한다.

AI 에이전트가 개발을 주도하는 경우에도 기술 부채는 생길 수 있다. 서비스를 운영하면 자연스레 해당 도메인의 지식이 늘어나기 마련인데, 그러면 처음 개발할 때엔 미처 몰랐던 개선점들이 인식된다. 하지만 아직 코드에는 반영되지 않았다면, 기술 부채가 발생하기 시작한다.

내가 이북리더기 전용 앱을 개발하던 상황을 예로 들어보겠다. 처음 앱을 개발할 때엔 일단 AI가 생성하는 코드로 원하는 동작을 해내는 데에 집중했다. 하지만 이북리더기에서 테스트하고 직접 사용하는 과정에서 생각지 못한 개선점들을 발견했다.

이북리더기의 e-잉크 디스플레이는 화면 재생률이 낮고 잔상이 심하기 때문에 텍스트 에디터 클래스를 오버라이딩해서 최적화 설정으로 커스터마이징 후 사용하는 것이 더 나은 설계임을 알게 된 것이다. 만약 이걸 알았으면서도 개선하지 않으면, 텍스트 에디터 클래스를 사용하는 소스코드 파일마다 별도로 최적화 설정을 적용하고 관리하는 매 시간이 기술 부채의 이자로 작용하는 것이다.

그렇다면 위에서 언급했던 ‘AI가 쏟아내는 코드를 인간 개발자들이 미처 전부 리뷰하지 못하는 현상’은 무엇일까? 흔히 ‘인지 부채’라고 표현되지만, 여기에는 사실 원금이 없다. 앞으로 이해해야 할 것들만이 남아있는 모양인 것이다. 그래서 부채라는 단어가 어울리지 않는다.

AI가 만들어낸 코드에는 의도가 남아있지 않는 현상을 ‘의도 부채’라고 표현되기도 한다. 여기에도 원금은 존재하지 않는다. 애초에 존재하지 않는 정보이니까. 그래서 이 현상 역시 부채라는 단어로 비유하기에 적절치 않다.


기술 부채 상환에 여전히 사람이 필요한 이유

기술 부채를 상환하는 능력은 AI가 압도적으로 뛰어나다. 명확한 설계 개선 방향이 제시되면 누구보다 빠르게 리팩토링이 가능하기 때문이다. 그렇다고 사람의 손길이 더 이상 필요없다는 이야기는 아니다.

생성형 AI가 주어진 요구사항에 맞춰 기존 코드를 빠르게 리팩토링할 수는 있어도, 언제 얼만큼 기술 부채를 상환해야 하는지 판단하는 것은 어렵다. AI가 서비스 개발 과정에서 해당 도메인에 대한 이해도가 높아지고 설계의 개선점을 찾아낼 수 있을지도 확실치 않다.

당장 이번 달에 새로운 기능을 출시해서 시장 점유를 노릴지, 지금까지의 경험으로 알게된 개선점을 기존 설계에 적용해야 할지 고민하는 것은 여전히 AI에게 온전히 맡길 수 없는 것이다.

정리하면 이렇다. AI 시대에도 기술 부채는 여전히 존재한다. 그리고 기술 부채를 상환하는 것은 AI가 잘 하는 영역이다. 하지만 기술 부채를 인지하고 어느 정도까지 해소할지 결정하는 것은 사람의 몫이다.


함께 읽어보면 좋은 아티클