AI 코딩 4분 소요

AI가 금방 만든 소프트웨어, 오래 쓸 수 있을까요?

핵심 요약

  • 코드가 실행된다고 해서 오래 쓸 수 있는 소프트웨어가 완성된 것은 아닙니다.
  • 소프트웨어를 오래 쓰려면 기존 데이터를 지키고 코드를 쉽게 수정할 수 있어야 합니다.
  • 쓰면서 드러나는 문제까지 코드를 빨리 만드는 것만으로 모두 찾아내기는 어렵습니다.
  • AI로 아낀 시간을 테스트와 문서화에 쓰면 유지보수에도 도움이 될 수 있습니다.

AI로 코드를 빨리 만들 수 있다면 오래 쓸 소프트웨어도 그만큼 빨리 만들 수 있을까요? 첫 화면이 뜨는 순간에는 답이 “그렇다”처럼 보입니다. 하지만 업데이트를 하다가 저장된 메모가 사라진다면, 무엇을 보고 완성됐다고 판단했는지부터 되짚게 됩니다.

첫 실행은 출발점입니다

AI의 도움으로 개인용 메모 앱을 만든다고 해보죠. 글을 입력하고 저장할 수 있고, 검색도 잘됩니다. 메모 10개를 넣어봤는데 별문제가 없다면 꽤 만족스러울 겁니다.

이제 조건을 조금 바꿔보죠. 휴대폰과 노트북에서 같은 메모를 동시에 수정하거나 저장하는 도중 연결이 끊기면 어떻게 될까요? 앱을 업데이트한 뒤에도 예전 메모를 그대로 열 수 있을지 확인해야 합니다.

“메모를 저장한다”는 짧은 기능 설명만으로는 이런 상황까지 드러나지 않습니다. 화면에 보이는 저장 버튼은 같아도, 그 버튼을 눌렀을 때 제대로 처리해야 할 상황은 훨씬 많습니다.

작동하는 코드인지 확인할 때와 계속 믿고 쓸 수 있는 제품인지 검증할 때는 살펴볼 범위가 다릅니다. 코드를 만드는 시간이 줄어도 확인해야 할 조건이 저절로 사라지지는 않습니다.

쓰면서 알게 되는 문제가 있습니다

그렇다고 소프트웨어를 오래 묵혀두면 저절로 좋아진다는 뜻은 아닙니다. 시간이 흐르기를 기다리기보다 직접 쓰면서 문제를 찾아 고쳐야 합니다.

만든 사람은 메모 제목을 짧게 쓸 수 있습니다. 하지만 다른 사용자는 본문 전체를 제목 칸에 붙여넣을 수도 있죠. 검색을 가장 중요하게 여기는 사람이 있는가 하면, 몇 년 전 기록을 파일로 꺼내는 기능이 더 중요한 사람도 있을 겁니다.

사람마다 쓰는 방식이 다르다는 걸 알면 제품을 보는 눈도 바뀝니다. 처음에는 부가 기능으로 여겼던 내보내기가 오래 쓰는 사용자에게는 꼭 필요한 기능일 수 있습니다.

테스트로 미리 확인할 수 있는 문제도 많습니다. 연결이 끊기거나 데이터가 많이 쌓이는 상황은 실제로 몇 년을 기다리지 않아도 재현할 수 있습니다. 이런 테스트의 초안을 AI에 맡겨볼 수도 있습니다.

다만 테스트할 상황을 빠뜨렸다면 테스트를 모두 통과해도 그 문제는 남습니다. 검사를 빨리 만드는 능력도 필요하지만, 무엇을 검사해야 하는지 판단할 줄도 알아야 합니다.

오래가는 소프트웨어에는 지켜야 할 약속이 있습니다

메모 앱의 저장 방식을 바꾸면 검색 속도가 빨라진다고 해보죠. 새로 작성한 메모는 잘 검색됩니다. 그런데 이전 버전에서 저장한 메모를 읽지 못한다면 어떨까요?

