도구가 편해질수록 잃어버리는 것들
"craft-lovers are losing their craft" — 직역하면 "장인정신을 사랑하는 사람들이 정작 자신의 장인정신을 잃고 있다"는 의미입니다. 이 글은 LLM(대형 언어모델) 도구가 일상화된 개발 환경에서 개발자들이 겪고 있는 미묘하지만 심각한 변화를 짚어냅니다.
코딩에 AI 도구를 쓰는 것이 보편화되었습니다. GitHub Copilot, Cursor, Claude Code 같은 도구들이 자동완성을 넘어 함수 전체를 생성하고, 리팩토링을 제안하고, 버그를 찾아주고, 심지어 아키텍처 설계까지 도와줍니다. 생산성 측면에서는 분명 혁명적입니다. 하지만 이 글의 저자는 여기서 발생하는 부작용에 대해 이야기합니다.
소외된 장인정신(Craft Alienation)
저자가 사용하는 핵심 개념은 "craft alienation" — 장인정신으로부터의 소외입니다. 마르크스의 노동 소외 개념에서 빌려온 이 표현은, 개발자가 자신의 코드와의 관계가 근본적으로 변하고 있음을 지적합니다.
이전에는 개발자가 문제를 이해하고, 해결 방법을 고민하고, 코드를 한 줄 한 줄 작성하면서 그 코드에 대한 깊은 이해와 소유감을 가졌습니다. 코드의 모든 결정에는 이유가 있었고, 그 이유를 개발자 자신이 알고 있었습니다. 왜 이 변수명을 선택했는지, 왜 이 자료구조를 사용했는지, 왜 이 위치에서 에러를 처리하는지.
LLM이 코드를 생성하면 이 관계가 달라집니다. 동작하는 코드를 빠르게 얻을 수 있지만, 그 코드가 "왜" 그렇게 작성되었는지에 대한 이해는 약해집니다. 리뷰를 하고 승인하긴 하지만, 직접 고민하고 선택한 것과는 다른 종류의 이해입니다. 시간이 지나면서 개발자는 자신의 코드베이스임에도 "이 부분은 AI가 작성한 건데, 정확히 왜 이렇게 동작하는지는 모르겠다"는 상황을 점점 더 자주 경험하게 됩니다.
숙련의 역설: 실력이 좋아야 도구도 잘 쓸 수 있다
이 글에서 중요한 통찰은 "LLM을 잘 활용하려면 이미 그 분야에 대한 깊은 이해가 있어야 한다"는 점입니다. AI가 생성한 코드의 품질을 판단하려면, 좋은 코드가 어떤 것인지 이미 알고 있어야 합니다. 보안 취약점을 찾으려면 보안을 이해해야 하고, 성능 문제를 발견하려면 성능 최적화 경험이 있어야 합니다.
하지만 역설적으로, LLM에 의존하는 비중이 높아질수록 이런 깊은 이해를 쌓을 기회가 줄어듭니다. 직접 삽질하면서 배우는 과정, 버그를 만들고 디버깅하면서 얻는 통찰, 잘못된 설계를 리팩토링하면서 체득하는 패턴 — 이런 것들이 "AI한테 물어보면 되지"로 대체되면, 시니어 개발자는 괜찮을지 모르지만 주니어 개발자는 성장의 기회를 잃게 됩니다.
이것은 네비게이션 앱과 길찾기 능력의 관계와 비슷합니다. 네비게이션이 없던 시절에 운전을 배운 사람은 지도를 읽고, 랜드마크를 기억하고, 방향 감각을 기를 수밖에 없었습니다. 네비게이션이 생긴 후에 운전을 배운 사람은 앱이 알려주는 대로 따라가기만 하면 되니까, 같은 길을 수십 번 다녀도 길을 모르는 경우가 많습니다. 앱이 오작동할 때 비로소 자신이 길을 전혀 모른다는 것을 깨닫습니다.
코드의 소유감과 책임
또 다른 차원의 문제는 코드에 대한 소유감과 책임의식입니다. 직접 작성한 코드에는 자연스럽게 책임감이 따릅니다. 그 코드가 깨지면 내가 고쳐야 하고, 내가 고칠 수 있다는 자신감이 있습니다. AI가 생성한 코드에 대해서는 이 관계가 희미해질 수 있습니다. 프로덕션에서 문제가 발생했을 때 "AI가 만든 코드라서 잘 모르겠다"는 상황이 생긴다면, 이는 개인의 문제가 아니라 팀과 조직 전체의 위험입니다.
한국 개발자 환경에서의 의미
한국 개발 문화에서 이 문제는 특히 심각할 수 있습니다. 빠른 개발 속도를 요구하는 환경에서 LLM은 단기적으로 생산성을 크게 높여줍니다. 하지만 "빨리 빨리" 문화와 AI 코드 생성이 결합되면, 코드를 이해하지 못한 채 프로덕션에 배포하는 빈도가 높아질 수 있습니다.
이 글이 "AI를 쓰지 말자"고 주장하는 것은 아닙니다. 오히려 AI 도구를 더 의식적으로 사용하자는 것입니다. 구체적으로는 AI가 생성한 코드를 그냥 수락하지 않고 한 줄씩 이해하려고 노력하기, 가끔은 의도적으로 AI 없이 코딩하는 시간을 갖기, 주니어 개발자에게는 기초 역량을 먼저 쌓을 수 있는 환경을 만들어주기 같은 실천이 필요합니다.
정리
도구가 강력해질수록, 그 도구 없이도 일할 수 있는 역량을 유지하는 것이 더 중요해집니다. LLM은 훌륭한 보조 도구이지만, 개발자의 사고 과정을 대체해서는 안 됩니다.
여러분은 AI 코딩 도구를 사용하면서 자신의 기술적 이해도가 변하고 있다고 느끼시나요? 어떤 기준으로 AI에게 맡길 것과 직접 할 것을 구분하고 계신지 궁금합니다.
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공