"소프트웨어 엔지니어링이 돌아왔다"
- 프론티어 AI 모델과 코딩 에이전트의 발전으로 자동화 프로그래밍 시대가 열리면서, 코드를 한 줄씩 직접 타이핑하는 수작업이 사라지고 소프트웨어 엔지니어가 다시 본질적인 설계와 사고에 집중할 수 있게 됨
- 작년말부터 도구와 모델의 성숙도가 극적으로 향상되어, 잘 구성된 환경에서 아키텍트 역할에 전념하면서도 직접 개입해 수정할 수 있는 작업 방식이 가능해짐
- 웹·모바일·데스크톱 개발에 축적된 불필요한 프레임워크와 추상화 계층이 진정한 복잡성을 해결하지 못한 채 오히려 문제를 증가시켜 왔음
- 프레임워크가 해결한다고 주장하는 세 가지 문제—단순화, 자동화, 인건비 절감—중 자동화만 정당한 가치가 있었으나, AI 자동화가 이마저 대체 가능
- Google, Meta, Vercel 등 하이퍼스케일러가 설계한 시스템의 운영자(operator)로 전락하지 말고, 자신만의 설계와 제품을 직접 만드는 진정한 엔지니어링으로 돌아가야 함
자동화 프로그래밍의 부상
- Antirez가 명명한 "automated programming" 이라는 프레이밍이 "vibe coding"보다 본질을 훨씬 잘 포착
- 인쇄기, 방직기, 조립라인처럼 자동화는 역사적 혁신의 핵심이었으며, 이번 변화도 그 연장선상에 있음
- 2025년 12월 이후 프론티어 모델과 코딩 에이전트의 역량이 극적으로 변화하여, 주의 깊게 관찰하는 사람에게는 이미 명백한 수준
엔지니어의 역할 변화
- 아키텍처, 트레이드오프, 제품 결정, 엣지 케이스 등 깊은 사고가 필요한 작업은 여전히 남아 있음
- 사라진 것은 모든 코드 라인을 직접 타이핑하는 지치고 소모적인 수작업
- 깨끗하고 철저하게 구성된 환경에서 모델과 도구를 사용하면, 벽돌을 직접 쌓지 않고도 건축가 역할 수행 가능
- 20년간 직접 코드를 작성해 온 경험이 뒷받침되어야 하며, 마음에 들지 않으면 직접 들어가서 이해하고 수정한 뒤 설정을 갱신할 수 있음
- 필요한 도구를 즉시 만들어낼 수 있어, 구상한 기술을 실현하는 데 더 많은 시간을 할애 가능
프레임워크와 불필요한 복잡성
- 웹, 모바일, 데스크톱 개발에서 수년간 프레임워크·라이브러리·툴링의 거대한 오염이 축적됨
- 의미 있는 것을 추상화하지 않는 추상화 계층들이 겹겹이 쌓여, 하나의 문제를 해결한다고 주장하면서 열 개의 새로운 문제를 생성
- 업계 전체가 소프트웨어 구축의 진짜 복잡성 앞에서 사고를 날카롭게 하는 대신, 기성품 사고를 구매하는 방식을 택함
- 부러진 다리를 실크로 감싸는 것 처럼, 겉은 좋아 보이지만 다리는 여전히 부러진 상태
프레임워크가 해결한다고 주장하는 세 가지 문제
-
"단순화(Simplification)": 엔지니어가 직접 설계하기를 두려워하여 타인의 구조를 맹목적으로 수용하는 현상
- 목표에서 역방향으로 설계하는 대신, 원사이즈핏올(one-size-fits-all) 설계를 어디에나 적용
- 이는 단순화가 아니라 지적 항복(intellectual surrender)
-
자동화(Automation): 보일러플레이트 코드 제거라는 유일하게 납득 가능한 가치
- ORM, CRUD 관리, 코드 생성, API 문서화 등 반복적이지만 필수적인 작업의 자동화
- 그러나 바로 이 지점에서 AI가 모든 것을 바꾸고 있음
-
인건비 절감(Labour cost): 컨퍼런스 슬라이드에는 등장하지 않는 조용한 이유
- Google, Meta, Vercel이 제품 구축과 코드 배포 방식을 결정하게 하면, 소프트웨어 엔지니어 대신 "React 개발자"를 고용할 수 있음
- 교육 불필요, 플러그 앤 플레이, 쉽게 교체 가능한 부품(cog) 같은 인력
- 이는 엔지니어링이 아니라 운영(operating)
새로운 작업 방식의 실제
- 2년 이상 이 방식으로 거의 결함 없이 개발해 왔으며, 진정한 혁명은 작년 12월부터 발생
- 불필요한 복잡성을 제거하고 아이디어 중심의 복잡성에 집중할 수 있는 기회가 열림
- 보일러플레이트 제거 비용이 거의 0에 수렴, 동일 코드를 두 번 작성할 필요가 없음
- 문제에 정확히 맞춘 목적 특화 소규모 도구를 즉시 구축
- 화려한 모노레포 매니저 없이 단순한 Makefile이 99%의 유즈 케이스를 충족
- 문제가 매우 복잡해지면 그때 생각하되, 그 전에는 절대 미리 해결하지 않는 것이 엔지니어링
- 컨퍼런스 무대에서 누군가 언젠가 겪을 것이라고 말한 문제가 아니라, 지금 가진 문제를 해결해야 함
Bash와 기본 도구의 재발견
- 에이전트는 수십 년간 존재해 온 기본 도구(basic tools) 에 매우 능숙
- Bash는 1989년에 탄생했으며, 현재 가장 평범한 모델도 세계 어떤 사람보다 Bash를 잘 앎
- 코딩 에이전트들이 복잡하고 비용이 높은 MCP 구성에서 Bash 기반의 단순한 에이전트 루프로 전환하는 추세
- 가장 오래된 도구가 가장 미래에 적합한 도구(most future proof)
프레임워크 의존의 비용
- 대부분의 유즈 케이스에서 기능의 10%만 사용하는 비싸고 결함 있는 프레임워크와 부수 라이브러리는 필요 없음
- 유지보수, 보안 업데이트, 설계 제약 등 보이지 않는 비용이 크며, 이는 개발자의 자유를 제한함
- 이 트레이드오프를 계속 수용하면, 수십 년 만의 가장 큰 기회를 놓치는 것
- Google, Meta, Vercel 등 대형 기업의 설계 철학에 종속되는 구조를 경계할 것
- 개발자가 스스로의 사고와 미적 감각을 신뢰하고, 자신만의 도구와 제품을 구축해야 함
“부러진 다리를 비단으로 감싸지 말고, 진짜 자신만의 것을 만드세요”