나는 더 이상 코드를 직접 작성하지 않는다
Cursor 자동완성에서 Claude Code까지. 10년 넘게 일한 프런트엔드 개발자가 코드를 직접 쓰지 않게 되기까지 달라진 일하는 방식
4분 읽기AI와 개발자 1편
10년 넘게 프런트엔드 개발자로 일해 왔다.
새로운 프로젝트를 시작하면 요구사항을 살펴보고 기술 스택을 정했다. 코드를 작성하고, 문제가 생기면 원인을 찾아 수정했다. 구현한 기능이 의도한 대로 동작하는지 확인하는 일도 내 몫이었다.
그런데 요즘은 코드를 직접 작성하는 일이 거의 없다.
AI에게 요구사항을 전달하고 구현을 맡긴다. 오류가 발생하면 원인을 분석하고 수정하도록 한다. 나는 무엇을 만들 것인지, 결과가 기대한 대로 나왔는지 확인하는 데 집중한다.
처음부터 이렇게 일했던 것은 아니다.
처음에는 Tab만 눌렀다
AI를 개발에 활용하기 시작했을 때는 Cursor의 자동완성 기능을 주로 사용했다.
코드를 작성하다 보면 AI가 다음 내용을 제안했다. 마음에 드는 제안이 나오면 Tab 키로 받아들였다.
당시에는 내가 직접 코드를 작성하고 AI가 그 과정을 도와주는 방식이었다. 자동완성은 편리했지만 개발 방식 자체가 크게 달라진 것은 아니었다.
AI가 작성한 코드의 품질도 쉽게 신뢰할 수 없었다.
정상적으로 동작하는 코드라도 내부에 문제가 있을 수 있다. 기존 코드의 구조와 맞지 않거나 예상하지 못한 조건에서 오류가 발생할 가능성도 있었다.
오랫동안 직접 코드를 작성하고 검토해 왔기 때문에 AI가 작성한 코드를 확인하지 않고 넘어가는 일은 낯설었다.
하지만 AI에게 맡기는 작업이 늘어나면서 생각이 달라졌다.
모든 코드를 내가 다시 읽고 확인해야 한다면, AI에게 구현을 맡긴 뒤에도 이전과 비슷한 방식으로 일하게 되는 것은 아닐까?
에디터를 열지 않고 개발하는 요즘
지금은 Orca에서 Claude Code를 사용한다.
에디터를 열지 않고도 개발 작업을 진행한다. 만들고 싶은 기능과 요구사항을 설명하면 AI가 코드를 작성한다. 오류가 발생하면 원인을 찾고 수정하는 일도 맡긴다.
결과가 기대와 다르면 잘못된 부분을 알려주고 다시 수정하도록 요청한다.
여러 프로젝트를 진행할 때는 Claude Code 세션을 여러 개 열어둔다. 한쪽에서 작업이 진행되는 동안 다른 세션에 새로운 작업을 맡길 수 있다.
물론 여러 세션을 운영하는 일이 마냥 편한 것은 아니다.
회의를 다녀오면 어떤 작업이 어디까지 진행됐는지 기억나지 않을 때가 있다. 그럴 때면 AI에게 묻는다.
"작업을 이어서 하자. 다음 액션 아이템이 뭐지?"
AI 덕분에 여러 작업을 동시에 진행할 수 있게 됐지만, 그만큼 진행 상황을 파악하고 방향을 조율하는 일도 필요해졌다.
이렇게 일하면서 코드를 바라보는 태도도 달라졌다.
지금은 AI가 작성한 소스코드를 일일이 읽지 않는다.
코드를 직접 읽지 않는 대신 결과를 확인하는 데 집중하기로 한 것이다.
구현부터 테스트와 개선까지
웹사이트를 제작할 때도 AI에게 구현을 맡긴다. 코드 작성이 끝났다고 작업이 마무리되는 것은 아니다.
테스트 코드를 작성하고 실행하는 과정도 AI가 수행한다.
어떤 테스트가 필요한지는 작업에 따라 다르다. 단위 테스트와 통합 테스트, E2E 테스트 중 상황에 맞는 방법을 선택하도록 설계했다.
테스트에 실패하면 AI가 원인을 분석하고 코드를 수정한다.
Lighthouse를 활용한 지표 검수도 마찬가지다.
AI가 측정 결과를 분석하고 개선이 필요한 부분을 찾는다. 대응 방향을 제안하고 실제 코드 수정까지 진행한다.
요구사항에 법적 문제가 발생할 가능성이 있는지도 AI에게 사전에 살펴보도록 한다. 법률적 판단을 맡기는 것이 아니라, 별도 검토가 필요할 만한 쟁점을 놓치지 않기 위해서다.
나는 AI가 어떤 문제를 발견했고 어떤 방식으로 해결하려는지 확인한다. 제안한 방향이 적절하다고 판단하면 진행하도록 승인한다.
그리고 최종적으로 구현된 화면과 기능을 직접 확인한다.
물론 테스트를 통과했다고 해서 모든 문제가 해결된 것은 아니다. Lighthouse 지표가 개선됐더라도 실제 사용자 환경에서 문제가 발생할 수 있다.
하지만 구현부터 테스트, 문제 분석과 수정, 지표 검수와 개선까지 AI가 수행한다는 점에서 이전과는 분명히 다른 방식으로 일하고 있다.
코드를 작성하지 않는다면 개발자는 무엇을 할까?
코드를 직접 작성하는 일이 줄었다고 해서 개발 과정에서 판단해야 할 일까지 사라진 것은 아니다.
AI가 요구사항을 잘못 이해하면 기대와 다른 결과가 나온다. 구현 방향이 적절하지 않다면 수정하도록 요청해야 한다. 여러 작업을 동시에 진행할 때는 우선순위를 정하는 일도 필요하다.
나는 지금 코드 한 줄 한 줄보다 요구사항과 실제 결과에 더 많은 관심을 기울이고 있다.
그렇다고 이런 방식이 모든 개발자에게 적합하다고 생각하는 것은 아니다. 나 역시 AI가 작성한 코드와 검증 결과를 어디까지 신뢰할 수 있을지 계속 고민하고 있다.
화면에서 확인하기 어려운 내부 로직이나 보안 문제처럼, 기능이 정상적으로 동작하는지만으로 판단할 수 없는 영역도 있다.
그럼에도 내 개발 방식이 달라졌다는 사실은 분명하다.
처음에는 AI가 제안한 코드를 Tab 키로 받아들이는 정도였다. 지금은 구현과 디버깅은 물론, 테스트와 Lighthouse 지표 검수, 개선 작업까지 AI에게 맡기고 있다.
그 사이에서 내가 하는 일도 달라졌다.
앞으로 AI가 개발 과정의 더 많은 부분을 맡게 된다면 어떨까?
그때 개발자는 무엇을 직접 확인해야 하고, 어떤 판단을 내려야 할까?
나는 아직 그 답을 찾는 중이다.