단로그
Journal

좋은 글, 좋은 코드

개발자의 직무, 좋은 글과 좋은 코드에 대한 생각을 정리합니다.

얼마 전, claude-opus-5.5 모델이 새로 나왔습니다. 벤치마크나 X에 올라오는 글들을 보면 역대급 성능이고, gpt-6-sol 모델과 비교한 글도 많이 올라왔습니다. 그런데 모델이 새로 나와도 제가 사용하는 업무 패턴은 크게 변한 게 없고, AI 속도가 조금 빨라진 정도의 차이만 있습니다. 그래서 저 스스로 정말 중요한 게 뭔지 생각을 정리해보려고 합니다.


1. 읽기

저는 글을 보는 것을 정말 좋아합니다. 책을 읽기도 하고, 기술 블로그를 보기도 하고, 여러 사람들의 생각이 담긴 글도 좋아합니다. 그리고 코드도 하나의 글이라 생각해서 코드를 읽는 것도 좋아합니다.

글을 좋아하는 이유는 사람마다 다양하겠지만, 저는 글쓴이의 생각을 들어보고, 저도 그 주제에 대해 같이 생각할 수 있기 때문입니다. 코드도 마찬가지입니다. 코드를 작성한 사람의 의도를 이해하고, 코드리뷰를 하며 생각을 공유하는 행위가 즐겁습니다.

그런데 요즘 AI가 작성한 글이 많아지면서, 글을 읽는 것이 힘들어졌습니다. AI가 주로 사용하는 특유의 단어나 강조 등이 거슬리기도 하고, 글쓴이의 생각이 드러나지 않다 보니 재미가 없습니다. 그런 글을 보는 것보다, Claude와 채팅으로 생각을 주고 받는게 더 가치있는 일로 느껴질 때도 있습니다.

한때 AI 시대에 직업별로 남은 수명을 계산하는 서비스가 유행했었는데, 저도 재미있게 사용했습니다. 프론트엔드 개발자는 1년 11개월 정도 남았는데, 소설가는 8년이 넘게 남았습니다. 이 기간이 정확하다거나, 무조건 믿자는 게 아닙니다. 이 예측에서 드러나는 사실만 가져와보면, 소설은 AI로 대체하기 쉽지 않다는 얘기입니다. 아마 이유는 제가 조금 전에 말한 내용과 동일할 것입니다.

2. AI와 개발자

업무에 AI를 활용해서 생산성을 올리고, 서비스를 빠르게 만들어나가는 것은 정말 중요합니다. AI가 발전하면서 코드를 작성하는 것이 병목이 아닌, 설계와 검토가 더 핵심이자 병목 구간이라고 얘기합니다. 맞는 말이지만, 이는 AI가 발전하기 이전에도 동일했습니다.

AI로 모든 코드를 작성하고, 배포가 가능하고, 서비스를 운영할 수 있다면 왜 코드를 알아야하고 개발자가 있어야할까요? 개발자가 AI로 모든 코드를 작성하고 AI로 PR을 올린다면, 다른 직무가 바이브 코딩을 해서 만드는 것과 어떤 차이가 있을까요?

AI는 새로 만드는 것은 정말 잘하지만, 대규모 코드베이스일수록 활용이 어렵다고 합니다. 다양한 이유가 있겠지만, 핵심은 그 속엔 수많은 의사결정과 맥락이 녹아있기 때문입니다. 개발자들은 소프트웨어 지식을 활용하여 전체적인 아키텍처를 설계하고, 정책을 코드로 풀어내고, 예외 케이스를 선제적으로 파악하고, 오류를 파악하고, 보안을 검토하며 서비스를 만들어갑니다.

AI를 도구로 활용할 수는 있지만, 반드시 개발자이자 사람이 직접 개입을 해야하는 영역입니다. 토스 기술블로그 중 ‘개발자는 AI에게 대체될 것인가’를 함께 보는 것을 추천드립니다.

3. 좋은 코드, 좋은 글

요즘은 AI로 작성한 코드가 대부분입니다. 한 파일에 500라인이 넘는 코드, 변경 내역을 모두 정리한 긴 주석, 구현을 위해 남발된 useRef, useEffect, 이 외에도 무수한 코드들이 눈에 보입니다. 이를 보완하기 위해 다양한 스킬과 서브에이전트를 도입하여 그럴듯한 개선이 되어 PR로 올라오기도 합니다. 물론 이 PR도 AI로 작성되는 경우가 많습니다. 모든 걸 AI로 개발하고, 리뷰어에게 검토해달라고 하는 행위는 바람직한 것일까요?

AI로 모든 내용을 작성한 책이 있다면, 그 책을 재미있게 읽기는 쉽지 않을 것입니다. PR도 마찬가지입니다. 저에게 코드리뷰란, 리뷰어에게 변경사항 검토를 요청하는 것도 있지만, 생각과 설계의도를 전달하여 제품에 대한 이해도를 함께 높이는 목적도 있습니다. 이 행위가 없다면, 다른 팀원이 어떤 업무를 하고 있고, 개발 중 어떤 어려움이 있는지 알기 어려울 것입니다.

‘좋은 코드’라고 하면 몇몇 개발자들은 유지보수, 확장성, 응집도, 결합도 등을 얘기합니다. 물론 중요하지만, 가장 간단하게 생각해보면 ‘좋은 글’의 기준과 같습니다. 독자(동료 개발자)가 이해하기 쉽고, 읽기 쉬운 글(코드)이 좋은 글(코드)입니다.

최근에 ‘로버트 C. 마틴’의 ‘클린 코드’가 2판이 새로 나왔습니다. AI로 모든 코드를 작성하고 서비스를 만들면 되는데, 왜 클린 코드를 개정판으로 다시 냈을까요?