이 글은 AI의 발전으로 누구나 소프트웨어를 쉽게 ‘만드는 것’처럼 보이지만, 실제 **‘제품을 구축하는 것’**과 ‘시스템을 엔지니어링하는 것’ 사이에는 거대한 간극이 존재함을 지적합니다.
원문/참고 링크: https://uphack.io/blog/post/the-illusion-of-building
1. 진흙으로 만든 부가티 (The Clay Bugatti)
최근 “코딩 경험 없이 앱을 만들었다”, “주말 만에 스포티파이를 복제했다"는 식의 글들이 넘쳐납니다. 하지만 이는 베트남의 유튜버들이 진흙으로 부가티 모양을 빚어낸 것과 비슷합니다. 겉모습은 똑같지만, 시속 400km로 달려도 안전하게 설계된 실제 부가기의 ‘엔지니어링’은 전혀 들어있지 않습니다. 개발의 환상이란, 작동하는 것처럼 보이는 소프트웨어를 만드는 것이 실제로 작동하는 소프트웨어를 엔지니어링하는 것과 같다고 믿는 착각입니다.
2. 인터페이스의 오류 (The Interface Fallacy)
구글 검색창은 단순한 입력창과 버튼으로 구성되어 있습니다. 초보자도 겉모습은 며칠 만에 따라 만들 수 있습니다. 하지만 구글에 수만 명의 엔지니어가 필요한 이유는 그 겉모습 때문이 아니라, 보이지 않는 뒷단의 복잡성 때문입니다. 초저지연(Latency), 수십억 개의 쿼리 처리(Scale), 보안, 스팸 대응, 규제 준수, 비용 최적화 등이 진짜 엔지니어링의 영역입니다.
3. 엔트로피와의 싸움 (Fighting Entropy)
코드를 작성하는 것은 질서를 만드는 일이지만, 소프트웨어 엔지니어링은 ‘엔트로피(무질서)‘와 싸우는 일입니다. AI가 만든 코드는 완성된 순간 최고의 상태이지만, 그다음 날부터 코드는 부식되기 시작합니다(의존성 변화, 사용자 요구 변화, 보안 취약점 등). 진정한 엔지니어링은 이 무질서로 향하는 시스템을 유지하고 운영하며 살아남게 만드는 과정입니다.
4. 소프트웨어의 성숙 단계
저자는 소프트웨어가 성숙해지는 단계를 다음과 같이 구분합니다.
- 코드(Code): 실행되는 명령 (AI가 매우 잘함)
- 프로토타입(Prototype): 내 PC에서만 돌아가는 데모 (AI가 며칠 걸릴 일을 몇 분으로 단축)
- 제품(Product): 실제 사용자의 예외 상황과 에러를 처리하는 가치 있는 도구
- 서비스(Service): 모니터링, 보안, 성능, 운영이 담보되는 상태 (AI가 관여하기 힘든 영역)
- 기관(Institution): 신뢰, 브랜드, 규제 대응 등 오랜 시간 축적된 유산
5. 결론: 무엇이 변하고 무엇이 변하지 않는가
바닥(Floor)은 낮아졌다: 단순한 자동화, 내부 대시보드, 개인용 도구는 이제 개발자 없이도 가능합니다. 이는 좋은 현상입니다.
천장(Ceiling)은 그대로다: 대규모 시스템 설계, 신뢰성, 보안, 판단력은 여전히 어렵고 중요합니다.
중간(Middle)이 압축된다: ‘스크립트보다는 어렵고 시스템보다는 쉬운’ 단순 앱 개발 영역이 가장 큰 타격을 입을 것입니다.
핵심 메시지: AI는 구현 비용을 낮춰주지만, 결과(신뢰성, 보안, 비즈니스 가치 등)의 비용을 낮춰주지는 않습니다. 겉모양을 만드는 사람은 많아지겠지만, 그것을 **‘실제(Real)’**로 만들 수 있는 엔지니어의 가치는 더욱 높아질 것입니다.