이 글은 ‘소프트웨어 빌드(build) ’와 ‘소프트웨어 작성(writing) ’을 혼동하고 있음
이미 세상에는 거의 모든 일을 수행할 수 있는 값싼 대량생산 소프트웨어가 존재함
개발자의 역할은 건축가나 설계 엔지니어처럼 새로운 설계도를 만드는 일임
이런 설계에는 미적 감각과 상황에 대한 통찰이 필요하며, LLM은 이 부분을 잘 돕지 못함
러시아어를 배운다고 해서 톨스토이가 되는 건 아닌 것과 같음
Bryan Cantrill이 인용한 Jeff Bonwick의 말처럼, 코드는 정보이자 동시에 기계임
건축가가 설계도를 만들면 그것은 물리적 건물로 구현되지만, 개발자가 코드를 작성하면 그 자체가 작동하는 기계가 됨 YouTube 영상에서도 이 개념을 설명함
UML로 아키텍처를 그린다고 해서 실제 기계를 만든 건 아님
용어의 기술적 의미에 너무 매달린 것 같음
글의 요지는 대부분의 소프트웨어가 더 이상 장인정신의 산물이 아니라 산업화된 대량생산품이 된다는 점임
하지만 훌륭한 소프트웨어는 여전히 존재할 것임
건설업에서 일하는 입장에서 보면, 설계 엔지니어는 세부사항을 시공사에 맡길 수 있지만 소프트웨어는 그럴 수 없음
소프트웨어는 설계, 엣지 케이스 탐색, 실제 구현까지 모두 포함함
즉, 설계는 전체 과정의 1/3에 불과함
실제로 많은 프로젝트가 비즈니스 의사결정자들의 무지로 인해 스파게티 코드로 변함
좋은 엔지니어가 이를 완화할 수는 있지만 한계가 있음
결국 생각 없는 프로세스에서는 ‘산업 폐기물’ 같은 코드가 나올 수밖에 없음
글의 비유는 잘못된 해석임
LLM이 만드는 것은 ‘러시아 문학의 걸작’이 아니라 러시아 SNS용 댓글 수준의 코드임
LLM은 저품질 소프트웨어를 싸게 만드는 데 탁월함
덕분에 예전엔 만들 가치가 없던 간단한 스크립트를 쉽게 만들 수 있게 되었지만,
동시에 쓰레기 콘텐츠가 넘쳐나는 부작용도 있음
비유로 사고하는 건 그럴듯해 보이지만 실제로는 약함
물리적 상품과 소프트웨어는 한계비용 구조가 완전히 다름
물리적 상품은 단위당 비용이 0보다 크지만, 디지털 상품은 한계비용이 0임
이미 대부분의 소프트웨어가 무료이거나 매우 저렴하므로, ‘저가형 산업화’라는 개념은 맞지 않음
AI가 개발비를 낮춘다 해도 시장 구조는 크게 달라지지 않음
비유는 새로운 가능성을 탐색할 때는 유용하지만, 무언가를 배제하는 논리로 쓰면 안 됨
글에서도 완전한 1:1 비교는 아니라고 명시되어 있음
디지털 상품에도 저장공간, 대역폭, 전력 등 비용 요소는 존재함
또한 소비자는 품질보다 가격에 더 민감함
무료 모바일 게임이 유료 게임을 압도한 이유가 그 예임
최근 LLM으로 거의 완성된 개인 프로젝트를 진행했음
마을 역사 웹사이트를 만들었는데, 모델이 점점 엉뚱한 방향으로 가는 걸 제어하기가 어려웠음
속도는 빨라졌지만 여전히 ‘선장’ 역할이 필요했음
문제는 ‘노를 젓는 사람들’의 역할이 사라진다는 것임
선장과 100명의 노잡이에서 선장과 증기기관으로 바뀌면, 나머지 사람들은 어디로 가야 할까 하는 의문이 생김
산업화가 품질을 낮춘다는 인식은 잘못임
대량생산 시스템은 오히려 품질 관리를 극단적으로 향상시킬 수 있음
중간급 대량생산 자동차가 장인 제작 자동차보다 나은 경우도 많음
산업화는 낮은 품질 하한선을 보장하지만, 동시에 상한선도 존재함
수제 빵이나 수제 가구처럼, 대량생산품보다 훨씬 뛰어난 장인 제품도 있음
하지만 시장성은 낮음
수제 슈퍼카나 수제 제과점의 제품은 여전히 대량생산품보다 우수함
즉, 산업화가 모든 품질 영역을 대체하지는 않음
AI가 품질 관리를 개선할 수 있을지 의문임
‘품질’의 기준이 무엇인지부터 명확히 해야 함
럭셔리 자동차 대부분은 여전히 장인 방식으로 만들어짐
그렇다면 아미시 가구 같은 사례는 어떻게 설명할 수 있을까 하는 반문임
30년 경력의 개발자로서, 내가 작성한 코드 대부분은 결국 폐기물통으로 갔음
데이터 처리, 로그 분석, 모델링 등은 계속하지만 AI가 등장해도 본질은 달라지지 않음
다만 결과물이 조금 더 ‘화려한 색’을 띨 뿐임
25년 동안 일했지만 실제로 프로덕션에 배포된 코드는 거의 없음
대부분은 취소되거나 프로토타입으로 끝남
재단사도 만든 옷이 결국 버려지듯, 소프트웨어도 수명이 있음
수제 옷과 패스트패션의 관계처럼, 전통적 개발과 AI 생성 코드의 관계도 비슷함
이런 현실이 두렵다고 느낌
그래서 일 외의 정서적 의미를 여행, 가족, 예술 등에서 찾아야 한다고 생각함
요즘 ‘vibe-coded’ 개인용 소프트웨어가 많아지고 있음
Simon Willison의 사이드 프로젝트들이 그 예임
앞으로는 ‘1인용 포크(fork) ’가 늘어날 것 같음
나도 최근 오픈소스에 작은 기능 추가로 기여하기 시작했음
하지만 업스트림 반영까지 시간이 오래 걸림
Nix를 활용해 빌드 환경을 자동화하니 훨씬 편해졌음
Nix가 더 널리 쓰였으면 좋겠지만, 모노컬처에 대한 우려도 있음
소프트웨어의 중요한 측면 하나는 사용자 학습 비용임
독점적 소프트웨어는 사용자가 새 버전에 적응하도록 강요하지만,
오픈소스는 안정된 인터페이스를 제공해 재학습 비용을 줄임
예: mutt, vim, talon 같은 프로그램
경계선이 오픈소스 여부로만 나뉘지는 않음
Windows는 오히려 안정적인 API를 제공했고, 오픈소스 중에도 파괴적 변경이 많은 사례가 있음
나는 이런 개념을 ‘지식 풀(Knowledge Pool) ’이라 부름
이는 조직이 특정 도구나 방법에 대해 공유하는 집단적 지식의 저장소임
불필요한 인터페이스 변경은 이 지식 풀을 고갈시키므로, 유지하는 것이 시장 경쟁력이 됨
소프트웨어의 산업혁명은 이미 고급 언어의 등장으로 시작되었음
어셈블리 대신 고급 언어를 쓸 수 있게 된 시점이 바로 그것임
글에서도 이 점을 인정함
오픈소스, 클라우드, 로우코드/노코드, API 표준화 등이 이미 산업화를 이끌고 있음
하지만 터미널, 키보드, 실시간 편집 환경 등은 또 다른 혁신이었음
카드 덱 입력에서 인터랙티브 개발 환경으로의 전환이 진짜 혁명이었음
Codex나 Claude Code 같은 모델을 보면, 아직은 시작에 불과함
지금까지의 발전은 속도 향상에 불과하며, 앞으로 더 큰 변화가 올 것임
나도 글쓴이의 비전에 공감함
대부분의 소프트웨어는 불필요하게 복잡하고, 나는 그저 내 문제를 해결할 도구만 원함
예를 들어 오디오 파일을 업로드하면 장면별로 분할하고 이미지와 싱크해 영상을 만드는 툴을 LLM으로 만들었음
버그도 있고 기능도 부족하지만, 내 문제를 해결하기엔 충분함
결국 나는 소프트웨어가 아니라 결과물(영상) 이 필요함
다음 프로젝트에서는 더 나은 버전을 만들 수 있을 것 같음
산업화된 소프트웨어 시대가 이미 시작되었고, 우리는 이에 적응해야 함
하지만 은행, 세금, 급여 같은 현실 세계와 연결된 소프트웨어는 다름
이런 시스템은 단순히 코드만으로 대체할 수 없으며, 이미 무료 대안이 존재함
어셈블러, 컴파일러, 가비지 컬렉션, 고급 언어 등도 결국 복잡성의 산을 높이는 도구였음
LLM도 마찬가지로, 더 빠르게 산을 쌓게 해줄 뿐 복잡성을 줄이지는 않음
Hacker News 의견들
이 글은 ‘소프트웨어 빌드(build) ’와 ‘소프트웨어 작성(writing) ’을 혼동하고 있음
이미 세상에는 거의 모든 일을 수행할 수 있는 값싼 대량생산 소프트웨어가 존재함
개발자의 역할은 건축가나 설계 엔지니어처럼 새로운 설계도를 만드는 일임
이런 설계에는 미적 감각과 상황에 대한 통찰이 필요하며, LLM은 이 부분을 잘 돕지 못함
러시아어를 배운다고 해서 톨스토이가 되는 건 아닌 것과 같음
건축가가 설계도를 만들면 그것은 물리적 건물로 구현되지만, 개발자가 코드를 작성하면 그 자체가 작동하는 기계가 됨
YouTube 영상에서도 이 개념을 설명함
UML로 아키텍처를 그린다고 해서 실제 기계를 만든 건 아님
글의 요지는 대부분의 소프트웨어가 더 이상 장인정신의 산물이 아니라 산업화된 대량생산품이 된다는 점임
하지만 훌륭한 소프트웨어는 여전히 존재할 것임
소프트웨어는 설계, 엣지 케이스 탐색, 실제 구현까지 모두 포함함
즉, 설계는 전체 과정의 1/3에 불과함
좋은 엔지니어가 이를 완화할 수는 있지만 한계가 있음
결국 생각 없는 프로세스에서는 ‘산업 폐기물’ 같은 코드가 나올 수밖에 없음
LLM이 만드는 것은 ‘러시아 문학의 걸작’이 아니라 러시아 SNS용 댓글 수준의 코드임
LLM은 저품질 소프트웨어를 싸게 만드는 데 탁월함
덕분에 예전엔 만들 가치가 없던 간단한 스크립트를 쉽게 만들 수 있게 되었지만,
동시에 쓰레기 콘텐츠가 넘쳐나는 부작용도 있음
비유로 사고하는 건 그럴듯해 보이지만 실제로는 약함
물리적 상품과 소프트웨어는 한계비용 구조가 완전히 다름
물리적 상품은 단위당 비용이 0보다 크지만, 디지털 상품은 한계비용이 0임
이미 대부분의 소프트웨어가 무료이거나 매우 저렴하므로, ‘저가형 산업화’라는 개념은 맞지 않음
AI가 개발비를 낮춘다 해도 시장 구조는 크게 달라지지 않음
또한 소비자는 품질보다 가격에 더 민감함
무료 모바일 게임이 유료 게임을 압도한 이유가 그 예임
최근 LLM으로 거의 완성된 개인 프로젝트를 진행했음
마을 역사 웹사이트를 만들었는데, 모델이 점점 엉뚱한 방향으로 가는 걸 제어하기가 어려웠음
속도는 빨라졌지만 여전히 ‘선장’ 역할이 필요했음
선장과 100명의 노잡이에서 선장과 증기기관으로 바뀌면, 나머지 사람들은 어디로 가야 할까 하는 의문이 생김
산업화가 품질을 낮춘다는 인식은 잘못임
대량생산 시스템은 오히려 품질 관리를 극단적으로 향상시킬 수 있음
중간급 대량생산 자동차가 장인 제작 자동차보다 나은 경우도 많음
수제 빵이나 수제 가구처럼, 대량생산품보다 훨씬 뛰어난 장인 제품도 있음
하지만 시장성은 낮음
즉, 산업화가 모든 품질 영역을 대체하지는 않음
럭셔리 자동차 대부분은 여전히 장인 방식으로 만들어짐
30년 경력의 개발자로서, 내가 작성한 코드 대부분은 결국 폐기물통으로 갔음
데이터 처리, 로그 분석, 모델링 등은 계속하지만 AI가 등장해도 본질은 달라지지 않음
다만 결과물이 조금 더 ‘화려한 색’을 띨 뿐임
대부분은 취소되거나 프로토타입으로 끝남
수제 옷과 패스트패션의 관계처럼, 전통적 개발과 AI 생성 코드의 관계도 비슷함
그래서 일 외의 정서적 의미를 여행, 가족, 예술 등에서 찾아야 한다고 생각함
요즘 ‘vibe-coded’ 개인용 소프트웨어가 많아지고 있음
Simon Willison의 사이드 프로젝트들이 그 예임
앞으로는 ‘1인용 포크(fork) ’가 늘어날 것 같음
하지만 업스트림 반영까지 시간이 오래 걸림
Nix를 활용해 빌드 환경을 자동화하니 훨씬 편해졌음
Nix가 더 널리 쓰였으면 좋겠지만, 모노컬처에 대한 우려도 있음
소프트웨어의 중요한 측면 하나는 사용자 학습 비용임
독점적 소프트웨어는 사용자가 새 버전에 적응하도록 강요하지만,
오픈소스는 안정된 인터페이스를 제공해 재학습 비용을 줄임
예: mutt, vim, talon 같은 프로그램
Windows는 오히려 안정적인 API를 제공했고, 오픈소스 중에도 파괴적 변경이 많은 사례가 있음
이는 조직이 특정 도구나 방법에 대해 공유하는 집단적 지식의 저장소임
불필요한 인터페이스 변경은 이 지식 풀을 고갈시키므로, 유지하는 것이 시장 경쟁력이 됨
소프트웨어의 산업혁명은 이미 고급 언어의 등장으로 시작되었음
어셈블리 대신 고급 언어를 쓸 수 있게 된 시점이 바로 그것임
오픈소스, 클라우드, 로우코드/노코드, API 표준화 등이 이미 산업화를 이끌고 있음
카드 덱 입력에서 인터랙티브 개발 환경으로의 전환이 진짜 혁명이었음
지금까지의 발전은 속도 향상에 불과하며, 앞으로 더 큰 변화가 올 것임
나도 글쓴이의 비전에 공감함
대부분의 소프트웨어는 불필요하게 복잡하고, 나는 그저 내 문제를 해결할 도구만 원함
예를 들어 오디오 파일을 업로드하면 장면별로 분할하고 이미지와 싱크해 영상을 만드는 툴을 LLM으로 만들었음
버그도 있고 기능도 부족하지만, 내 문제를 해결하기엔 충분함
결국 나는 소프트웨어가 아니라 결과물(영상) 이 필요함
다음 프로젝트에서는 더 나은 버전을 만들 수 있을 것 같음
산업화된 소프트웨어 시대가 이미 시작되었고, 우리는 이에 적응해야 함
이런 시스템은 단순히 코드만으로 대체할 수 없으며, 이미 무료 대안이 존재함
어셈블러, 컴파일러, 가비지 컬렉션, 고급 언어 등도 결국 복잡성의 산을 높이는 도구였음
LLM도 마찬가지로, 더 빠르게 산을 쌓게 해줄 뿐 복잡성을 줄이지는 않음
단지 개발 속도를 높여줄 뿐임