왜 코딩을 사랑하는 사람들이 코딩에서 밀려나는가
Les Orchard가 최근 글에서 짚어낸 관찰 하나가 머릿속에서 떠나지 않는다. LLM 코딩 어시스턴트가 나오기 전까지는, 소프트웨어 엔지니어들 사이의 분열은 보이지 않았다.
장인 기질의 사람들과
일단 돌아가면 된다는 사람들이 나란히 앉아 같은 제품을 만들면서도 구분이 안 됐다. 일의 동기가 보이지 않았던 것은 과정이 동일했기 때문이다.
도구가 분열을 만든 게 아니었다. 이미 있던 분열을 드러낸 것이다.
Orchard 자신은 첫 번째 진영이다. 일곱 살에 BASIC을 배운 건 BASIC이 아름다워서가 아니라 화면에 무언가를 나타나게 하고 싶어서였다. 그에게 LLM 코딩 어시스턴트는 언제나 오르던 사다리의 다음 단계일 뿐이다. 퍼즐이 사라진 게 아니라 더 높은 추상 수준으로 옮겨갔다. 그도 슬프긴 하지만, 슬퍼하는 건 일 자체가 아니라 일을 둘러싼 생태계다.
Nolan Lawson의 슬픔은 다르다. 2월에 올라온 그의 글을 보자.
코드를 손으로 쥐고 조각가처럼 빚는 느낌이 그리울 것이다. 새벽 2시에 디버거 앞에서 씨름하다 마침내 버그가 항복하는 밤이 그리울 것이다. 우리가 자랑스러워했던 무언가를, 진정성 있고 옳고 좋은 것을 만들었던 느낌이 그리울 것이다.
그의 글은 만가처럼 읽히고, 그 안의 슬픔도 진짜다. 그가 애도하는 것은 행위 그 자체다.
두 사람 다 사려 깊고 솔직하지만, 같은 순간을 바라보며 다른 것을 느끼고 있다. 이
비대칭은 진지하게 받아들일 필요가 있다. 그냥 적응하라
는 논의가 계속
놓치는 무언가를 가리키기 때문이다.
행위로부터의 소외
Marx는 소외된 노동의 차원을 넷으로 분석했다. 생산물로부터의 분리, 노동 행위 자체로부터의 분리, 타인으로부터의 분리, 그리고 자신의 인간적 능력으로부터의 분리. LLM 코딩 어시스턴트를 둘러싼 논의에서 핵심은 두 번째라 할 수 있다.
Marx가 말한 노동 행위 자체로부터의 분리
란 이런 것이다. 인간은 다른
동물과 달리, 만들고 싶은 것을 머릿속에서 먼저 구상하고 물질 세계를 그 이미지에
맞게 빚을 수 있다. 이 의식적이고 의도적인 창조 능력이 Marx가 인간의 특성으로 본
것에 가장 가깝다. 노동이 기계적인 것, 강제된 것, 삶이 아니라 견뎌내는 것이 될
때, 그 능력은 실현되지 못한다. 활동은 여전히 일어나고 있지만, 그 사람은 더 이상
거기에 현존하지 않는다.
장인 기술을 애도하는 소프트웨어 엔지니어들은 이 묘사에 닮아있다. 그들이 소중히
여겼던 건 결과물이 아니었다. 무언가를 만드는 과정, 치열하게 집중했던 시간들,
시스템을 충분히 이해해서 그것을 다시 빚을 수 있다는 느낌. Lawson이 정확히
그렇게 말한다. 내가 이걸 만들었다
고 말할 수 있는 GitHub 저장소.
무언가가 만들어졌다
가 아니라 내가 만들었다는 것.
이것은 왜 두 진영이 같은 도구에 그토록 다르게 반응하는지도 설명한다. Orchard는 처음부터 자신을 코드를 짜는 행위에 투자하지 않았다. 결과에 투자했다. LLM 코딩 어시스턴트가 결과에 더 빠르게 도달하게 해준다면, 그에게 잃는 것은 없다. 반면, Lawson에게는 그 행위 안에 의미가 있었다. LLM 코딩 어시스턴트는 결과물을 우회하는 게 아니라 그가 소중히 여기던 부분을 우회한다. Marx가 구분한 객관적 소외(느끼든 안 느끼든 존재하는 조건)와 주관적 소외(그 상실을 경험하는 것)가 이 분열에 거의 정확히 들어맞는다. Orchard는 애초에 행위 자체에 객관적으로 결박되어 있지 않았으니 주관적으로도 소외를 느끼지 않지만, Lawson은 둘 다 느낀다.
흔한 반응은 이게 향수이거나, 새로운 장인 기술이 옛것을 대체할 것이라는 말이다. 어쩌면 그럴지도 모른다. 그런데 그 반응은 실제 질문을 피해간다. 코딩을 사랑하는 사람들이 왜 코딩에서 밀려나고 있는가? 끌려가는 게 아니라, 밀려나고 있다. 아무도 그들이 손으로 코드를 짜는 것을 막지 않는다. 시장이 그것에 불이익을 주고 있을 뿐이다.
무엇이 불이익을 주는가
Marx는 자본론에서 영국의 러다이트 운동을 이렇게 평했다.
노동자들이 기계 자체와 기계의 자본주의적 적용을 구분하고, 따라서 물질적 생산 수단 그 자체가 아니라 그것의 사회적 착취 형태를 공격하는 법을 배우기까지는 시간과 경험이 필요했다.
방직기를 부순 노동자들의 분노는 정당했다. 방향이 잘못됐을 뿐이다. 베틀이 노동 시간을 늘린 게 아니었다. 자본이 그랬다. 베틀이 노동자를 기계의 부속물로 만든 게 아니었다. 자본이 그랬다.
LLM을 쓰는 동료와 생산성을 비교 당하는 처지에서 어쩔 수 없이 LLM을 쓴다고 말하는 소프트웨어 엔지니어들에게, 소외의 원천은 LLM이 아니다. 생계를 특정 지표에 묶어놓은 구조다. 그 지표는 이제 가장 빠르게 가장 많은 산출물을 내는 사람에게 유리하다. LLM은 지렛대이고, 시장이 기제다.
다만 한 가지는 짚어둬야 한다. 장인 기술과 효율 사이의 긴장은 자본주의를 걷어낸다고 해서 사라지는 게 아니다. LLM이 더 빠른 산출물을 낸다는 사실 자체는 누가 돈을 받든 받지 않든 유효하다. 어떤 공동체도, 어떤 방식으로 조직되든, 결국 그 속도 차이를 어떻게 대할 것인가라는 질문을 피할 수 없다. 자본주의는 그 질문에 가장 가혹한 답을 준다. 더 느린 쪽이 생계를 잃는다. 하지만 질문 자체는 자본주의보다 오래 살아남는다.
내 상황이 보여주는 것
나는 전업으로 오픈 소스 프로젝트를 유지보수하고 있다. 벌이는 전적으로 공적 자금에서 나온다. LLM 코딩 어시스턴트를 쓰지 않으면 일자리를 잃는다고 말하는 고용주도 없다. 내 생산성을 동료와 비교하는 분기별 평가도 없다.
이런 조건에서 나와 LLM의 관계는 Lawson이 묘사하는 것과 사뭇 다르다. 흥미롭다고 생각하는 코드는 여전히 손으로 짠다. 하고 싶지 않은 부분들, 장황한 테스트 스캐폴딩과 수백 번 써 본 보일러플레이트는 모델에게 넘긴다. 이 구분은 내 스스로 그은 선이다. 무언가를 표현하는 일과 그냥 처리해야 하는 일 사이의 구분선.
Marx가 자본주의 바깥에서 기계가 할 수 있는 일이라고 상상했던 것과 가깝다. 반복 노동에서 사람을 해방시켜 더 창조적인 활동을 위한 시간을 열어주는 것. 기술이 다른 게 아니라 조건이 다른 것이다.
내 상황을 해법으로 제시하려는 게 아니다. 이런 상황은 드물고, 여전히 자본주의 경제 안에 존재한다. 임시 피난처일 뿐 탈출이 아니다. 다만 같은 도구가 한 맥락에서는 해방적으로, 다른 맥락에서는 소외적으로 느껴진다는 것, 그 차이가 도구가 아니라 사회적 조건에서 온다는 것 만큼은 사실인 것 같다.
슬픔이 바라봐야 할 곳
원인을 안다고 해서 고통이 해소되는 건 아니다. 지금 당장 LLM 코딩 어시스턴트를 쓰도록 내몰리고 있는 소프트웨어 엔지니어들에게 구조 분석은 오늘 오후를 도와주지 못한다.
그러나 질문을 약간 다르게 할 수는 있다. Lawson이 묘사하는 슬픔이 실재한다면, 그리고 그 슬픔의 더 깊은 원인이 기술 자체가 아니라 그것을 둘러싼 관계에 있다면, 슬픔이 향해야 할 곳은 LLM이 아니다. 원하지 않는 도구를 원하지 않는 조건에서 쓰도록 강제하는 것이 무엇인지가 문제다.
Lawson도 이 근처 어딘가에 도달한 듯하다.
나는 새 세상을 축하하지 않지만 저항하지도 않는다. 해가 뜨고 지고, 나는 그 주위를 어쩔 수 없이 공전하며, 내 항의는 그것을 막을 수 없다.
솔직하지만, 체념이 우리에게 남은 유일한 길은 아니라고 믿고 싶다.