AI가 코드를 쓰는 시대의 개발자
AI로 개발하면서 많은 생각이 드는 요즘이다.
새로운 모델과 도구가 계속 나오고, 누군가는 AI로 며칠 만에 제품을 만들었다는 이야기가 들린다. 나도 이 흐름을 놓치고 있는 것은 아닐까 하는 FOMO가 왔다. 지금까지 공부한 것들은 금방 쓸모없어지고, 앞으로 무엇을 공부해야 할지도 잘 모르겠다는 생각에 한동안 무기력해지기도 했다.
그런데 가만히 생각해보니 개발하는 과정에서 달라진 것은 생각보다 일부분이었다.
예전에는 구조를 고민한 뒤 직접 코드를 작성했다. 지금은 해야 할 일과 맥락을 설명하고 AI가 코드를 작성하게 한다. 직접 손으로 코드를 짜던 과정이 프롬프팅으로 바뀐 것이다.
하지만 결과에 요구되는 것은 크게 달라지지 않았다.
좋은 결과를 판단하는 일
AI가 코드를 빠르게 작성해도 그 코드가 좋은지는 여전히 개발자가 판단해야 한다.
좋은 코드는 지금 동작하는 것으로 끝나지 않는다. 이후 요구사항이 바뀌었을 때 수정할 범위가 작아야 하고, 변경이 생겨도 다른 코드까지 연쇄적으로 깨지지 않아야 한다. 외부 API나 상태처럼 서로 다른 의존성을 안쪽에 박아두기보다 바깥에서 주입할 수 있어야 테스트하기도 쉽다.
이런 기준을 모르면 AI가 그럴듯하게 만든 코드를 보고도 무엇이 문제인지 알기 어렵다. 반대로 원리와 흐름을 이해하고 있다면 프롬프트도 달라진다. 책임을 어디에서 나눌지, 어떤 의존성을 분리할지, 실패했을 때 어떻게 복구할지 더 정확하게 요구할 수 있다.
좋은 프롬프트는 특별한 말재주가 아닌 것 같다. 내가 알고 있는 만큼 질문할 수 있고, 생각해본 만큼 구체적인 조건을 줄 수 있다. 결국 지금까지 쌓아온 사고방식이 프롬프트로 이어진다.
코드를 작성하는 것만이 개발은 아니었다
개발할 때는 코드 외에도 고려할 것이 많다.
같은 기능이라도 서비스의 도메인과 기존 구조, 일정과 기술적인 제약에 따라 답이 달라진다. 디자이너, PM과 요구사항을 조율하고 서로 다르게 이해한 부분을 맞춰야 한다. 구현하고 싶은 것과 지금 제품에 필요한 것 사이에서 우선순위도 정해야 한다.
결국 팀이 함께 달성하려는 비즈니스 목표가 있고, 코드는 그것을 만들기 위한 방법 중 하나다.
AI가 바꾼 것은 이 과정 전체가 아니다. 그중 내가 손으로 코드를 작성하던 부분을 프롬프트를 통해 구현하는 방식으로 바꿨다고 생각한다. 무엇을 만들어야 하는지 정하고, 여러 제약 사이에서 선택하고, 결과가 제대로 만들어졌는지 확인하는 일은 그대로 남아 있다.
오히려 구현 속도가 빨라질수록 이 판단들이 더 자주 필요해진다. 만들 수 있는 양이 늘어난 만큼 잘못된 방향으로 더 빠르게 갈 수도 있기 때문이다.
무엇을 연마해야 할까
그래서 나는 여전히 기본기와 기술을 공부해야 한다고 생각한다.
브라우저와 네트워크가 어떻게 동작하는지, 데이터와 상태가 어디에서 흘러오는지, 책임과 의존성을 어떻게 나누는지 알아야 한다. 좋은 코드와 나쁜 코드를 구분하고, 지금의 선택이 다음 수정에 어떤 영향을 주는지도 볼 수 있어야 한다.
동시에 AI가 더 안정적으로 일할 수 있는 환경도 만들어야 한다. 프로젝트의 컨벤션을 정리하고 린트와 타입 검사로 지켜야 할 선을 만든다. E2E 테스트로 실제 사용자 흐름이 깨지지 않았는지 확인하고, 반복해서 설명하는 내용은 규칙이나 스킬로 남긴다. AI가 코드를 많이 작성할수록 결과를 검증할 수 있는 장치도 함께 필요하다.
AI가 우리를 어디로 데려갈지는 아직 모르겠다.
나도 빠르게 변하는 모습을 보면서 조급했고, 무엇을 해야 할지 몰라 손에 잡히지 않던 시기가 있었다. 하지만 구현하는 도구가 달라졌을 뿐 내가 해야 할 일 전체가 사라진 것은 아니라고 생각하니 조금 괜찮아졌다.
생각해보면 나도 이미 AI를 사용해 제품을 뚝딱 만들고 있다. 머릿속에 있던 아이디어를 실제로 동작하는 모습까지 옮기는 시간이 훨씬 짧아졌다. 불안해하기만 할 변화는 아니다. 오히려 내가 더 많은 것을 만들어볼 수 있는 기회일지도 모른다는 생각이 점점 들고 있다.
지금은 이 기회를 잘 사용해서 더 좋은 결과를 내는 방법을 찾고 싶다. 빠르게 만드는 데서 끝나지 않고, 이후에도 고치기 쉽고 안정적으로 동작하는 제품을 만들고 싶다.
그렇게 더 좋은 개발자이자 메이커가 되고 싶다.