AI가 프로그래밍을 근본적으로 바꾸고 있는 지금, 현실을 직시하면서도 개방성과 사회적 안전망을 고민해야 한다는 글.
URL: https://antirez.com/news/158
antirez 14분 전. 275 조회.
나는 소프트웨어를 한 줄 한 줄 쓰는 일을 사랑한다. 내 커리어는 인간의 손길이 핵심 특징이 되는, 잘 쓰이고 미니멀한 소프트웨어를 만들기 위한 지속적인 노력의 연속이었다고 말할 수도 있다. 나는 또한 사회에서 가장 약한 사람들이 잊히지 않는 세상을 바란다. 더 나아가 나는 AI가 경제적으로 성공하길 바라지 않는다. 지금의 경제 시스템이 전복되든 말든 상관없다(솔직히 말하면, 거대한 부의 재분배 방향으로 간다면 나는 꽤 행복할 수도 있다). 하지만 내가 가진 소프트웨어와 사회에 대한 생각이 내 시야를 흐리게 만든다면, 나는 내 자신과 내 지성을 존중할 수 없을 것이다. 사실은 사실이다. 그리고 AI는 프로그래밍을 영원히 바꿔 놓을 것이다.
2020년에 나는 직장을 그만두고 AI, 보편적 기본소득, 그리고 수많은 도전에 직면하면서도 노동 자동화에 적응한 사회에 관한 소설을 쓰기 시작했다. 2024년 말에는 AI와 코딩 작업에서의 활용, 그리고 사회·경제적 영향 가능성에 초점을 맞춘 유튜브 채널을 열었다. 하지만 나는 꽤 이른 시점부터 무슨 일이 벌어질지 알고 있었음에도, 프로그래밍이 완전히 재편되기까지는 최소한 몇 년은 더 시간이 있을 거라고 생각했다. 이제는 그렇게 믿지 않는다. 최근 최첨단 LLM은 최종 결과가 무엇이어야 하는지에 대한 좋은 힌트만 주면, 거의 도움 없이도 큰 하위 작업이나 중간 규모 프로젝트를 혼자서 수행할 수 있다. 성공 정도는 당신이 하는 프로그래밍의 종류(더 고립되어 있고, 텍스트로 표현 가능할수록 더 좋다. 시스템 프로그래밍이 특히 적합하다)와, 문제에 대한 정신적 모델을 만들어 LLM에 전달하는 능력에 달려 있다. 하지만 전반적으로, 대부분의 프로젝트에서는 재미를 위해서가 아니라면 이제 직접 코드를 쓰는 것이 더 이상 합리적이지 않다는 게 분명해졌다.
지난주에 나는 프롬프트를 주고, 코드를 살펴보며 가끔씩 방향만 잡아 주는 방식으로, 몇 주가 아니라 몇 시간 만에 다음 네 가지 작업을 했다.
linenoise 라이브러리를 UTF-8을 지원하도록 수정했고, 에뮬레이트된 터미널을 사용하는 라인 편집 테스트 프레임워크를 만들었다. 이 터미널은 각 문자 셀에 무엇이 표시되고 있는지 보고할 수 있다. 늘 하고 싶었던 일이었지만, 내 사이드 프로젝트를 테스트하기 위해 그만한 작업량을 정당화하기가 어려웠다. 하지만 아이디어를 설명하기만 하면 코드로 구현된다면, 상황은 완전히 달라진다.
Redis 테스트에서 발생하는 간헐적 실패를 고쳤다. 이건 정말 짜증나는 작업이다. 타이밍 관련 이슈, TCP 데드락 조건 등등. Claude Code는 재현하는 데 필요한 만큼 계속 반복했고, 무슨 일이 벌어지는지 이해하기 위해 프로세스 상태를 검사한 다음 버그를 수정했다.
어제 나는 BERT 계열 임베딩 모델의 추론을 할 수 있는 순수 C 라이브러리가 필요했다. Claude Code가 5분 만에 만들었다. PyTorch와 출력이 같고 속도도 같았다(15% 느리긴 하지만). 코드 700줄. GTE-small 모델을 변환하는 파이썬 도구까지.
지난 몇 주 동안 나는 Redis Streams 내부 구현을 변경했다. 내가 한 작업에 대한 설계 문서가 있었다. 그걸 Claude Code에 줘 봤더니, 내가 한 일을 20분 정도(혹은 그보다 더 짧은 시간) 만에 재현했다. 대부분의 시간은 내가 필요한 커맨드를 실행하도록 확인하고 승인하느라 느렸기 때문이었다.
지금 벌어지고 있는 현실을 보지 않을 수가 없다. 대부분의 경우 더 이상 코드를 직접 쓰는 것은 필요하지 않다. 이제는 무엇을 해야 하는지, 그리고 어떻게 해야 하는지를 이해하는 것이 훨씬 더 흥미롭다(그리고 두 번째 부분에서도 LLM은 훌륭한 파트너다). AI 기업들이 투자금을 회수하지 못해 주식시장이 폭락하든 말든, 장기적으로는 중요하지 않다. 어떤 유니콘 기업 CEO가 불쾌하거나 터무니없는 말을 하든 말든, 그것도 마찬가지다. 어쨌든 프로그래밍은 영원히 바뀌었다.
LLM이 흡수한, 내가 그동안 쓴 모든 코드에 대해 나는 어떤 기분일까? 나는 기분이 좋다. 나는 이것이 내가 평생 해 오려 했던 일의 연장선이라고 보기 때문이다. 코드, 시스템, 지식의 민주화 말이다. LLM은 우리가 더 좋은 소프트웨어를 더 빠르게 쓰도록 도울 것이고, 작은 팀이 더 큰 회사와 경쟁할 기회를 갖게 해줄 것이다. 90년대에 오픈 소스 소프트웨어가 해 준 것과 같은 일이다.
하지만 이 기술은 너무나 중요해서 소수의 기업 손에 맡겨둘 수 없다. 지금은 사전학습을 더 잘하느냐 못하느냐, 다른 이들보다 훨씬 효과적인 방식으로 강화학습을 하느냐 같은 차이가 있지만, 오픈 모델—특히 중국에서 나온 것들—은 (뒤처져 있더라도) 폐쇄형 연구소들의 프런티어 모델과 계속 경쟁하고 있다. 아직까지는, 비록 불완전하더라도, AI의 민주화가 충분히 이루어지고 있다. 하지만: 앞으로도 영원히 그럴 거라고는 전혀 장담할 수 없다. 나는 중앙집중화가 두렵다. 동시에, 규모 있게 학습된 신경망은 그저 믿기 어려운 일을 해낼 수 있다고 믿는다. 그리고 현재 프런티어 AI 안에 다른 연구소나 팀이 따라잡지 못할 만큼의 “마법”이 있다고는 생각하지 않는다(그렇지 않다면, 예를 들어 OpenAI, Anthropic, Google의 결과가 수년째 그렇게 비슷한 이유를 설명하기가 매우 어려울 것이다).
프로그래머로서 나는 이제 어느 때보다 더 많은 오픈 소스를 쓰고 싶다. 시간 문제로 방치해 두었던 내 저장소 몇 개를 개선하고 싶다. Redis 작업 흐름에 AI를 적용하고 싶다. 벡터 세트(Vector Sets) 구현을 개선한 다음, 지금 Streams에서 하고 있는 것처럼 다른 자료구조들도 개선하고 싶다.
하지만 해고될 사람들을 생각하면 걱정된다. 실제로 어떤 역학이 작동할지는 불분명하다. 기업들이 사람을 더 많이 뽑아 더 많은 것을 만들려 할까? 아니면 프롬프트를 더 잘 쓰는 소수의 프로그래머만 두고 인건비를 줄이려 할까? 그리고 다른 산업들에서도 인간이 완전히 대체 가능해질까 봐 두렵다.
그렇다면 사회적 해법은 무엇일까? 혁신은 결국 되돌릴 수 없다. 나는 우리가 지금 벌어지고 있는 일을 인식하고, 일자리를 잃게 될 사람들을 지원하려는 정부에 투표해야 한다고 믿는다. 그리고 해고되는 사람이 많아질수록, 일정 수준의 보호를 보장하는 사람들에게 투표하라는 정치적 압력도 커질 것이다. 하지만 나는 AI가 가져올 수 있는 좋은 측면도 기대한다. 과학의 새로운 진보는 인간 조건의 고통을 줄이는 데 도움을 줄 수 있다. 인간의 삶은 언제나 행복하지만은 않으니까.
어쨌든, 다시 프로그래밍 이야기로 돌아가자. 친구여, 나는 딱 하나만 제안하고 싶다. ‘무엇이 옳은 일인가’에 대해 당신이 무엇을 믿든, 지금 일어나고 있는 일을 거부한다고 해서 그것을 통제할 수는 없다. AI를 건너뛰는 것은 당신이나 당신의 커리어에 도움이 되지 않는다. 생각해 보라. 이 새로운 도구들을 신중하게 시험해 보라. 5분짜리 테스트로 자기 믿음만 강화하지 말고, 몇 주의 시간을 들여라. 자신을 증폭시키는 방법을 찾아라. 만약 잘 안 된다면, 몇 달마다 다시 시도해 보라.
그래, 당신은 코딩을 배우기 위해 그렇게 열심히 노력했는데 이제 기계가 대신 해 준다고 생각할지도 모른다. 하지만 밤늦게까지 코딩하며 프로젝트가 돌아가는 걸 보고자 했던, 당신 안의 불꽃은 무엇이었나? 그것은 ‘만드는 일’이었다. 그리고 이제는 AI를 효과적으로 사용하는 방법만 찾는다면, 더 많이, 더 잘 만들 수 있다. 재미는 여전히 그대로다. 조금도 손상되지 않았다.