dev.to

I Stopped Measuring My Programming Ability by How Much Code I Write.

작성한 코드 줄 수로 프로그래밍 실력을 재지 않기로 했습니다

글쓴이는 AI가 코드를 작성하더라도 개발자의 실력은 직접 타이핑한 양이 아니라 결과를 이해하고, 오류를 찾아 고치며, 유지보수까지 책임지는 데서 드러난다고 말합니다. AI가 코드를 빠르게 만들수록 이해 속도가 병목이 되므로 변경 내용을 꼼꼼히 읽고 작은 단위로 검증해야 한다고 설명합니다.

AI 요약

글쓴이는 한때 문법을 외워 코드를 직접 작성하는 능력을 개발 실력의 기준으로 삼았습니다. Stack Overflow나 문서를 참고하고 자동 완성 기능을 쓰는 일을 부끄러워하기도 했습니다. AI가 코드를 만드는 시대에는 모델이 작성한 코드로 무언가를 만들었다고 말할 수 있는지 고민했지만, 더 많은 소프트웨어를 만들고 디버깅하고 유지보수하면서 기준을 바꿨습니다.

코드를 쓰는 일에서 이해하고 책임지는 일로

이제 글쓴이가 묻는 것은 직접 몇 줄을 썼는지가 아닙니다. 시스템이 무엇을 하는지 이해하는지, 잘못된 동작을 알아차리는지, 정상 흐름이 깨졌을 때 디버깅하는지, 아키텍처의 이유를 설명하고 다른 기능을 망가뜨리지 않으면서 변경할 수 있는지 따집니다. 다음 달에도 유지보수할 수 있는지, 결과를 책임질 의지가 있는지도 기준으로 둡니다.

AI는 그럴듯한 코드 수백 줄을 빠르게 생성하지만, 복잡한 작업에서는 기존 로직을 중복하거나 아키텍처를 오해하고, 테스트는 통과하면서 실제 요구사항을 어길 수 있습니다. 버그 하나를 고치면서 다른 버그를 만들거나 사용자가 의존하는 동작을 없애기도 합니다. 코드를 생성하는 일은 개발의 일부일 뿐이며, 생성 속도가 빨라질수록 코드를 이해하는 데 더 많은 주의를 기울여야 한다고 글쓴이는 말합니다.

이해하지 못한 코드는 아직 신뢰하지 않습니다

에이전트가 구현을 내놓으면 왜 그 방식을 골랐는지, 상태를 올바른 컴포넌트가 소유하는지, 원인을 고쳤는지 증상만 감췄는지, 실패하거나 두 번 실행될 때 어떻게 되는지 확인합니다. 코드가 동작하는 것과 코드를 이해하는 것은 다릅니다. 글쓴이는 설명할 수 없는 코드를 프로젝트에 넣고 싶지 않다고 말합니다.

AI가 초기 구현을 했더라도 개발자가 상태가 컴포넌트 사이로 새는 원인을 찾고, 회귀 문제를 추적하고, 소유권 구조를 바꾸고, 예외 상황을 시험해 수정 사항을 확인했다면 그 과정 역시 프로그래밍이자 엔지니어링입니다. 저자는 개발자의 저작성이 키보드를 눌러 문자를 만드는 데만 있지 않다고 봅니다. 결정을 내리고 결과를 이해하며 나쁜 접근을 거부하고 무엇을 남길지 판단하는 일도 포함합니다.

생성 속도보다 빠르게 이해하기

도구가 빠르게 기능을 더하면 코드에 대한 정신적 모델이 그 속도를 따라가지 못할 수 있습니다. 프롬프트 하나가 여러 파일로 이어지고, 다음 요청은 추상화를 추가하며, 그 과정에서 중요한 동작을 바꾸기도 합니다. 결국 개발자가 설명할 수 없는 코드베이스가 남을 수 있다는 점을 글쓴이는 경계합니다.

이를 막기 위해 변경 사항을 전부 읽고, 모델에게 선택 이유를 묻되 설명이 실제 코드와 맞는지 확인합니다. 머릿속에 담아둘 수 있도록 변경을 작게 유지하고, 정상 흐름뿐 아니라 이례적인 상황도 시험합니다. 왜 동작하는지 설명할 수 없다면 배포하지 않습니다.

글쓴이의 GitHub 계정은 10년이 넘었지만 오랜 기간 활동이 뜸했습니다. 경력 공백과 진로 변경을 거친 뒤 최근 1년 동안은 그 전 10년을 합친 것보다 더 많은 프로젝트를 만들고 유지보수했다고 합니다. 도구가 포트폴리오를 대신 만든 것이 아니라, 무엇을 만들지 결정하고 디버깅하고 배포하고 유지할 사람이 여전히 필요했습니다. 혼자, 기억만으로, 빈 파일에서 전부 만들어야 실력이 있다는 기준을 버리자 프로젝트를 완성하기 시작했다고 글쓴이는 설명합니다.

dev.to 반응

  • @manuel_diaz — 정말 멋지세요.
  • @manuel_diaz — 지금은 어디에서 일하고 계세요?
    • @mikachu — 지금은 프리랜서로 일하면서 기술 글쓰기와 소프트웨어 포트폴리오를 만들고 있습니다. 주로 개발자 도구를 다루고, AI와 에이전트 관련 작업도 조금 합니다. 현재 정규직 기술 글쓰기·소프트웨어 직무 면접도 적극적으로 보고 있습니다 🙂
  • @copyleftdev — Mika, 정말 아름다운 글입니다. 여기서 축하할 일이 하나 더 있습니다. 머릿속에 있던 비전을 세상에 내놓을 수 있다는 점입니다. 결정을 내리고, 실패를 헤쳐 나가고, 끝까지 완성하고, 결과를 책임질 수 있습니다. 자랑스러워해도 좋습니다. 가능성을 보는 사람들과 그것을 현실로 만드는 데 필요한 절제에 관한 「Cogs and Sparks」라는 글을 썼습니다. 이 글을 읽으면서 당신은 스스로 만들 공간을 마련해 가는 ‘불꽃’ 같은 사람일지도 모른다고 생각했습니다. 호기심과 판단력, 결과를 책임지려는 태도가 글에서 분명하게 드러납니다. 자신이 만든 것을 자랑스러워하는 만큼, 그것이 어떻게 작동하는지 책임지는 자신에게도 충분히 점수를 주길 바랍니다.

원문: dev.to / 번역·요약: Trawling