개발자는 기능을 개선했다고 생각하겠지만, 사용자에게는 기록을 잃는 사고입니다.

이때 필요한 것이 하위 호환성입니다. 프로그램이 바뀌어도 이전 데이터나 사용 방식을 계속 지원하는 성질을 말합니다. 소프트웨어를 오래 쓸수록 이처럼 지켜야 할 약속도 쌓입니다.

유지보수도 비슷합니다. 다음 담당자가 코드를 읽고 수정할 수 있어야 하니, 특히 “왜 이렇게 만들었는지”를 남겨야 합니다. 얼핏 불필요해 보이는 처리도 과거 데이터가 깨지는 일을 막으려고 넣었을 수 있습니다.

AI로 코드를 수정할 때도 이런 사정을 알려줘야 합니다. 예전 데이터에 어떤 특성이 있는지 설명하지 않고 코드를 간단하게 정리해달라고만 하면, 수정하면서 지켜야 할 조건을 빠뜨릴 수 있습니다.

그래서 코드가 얼마나 짧은지보다 수정의 영향 범위를 살펴야 합니다. 저장 기능 하나를 고쳤을 때 어디까지 확인해야 하는지 알아야 다음에도 안심하고 코드를 바꿀 수 있습니다.

절약한 시간을 어디에 쓰느냐가 중요합니다

AI로 구현 시간을 줄였다고 해서 남은 시간을 모두 새 기능을 만드는 데 쓸 필요는 없습니다. 같은 메모 앱을 만들더라도 AI에 다음으로 무엇을 요청할지는 달라질 수 있습니다.

“공유 버튼을 추가해줘”에 앞서 “저장 도중 오류가 나도 원본 메모가 남는지 확인하는 테스트를 작성해줘”라고 요청할 수 있습니다. 사용자가 가장 아끼는 데이터를 지키기 위한 테스트입니다.

업데이트를 준비한다면 이전 버전의 데이터를 불러오는 과정부터 점검할 수 있습니다. 백업 기능을 만들었다면 실제로 복원되는지도 확인해야 합니다. 백업 파일이 생겼다고 해서 그 파일로 데이터를 복구할 수 있다는 보장은 없으니까요.

문서를 쓰는 데도 시간을 들일 수 있습니다. 설치 방법과 함께 저장 형식을 선택한 이유를 적고, 알려진 제약이나 오류가 났을 때 확인할 항목도 남기는 겁니다. 다음 담당자에게는 이런 설명이 기능 하나만큼 유용할 수 있습니다. 그 담당자가 몇 달 뒤의 나일 수도 있고요.

물론 AI가 작성한 테스트와 설명도 검토해야 합니다. 코드와 테스트가 똑같이 잘못된 가정을 바탕으로 만들어졌다면, 서로 맞아떨어져도 실제 요구사항을 놓칠 수 있습니다. 중요한 동작은 사람이 정한 기대 결과와 대조해야 합니다.

AI가 코드를 빨리 만드는 능력을 유지보수에도 쓸 수 있습니다. 한 번에 조금씩 수정한 뒤 결과를 확인하고, 그때 발견한 문제를 다시 고치는 과정을 더 자주 반복하는 데 도움이 될 수 있습니다.

다음 업데이트도 믿고 설치할 수 있을까요?

오래 쓸 소프트웨어를 빨리 만들려면 구현뿐 아니라 검증과 유지보수도 빨라져야 합니다. AI로 아낀 시간을 데이터를 지키고 코드를 안전하게 고치는 데 쓰면, 빠르게 만든 제품을 오래 쓸 가능성도 커집니다. 다음 업데이트를 내놓을 때도 사용자가 안심하고 설치할 수 있는지까지 확인해야 합니다.

AI 코딩 소프트웨어 유지보수

댓글

    댓글을 불러오는 중...