요 근래 저는 제가 직접 코드를 치는 것 보다 CODEX라는 친구를 시켜 코딩을 하는 경우가 많은데 생산성이 눈에 띄게 달라지는걸 느꼈습니다.
하루에 끝내지 못할 것 같았던 작업들인데도 한 시간안에 끝나는걸 보니 기분은 좋지만 여러 가지 의문이 들었습니다.
1. 나는 바이브코딩으로 개발하는 사람들과 무엇이 다를까?
( 절대 이 글은 바이브 코딩을 비하하는 것이 아닙니다 🙇♀️ )
솔직히 이 질문이 머릿속을 맴돌기 시작했습니다.
바이브코딩 한다고 하면 보통은 AI한테 "이거 만들어줘" 해서 딸깍 배포하고 안 되면 AI한테 "왜 안 돼?" 하는 방식.
가장 큰 장점은 빠르고 실제로 동작하는 결과물을 만들어낼 수 있다는 점입니다.
하지만 CODEX가 코드를 빠르게 생성하는 모습을 보면서 한 가지 고민이 들었습니다. “이 코드가 과연 내가 만든 코드라고 할 수 있을까?“라는 질문이었습니다. AI가 코드를 생성해 주는 환경에서는 빠르게 결과를 만들어낼 수 있지만, 그 코드의 흐름과 맥락을 충분히 이해하지 못한 채 사용하는 상황이 발생할 수 있기 때문입니다.
바이브 코딩은 AI가 운전하고 사람이 조수석에 앉는 방식이라고 생각합니다. 반면 제가 지향하는 방식은 제가 운전하고 AI가 조수석에 앉는 방식입니다. 겉으로 보기에는 동일한 목적지에 도달하는 것처럼 보이지만, 사고가 발생했을 때 직접 핸들을 잡고 방향을 수정할 수 있는 사람인지 여부에서 차이가 발생한다고 생각합니다.
실제로 CODEX가 프로젝트의 맥락과 맞지 않는 방향으로 코드를 생성한 적이 있었습니다. 이때 저는 코드의 구조와 흐름을 이해하고 있었기 때문에 이상한 방향을 빠르게 인지하고 수정할 수 있었습니다. 프로젝트의 전체 맥락을 이해하고 있었기 때문에 가능한 일이었습니다.
결국 중요한 차이는 AI가 생성한 코드를 이해하는 개발자인지, 아니면 단순히 사용하는 개발자인지라고 생각합니다.
2. 그럼 내 차별점은 무엇일까?
CODEX가 컴포넌트를 생성했을 때 저는 단순히 코드를 받아들이지 않습니다. 이 구조가 현재 팀의 컨벤션에 맞는지, props 구조가 향후 확장 시 문제가 되지 않을지, 그리고 이 방식이 왜 적절한지 팀원들에게 설명할 수 있는지까지 함께 고민합니다. 단순히 동작하는 코드인지가 아니라, 프로젝트 맥락에서 적절한 코드인지 판단하는 과정이 중요하다고 생각합니다.
AI는 코드를 빠르게 생성합니다. 하지만 왜 이러한 구조가 필요한지, 지금 상황에서 적절한 선택인지에 대한 판단은 여전히 개발자의 역할입니다. 이러한 판단력은 프로젝트 경험과 협업을 통해 쌓아온 역량이며, 이는 AI가 대신할 수 있는 영역이 아니라고 생각합니다. 오히려 이러한 판단력이 있을 때 CODEX는 더욱 효과적인 도구로 활용될 수 있습니다.
좋은 프롬프트를 작성하는 능력 역시 도메인 지식에서 비롯됩니다. 어떤 방향으로 코드를 생성해야 하는지, 어떤 제약 조건을 고려해야 하는지 이해하고 있어야 AI에게도 정확한 요구를 전달할 수 있기 때문입니다. 결국 AI를 잘 활용하는 개발자는 단순히 코드를 생성하는 사람이 아니라, 상황에 맞는 판단을 내리고 방향을 제시할 수 있는 개발자라고 생각합니다.
3. 프론트엔드 개발자로서 AI를 현명하게 쓰는다는 것
AI가 발전하면서 프론트엔드 개발자의 역할도 조금씩 변화하고 있습니다. 단순히 코드를 생성하는 도구로 사용하는 것을 넘어, 개발 과정 전반에서 AI를 활용할 수 있게 되었습니다. 특히 팀 개발 환경에서 AI는 더욱 강력한 도구가 될 수 있습니다.
예를 들어 팀의 컨벤션을 AGENTS.md와 같은 문서로 정리해 두면, 단순히 사람이 리뷰하는 방식이 아니라 처음부터 컨벤션을 지키는 방향으로 코드가 생성되도록 유도할 수 있습니다. 새로운 컴포넌트를 생성할 때도 팀에서 정의한 구조와 네이밍 규칙을 기반으로 코드를 작성하도록 할 수 있고, 자연스럽게 팀의 코드 스타일과 아키텍처가 유지됩니다. 이는 단순히 코드 생성 속도를 높이는 것을 넘어, 팀 전체의 코드 품질과 일관성을 유지하는 데에도 도움이 됩니다.
또한 과거에는 문제가 생기면 코드를 복사해서 질문하는 방식이 일반적이었습니다. 하지만 이제는 IDE 환경 안에서 프로젝트 전체 맥락을 기반으로 AI를 활용할 수 있게 되었습니다. 파일 간의 관계, 상태 흐름, 컴포넌트 구조까지 고려한 답변을 받을 수 있기 때문에, 보다 실질적인 도움을 받을 수 있습니다.
이처럼 AI는 단순히 코드를 대신 작성해주는 도구가 아니라, 개발자의 판단을 보조하고 팀의 생산성을 높이는 방향으로 활용될 때 가장 효과적이라고 생각합니다. 결국 중요한 것은 AI를 얼마나 빠르게 사용하는지가 아니라, 얼마나 현명하게 사용하는지라고 생각합니다.