22P by GN⁺ 4일전 | ★ favorite | 댓글 1개
  • AI 코딩 도구의 발전으로 소프트웨어 생산이 수공예적 방식에서 자동화된 산업화 단계로 전환 중이며, 비용 절감과 대규모 생산이 가능해지고 있음
  • 산업화의 2차 효과로 일회용 소프트웨어라는 새로운 범주가 등장하고 있으며, 이는 소유, 유지보수, 장기적 이해에 대한 기대 없이 생성되는 소프트웨어를 의미
  • 제번스 역설에 따르면 효율성 향상이 오히려 전체 소비량 증가로 이어지며, 소프트웨어 생산에서도 동일한 현상이 예상됨
  • 농업 산업화가 풍요 대신 초가공 식품과 비만 위기를 낳은 것처럼, 소프트웨어 산업화도 저품질 대량 생산의 경제적 압력을 만들어낼 가능성 존재
  • 기술 발전은 산업화와 혁신의 상호작용으로 이루어지며, 핵심 질문은 "아무도 소유하지 않는 소프트웨어를 누가 유지보수할 것인가"로 귀결

소프트웨어의 산업화 전환

  • 소프트웨어는 역사적으로 고숙련 전문 인력의 노동 비용에 의해 생산 비용이 결정되는 수공예에 가까웠음
  • 산업화는 자동화를 통해 인간 노동 의존도를 줄이고, 비용 절감과 생산 규모의 탄력성을 동시에 달성하는 것을 목표로 함
  • 인간의 역할은 감독, 품질 관리, 산업 프로세스 최적화로 축소됨
  • 산업화의 1차 및 2차 효과
    • 1차 효과: 고품질 제품 공급망의 교란, 노동의 탈중개화, 진입 장벽 하락, 경쟁 심화, 변화 속도 가속
      • 이러한 효과들이 현재 전통적인 소프트웨어 산업에서 나타나기 시작
    • 2차 효과: 저품질·저비용 제품의 대규모 생산 방식이 새롭게 가능해짐
      • 인쇄 산업화 → 페이퍼백 장르 소설의 등장
      • 농업 산업화 → 초가공 정크푸드의 출현
      • 디지털 이미지 센서 산업화 → 사용자 생성 비디오의 등장
  • 소프트웨어에서 생산의 산업화는 일회용 소프트웨어(Disposable Software) 를 등장 시킴
    • 일회용 소프트웨어: 소유, 유지보수, 장기적 이해에 대한 지속적 기대 없이 생성되는 소프트웨어
    • 지지자들은 이를 'vibe-coded software' 라 부르고, 회의론자들은 'AI slop' 이라 칭함
    • 쉬운 재생산성으로 인해 각 소프트웨어 산출물의 경제적 가치가 낮아짐
    • 가치 부족으로 이 트렌드를 일시적 유행으로 치부하기 쉽지만, 이는 현명하지 못한 판단

제번스 역설과 슬롭의 중독성

  • 제번스 역설(Jevons paradox): 19세기 석탄 소비 효율성 향상이 비용 절감 → 수요 증가 → 전체 소비량 증가로 이어졌다는 경제 이론
    • 현재 AI 컴퓨팅에서 동일한 현상 관찰: 모델의 토큰 예측 효율성이 높아질수록 수요가 급증하여 전체 소비량이 증가
  • 소프트웨어 개발에서도 노력 비용 감소가 더 높은 소비와 산출로 이어질 가능성이 역사적으로 뒷받침됨
  • 농업 산업화의 교훈
    • 20세기 초 과학 발전이 기아 퇴치와 풍요로운 식량 시대를 열 것으로 기대되었으나, 2025년 현재 3억 1,800만 명이 급성 기아 상태
    • 미국의 성인 비만율은 40% 에 달하며 당뇨병 위기 심화 중
    • 초가공 식품이 해롭다고 널리 인식됨에도 대다수 미국인이 매일 섭취
    • 산업 시스템은 과잉과 저품질 상품 쪽으로 경제적 압력을 지속적으로 생성함
      • 생산 비용이 충분히 낮아지면 물량, 마진, 도달 범위를 극대화하는 것이 정크 제품이기 때문
  • AI slop에 대한 욕구는 마찬가지로 충족되기 어려울 것으로 예상
  • 스마트폰이 가능하게 한 사진, 비디오, 오디오 캡처의 민주화처럼, 소프트웨어 민주화가 이루어지면 소셜 미디어 규모로 사용자 생성 소프트웨어가 생성, 공유, 폐기될 가능성
  • 참신함과 보상의 피드백 루프가 지난 반세기의 개발을 구식으로 보이게 할 소프트웨어 산출 폭발을 일으킬 수 있음

