소프트웨어 설계는 단순히 코드를 짜는 일이 아니다. 그것은 수많은 결정의 연속이며, 그중에는 ‘아니오’라고 말할 줄 아는 용기가 필요한 순간들이 있다. 그런데 최근 AI 도구가 마치 설계자의 역할을 대신할 수 있다는 환상이 퍼지고 있다. 클로드나 다른 생성형 AI가 제안하는 아키텍처는 언뜻 보기에는 그럴듯해 보일지 모른다. 하지만 그 제안이 정말로 프로젝트의 장기적인 성공을 보장할 수 있을까?
문제는 AI가 가진 근본적인 한계에 있다. AI는 패턴을 학습하고 이를 재조합하는 데 탁월하지만, 진정한 설계의 핵심은 ‘맥락 이해’와 ‘책임 있는 거절’에 있다. 예를 들어, 클라이언트가 요구하는 기능이 기술 부채를 쌓아올리는 방향이라면, 인간 설계자는 그 위험을 지적하고 대안을 제시해야 한다. 하지만 AI는 그런 비판적 판단을 내릴 수 없다. 데이터에 기반한 확률적 추론만 가능할 뿐, ‘왜 이 길이 옳지 않은지’를 깊이 있게 설명하거나, 때로는 ‘아니오’라고 단호하게 말할 수 없다.
더 큰 문제는 책임 소재다. 설계 결정에 인간의 이름이 없다면, 그 결정은 누구의 것도 아니다. 프로젝트가 실패했을 때, AI는 책임을 질 수 없다. 결국 누군가는 그 대가를 치러야 하는데, 그 누군가는 언제나 개발자나 조직이다.
“만약 인간의 이름이 설계 결정에 없다면, 아무도 그것을 소유하지 않는다. 그리고 아무도 그것을 위해 싸우지 않을 것이다.”
이 말은 AI 도구가 가져온 새로운 위험을 정확하게 지적한다. 설계는 단순히 기술적 선택이 아니라, 조직의 비전과 자원을 고려한 전략적 결정이다. 그런 결정에 인간의 판단이 배제된다면, 프로젝트는 방향성을 잃고 표류할 수밖에 없다.
물론 AI가 설계 과정에서 유용한 도구가 될 수 없다는 말은 아니다. 아이디어 발굴, 문서화, 또는 초기 프로토타입 생성 등에서는 뛰어난 성능을 발휘한다. 하지만 최종 결정권은 언제나 인간에게 있어야 한다. AI는 건축 현장의 인부처럼 ‘건설’을 돕는 역할에 머물러야 하며, 설계자의 역할까지 넘보게 해서는 안 된다. 기술이 발전할수록 그 경계는 더 명확히 그어져야 한다.
이 문제를 해결하려면 두 가지가 필요하다. 첫째, AI 도구의 한계를 명확히 인식하는 것이다. AI가 제안하는 모든 것이 최선은 아니며, 때로는 위험한 선택일 수도 있다. 둘째, 설계 결정에 대한 책임을 명확히 하는 문화다. 누가 어떤 결정을 내렸는지 기록하고, 그 결정에 대한 근거를 문서화해야 한다. 그래야만 프로젝트가 실패했을 때, 그 원인을 분석하고 개선할 수 있다.
소프트웨어 개발은 결국 인간의 창의성과 책임감에서 시작된다. AI는 그 과정을 돕는 도구일 뿐, 결코 설계자를 대체할 수 없다. 기술이 아무리 발전해도, 그 본질을 잊지 말아야 한다. 설계는 단순히 문제를 푸는 것이 아니라, ‘어떤 문제를 풀어야 하는지’를 정의하는 일이기 때문이다.
이 글은 HollandTech의 원문을 참고하여 작성되었습니다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.