AI가 코드를 대신 쓰기 시작하면서 달라진 것들
요즘 개발을 하면서 AI를 사용하는 것은 너무 자연스러운 일이 됐다.
간단한 함수 작성부터 에러 해결, 리팩토링까지 예전보다 훨씬 빠르게 작업할 수 있게 됐다.
처음에는 단순히 생산성이 좋아졌다고 생각했다.
하지만 AI를 몇 달 동안 꾸준히 사용하면서 느낀 변화는 생각보다 다른 곳에 있었다.
코드를 작성하는 시간은 줄어들었지만 오히려 더 많이 고민하게 된 부분들이 생겼다.
구현보다 문제 정의가 중요해졌다
예전에는 구현 방법을 찾는 데 많은 시간을 썼다.
API를 어떻게 설계할지,
어떤 라이브러리를 사용할지,
어떤 방식으로 상태를 관리할지 고민했다.
지금은 AI가 이런 부분을 꽤 빠르게 도와준다.
대신 더 중요한 질문이 남는다.
지금 내가 해결하려는 문제가 정확히 무엇인가?
문제를 명확하게 설명하지 못하면 AI도 좋은 답을 주지 못한다.
결국 좋은 결과를 얻기 위해서는 구현보다 문제를 정의하는 능력이 더 중요해졌다.
문제 해결보다 재발 방지가 더 중요하다
AI는 문제를 꽤 잘 해결한다.
에러 로그를 붙여 넣으면 원인을 추론해주고,
구현 방법을 물어보면 코드도 작성해준다.
하지만 개발을 하면서 느낀 것은 문제를 해결하는 것보다 같은 문제가 다시 발생하지 않도록 만드는 일이 더 중요하다는 점이었다.
버그를 수정하는 것보다 버그가 발생할 수 있는 구조를 개선하는 일.
반복되는 작업을 처리하는 것보다 자동화하는 일.
실수를 발견하는 것보다 실수를 예방하는 시스템을 만드는 일.
이런 일들은 여전히 개발자의 몫이다.
AI가 알려준 해결책을 적용하는 것으로 끝나지 않는다.
왜 이런 문제가 발생했는지,
어떤 조건에서 다시 발생할 수 있는지,
어떻게 하면 예방할 수 있는지를 함께 고민해야 한다.
AI를 사용할수록 기본기가 중요해진다
AI를 오래 사용할수록 한 가지를 자주 느낀다.
생각보다 자신감 있게 틀린 답을 한다.
존재하지 않는 API를 설명하거나,
문서에 없는 옵션을 알려주거나,
그럴듯하지만 잘못된 원인을 제시하기도 한다.
처음에는 이런 답변에 꽤 많이 속았다.
하지만 시간이 지나면서 AI의 답을 그대로 믿기보다 검증하는 습관이 생겼다.
결국 AI를 잘 활용한다는 것은 AI를 무조건 믿는 것이 아니라 적절히 의심하는 능력에 가깝다.
그리고 그 판단은 결국 개발자의 기본기에서 나온다.
내가 느낀 가장 큰 변화
AI 덕분에 코드를 작성하는 시간은 분명히 줄어들었다.
대신 더 많은 시간을 문제를 정의하고,
구조를 설계하고,
자동화를 고민하고,
결과를 검증하는 데 사용하게 됐다.
예전에는
어떻게 구현할까?
를 고민했다면
지금은
왜 이런 문제가 발생했을까?
어떻게 하면 다시 발생하지 않을까?
이 과정 자체를 자동화할 수는 없을까?
를 더 자주 고민하게 된다.
돌아보면 AI가 가져온 가장 큰 변화는 코드를 대신 써주는 것이 아니라 개발자가 더 높은 수준의 문제를 바라보게 만든 것인지도 모르겠다.
마무리
AI는 좋은 도구다.
하지만 좋은 개발자를 대신해주지는 않는다.
오히려 AI를 사용할수록 문제를 정의하고, 답을 검증하고, 재발을 방지하는 능력이 더 중요해졌다고 느낀다.
결국 개발자의 역할은 문제를 해결하는 사람을 넘어 문제 자체를 줄여나가는 사람에 더 가까워지고 있는 것 같다.