전통적 소프트웨어는 살아남을 수 있을까?

  • 초가공 식품이 유일한 옵션이 아니듯, 건강하고 지속 가능한 식품 생산에 대한 수요가 존재하고 성장 중
  • "유기농 소프트웨어" 운동이 가능할 수 있음
  • 의류 산업 예시: 산업화 이전에는 장인, 길드, 수작업, 지역 자원, 수년간 축적된 전문성으로 의류 생산
    • 산업화 후: 대륙 간 원자재 운송, 공장 대량 생산, 기계 조립, 빠르고 일회용이며 착취적인 패션
    • 그러나 맞춤 정장부터 손뜨개 스카프까지 수공예 의류는 여전히 존재
    • 맞춤 핏, 부의 과시, 제품 내구성, 취미로서의 공예 즐거움 등 다양한 이유
  • 소프트웨어의 특수성: 무형재와 혁신

    • 소프트웨어가 물리적 제품이었다면 인간이 작성한 소프트웨어가 고급 패션이나 수제 니트웨어처럼 틈새로 제한되었을 수 있음
    • 그러나 소프트웨어는 무형재(intangible good) 이며, 다른 산업화된 분야와 달리 본질적으로 컴포넌트 재사용의 오랜 역사를 가짐
    • 혁신이 기존 제품의 더 나은/저렴한 버전에 국한되지 않고, 솔루션 공간 자체의 성장을 포함
      • 증기 기관이 재사용 가능한 기계 부품을 가능케 하고, 이것이 생산 라인을, 생산 라인이 자동차를 가능케 한 것과 유사
    • 소프트웨어 개발의 기술 발전 메커니즘은 산업화뿐 아니라 혁신을 포함
    • 연구개발은 비용이 많이 들지만 시간이 지남에 따라 더 큰 가치를 얻는 유일한 경로
  • 혁신과 산업화의 차이

    • 혁신: 오늘날 존재하는 것을 더 효율적으로 복제하는 데 초점을 두지 않음
    • 새로운 문제를 찾고 해결하며, 이전 것 위에 구축하고, 이전에 존재할 수 없었던 기능을 제공
    • 산업화는 그 후에 규모와 상품화를 제공하여 다음 혁신 라운드가 구축될 기반을 제공
    • 이 두 힘의 상호작용이 '진보(progress)'
  • 대형 언어 모델: 소프트웨어의 증기 기관 순간

    • LLM은 소프트웨어의 증기 기관 순간
    • 이전에 희소한 인간 노동에 전적으로 의존했던 작업 클래스의 비용을 급격히 낮추고, 산출의 비범한 가속을 가능케 함
    • 증기 기관도 진공 상태에서 나타나지 않았음: 풍차와 물레방아가 터빈보다 수 세기 앞섬
    • 기계화는 석탄과 철강에서 시작되지 않았고, 자동화, 규모, 자본이 결합되어 경제적 변혁을 이끄는 변곡점에 도달
    • 소프트웨어도 오랫동안 산업화되어 왔음:
      • 재사용 가능한 컴포넌트(오픈소스 코드)
      • 이식성(컨테이너화, 클라우드)
      • 민주화(로우코드/노코드 도구)
      • 상호운용성(API 표준, 패키지 관리자)

진보의 끝없는 순환

  • 소프트웨어 산업 혁명에 진입하고 있으나, 이는 단절의 순간이 아닌 거대한 가속
  • 산업화가 기술 발전을 대체하지 않지만, 새로운 아이디어의 흡수와 새로운 기능의 상품화 모두를 크게 가속화
  • 새로운 기술 위에 구축하는 비용이 더 빨리 떨어지면서 혁신이 더 빠르게 해제됨
  • 진보의 순환은 계속되지만, 대량 자동화 시대에 바퀴는 그 어느 때보다 빠르게 회전

핵심 질문: 생태계와 유지보수

  • 열린 질문은 산업용 소프트웨어가 지배할지 여부가 아니라, 그 지배가 주변 생태계에 무엇을 하는가
  • 이전 산업 혁명들은 비용을 무한해 보였던 환경에 외부화했지만, 그 환경은 결국 무한하지 않았음
  • 소프트웨어 생태계도 다르지 않음: 의존성 체인, 유지보수 부담, 산출 규모에 따라 복합되는 보안 표면
  • 기술 부채는 디지털 세계의 오염이며, 그것에 의존하는 시스템을 질식시킬 때까지 보이지 않음
  • 대량 자동화 시대에 가장 어려운 문제는 생산이 아니라 관리(stewardship) 일 수 있음
  • 핵심 질문: "아무도 소유하지 않는 소프트웨어를 누가 유지보수하는가?"
Hacker News 의견들
  • 이 글은 ‘소프트웨어 빌드(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도 마찬가지로, 더 빠르게 산을 쌓게 해줄 뿐 복잡성을 줄이지는 않음

    • 내 경험상 LLM은 복잡성 관리에는 도움이 안 됨
      단지 개발 속도를 높여줄 뿐임