하스켈 개발자 turion의 LLM 시대 생존법: 코드는 직접 쓰고 LLM은 검증에만 써라
- 하스켈 Discourse 사용자 turion이 9월 18일 올린 글로 코드를 직접 쓰면서 LLM을 테스트와 검증에만 쓰는 방식을 즐거움을 유지하면서 적당히 생산성을 높이는 해법으로 제시함
- 하스켈로 생각을 표현하는 작성 과정 자체에서 즐거움을 얻는다고 밝히고, 코드 생성이 그 즐거움을 위협한다고 지적함. 코드 생성은 줄이고 검토해야 할 생성 코드 최소화를 목표로 삼음
- 션 맥멀런 소설 'Souls in the Great Machine'을 빌려 소프트웨어 제작에서 개발자의 역할이 주체에서 기계의 톱니바퀴로 강등되고 있다고 우화함. 구현부를 LLM에 떠넘기고 토큰을 배급받는 상황을 그 극단으로 봄
- 코드를 전부 생성하면 코드베이스가 LLM 폐야가 되어 코딩 에이전트만 활보하는 상태가 되므로, 사용자가 계속 소유하려면 반드시 손으로 코드를 써야 한다고 주장함
- 코딩을 며칠만 쉬어도 기술 손실 위험이 크다고 경고함. LLM 완전 금욕을 대안으로 두되 회사와 업계가 총 LLM 채용을 추진하면 손을 떼기 어렵다고 봄
Hacker News opinions
프로그래밍을 목적으로 보느냐, 도구로 보느냐의 차이로 갈리는 것 같음.
그 구분에는 동의하는데 우리는 날에 따라 둘 다인 경우가 많더라. 난 CSV 파서는 그냥 생성하게 두고 어려운 상태 머신은 직접 씀.
난 LLM을 이런 용도로 씀. 읽기 전용으로 MySQL 복제본을 읽는 Metabase에 MCP로 붙여서 생산 데이터와 코드 형태를 정적으로 비교하게 했는데, 이름 오류 같은 걸 몇 개 잡아냈음.
Datadog 로그랑 커밋 이력을 확인해 수정을 제안하게 하고 Linear에서 티켓을 만들게 해서 PR 설명을 자세하게 만듦. 코딩 자체는 지난 4주간 프런티어 모델의 모든 출력과 결정을 검토하면서 반박해 왔음.
읽을 거리는 됐는데 나한테는 이 워크플로가 별로임. 손으로 코드를 쓰지 않을 선택권이 생기고 나서는, 굳이 다시 쓰고 싶다는 생각이 안 들더라.
평소에 더 파고 싶었던 주제 하나 골라서 LLM으로 공부하는 것도 방법임.
그건 맞는데 LLM 정보를 빠르게 검증할 수 있는 분야여야 함.
프로그래밍 40년 차인데 머릿속에 언어 파서가 여럿 쌓여 있음. 난 LLM을 StackOverflow on steroids처럼 쓰는데 브라우저에서만 끝내고 내 코드에는 손을 안 댐. 오히려 예전보다 프로그래밍이 더 좋아졌음.
문제는 요즘 회사에서 에이전트를 전부 쓰라고 밀어붙인다는 거임. 그러면 코드를 쓰는 대신 하루 종일 LLM이 뱉은 걸 검토하다 끝나더라.
끝났음. LLM이 어떤 알고리즘도 어떤 스택도 어떤 개념도 몇 초에서 몇 시간에 만들어냄. 코드를 손으로 쓰는 건 전동 공구 없이 집 짓는 거랑 같다고.
그럼 나는 어떻게 되는 거냐? '대부분'에 못 들어가는 사람은? 그냥 다 끝났으니 관두라는 얘기인가 싶어서 자괴감이 엄청남. 한동안 잘 되고 있다고 생각했는데 내 커리어가 통째로 낭비였다는 기분이 들더라.
웹 개드만 있는 건 아니라고 몇 번을 더 말해야 하냐.
OP 목표가 프로그래머의 즐거움이라면 뭐 그건 그것대로 의미가 있음. 목표를 정확하고 안전한 코드에 둔다면 LLM과 사람이 나눠 맡을 몫이 완전 달라지는데, 결국 자원 배분의 문제임.
그 파워툴 비유는 틀렸음. LLM은 기존 불변식을 부수고 데드 코드를 넣고 테스트를 조작하고, 주석과 문서를 오염시켜 후속 작업을 망가뜨리는 걸 몇 시간 만에 함. 전동 공구가 '몇 시간에 집을 지어준다'는 말은 안 됨.
손코딩, 그러니까 어떤 언어로 코드 문자를 쳐 넣는 행위 자체는 거의 구식이 됐다고 봄. 술에 취해도 다익스트라나 퀵소트를 10분에 열 가지 언어로 짜던 내 실력이 지금 완전히 무가치해졌음. 소프트웨어 엔지니어링은 코딩보다 넓고 창의적인 부분은 여전히 남아 있음.
전동 공구라기보다는 헬스장 안 가고 스테로이드만 먹는 것에 더 가깝지 않나?
전동 공구 비유가 말이 되려면 LLM 결과가 매번 신뢰 가능해야 하는데 그게 아님. 아무도 비트가 10% 확률로 엉뚱한 곳으로 튀는 무선 드릴은 안 씀.
나 요즘 LLM한테 테스트와 검증을 많이 맡김. NFS에서 파일을 뽑고 검증 스크립트를 작성 실행하는 속도가 내가 테스트 전략을 떠올리는 것보다 빠름. 단위 테스트처럼 반복적이고 장황한 코드에도 진짜 시간 절약되고, 덕분에 API 설계나 리팩토링, 아키텍처 같은 일에 시간을 씀. 큰 코드베이스를 헤맬 때도 요긴함.
프로그래머들이 자동화로 일자리가 사라진 취미를 가진 사람들과 똑같은 처지에 놓인 걸 보는 게 재미있음. 옷이고 가구고 신발이고 빵이고 직접 만드는 사람들처럼, 자기 만족을 위해 스스로 하면 됨.
그 이야기는 프로그래머를 한 방 먹이고 싶은 사람들을 위한 프레임이지, 현실은 LLM 생성 코드가 유지보수에서 버티지 못한다는 거임.
비유가 어폐가 있는 게, 취미로 빵 굽는 사람은 공장에서 8시간 동안 싸구려 빵만 찍어내지 않음. 그렇게 몇 년 혹은 십수년을 보내고 나면 집에서 빵을 굽고 싶은 마음이 남아 있을 것 같음?
손코딩으로 직업을 삼을 수도 있음. 수제 명품이 대량 생산보다 비싼 이유가 품질과 사람 냄새, 그리고 할 수 있는 사람이 적기 때문인데 이 세 가지가 소프트웨어에도 곧 적용됨. LLM이 못하거나 신뢰 못하는 부분을 손으로 짜는 사람은 희소해지면서 몸값이 오를 테고, 스위스 시계 장인처럼 살 사람도 나올 거임.