티스토리 뷰

AI에게 맡기면 좋은 일들은 무엇일까요?
AI 코딩 도구가 발전하면서 개발자의 작업 방식도 빠르게 달라지고 있습니다.
예전에는 모르는 코드가 나오면 검색하고, 공식 문서를 읽고, 예제를 찾아가며 직접 해결하는 경우가 많았습니다.
지금은 AI에게 질문하면 몇 초 만에 코드를 만들어 줍니다.
오류 메시지를 붙여 넣으면 원인을 분석해 주고, 테스트 코드도 작성해 줍니다. 심지어 프로젝트의 여러 파일을 확인하고 직접 코드를 수정하는 AI Agent까지 등장하고 있습니다.
그러다 보면 자연스럽게 한 가지 고민이 생깁니다.
“도대체 어디까지 AI에게 맡겨도 되는 걸까?”
AI를 전혀 사용하지 않는 것도 비효율적으로 느껴지고, 그렇다고 AI가 만들어 준 코드를 전부 믿고 사용하는 것도 불안합니다.
저는 이 문제에서 중요한 것이 AI를 얼마나 많이 사용하는가가 아니라, 어떤 일을 AI에게 맡기는가라고 생각합니다.
개발 업무에는 AI가 굉장히 잘하는 일이 있는 반면, 여전히 개발자가 직접 판단해야 하는 일도 있기 때문입니다.
AI에게 맡기기 좋은 일 - ① 반복적인 코드 작성
개발을 하다 보면 어렵지는 않지만 계속 반복해서 작성해야 하는 코드가 있습니다.
DTO를 만들거나, 비슷한 CRUD 코드를 작성하거나, 테스트를 위한 데이터를 만들거나, 반복적인 형식의 코드를 작성하는 작업이 대표적입니다.
예를 들어 이미 회원 조회 API가 만들어져 있고 거의 같은 구조로 상품 조회 API를 추가해야 한다고 생각해 보겠습니다.
개발자가 처음부터 모든 코드를 직접 작성할 수도 있습니다.
하지만 기존 프로젝트의 패턴이 명확하다면 AI에게 기존 코드를 보여주고 같은 구조를 유지하면서 새로운 기능의 기본 코드를 만들어 달라고 요청할 수 있습니다.
이런 작업에서 중요한 판단은 이미 사람이 끝낸 상태입니다.
어떤 구조를 사용할지, 어떤 기술을 사용할지, 프로젝트를 어떻게 구성할지는 결정되어 있고 AI는 그 패턴을 바탕으로 반복적인 작업을 빠르게 처리합니다.
저는 이런 영역이 AI를 활용하기 가장 좋은 부분이라고 생각합니다.
생각을 대신 맡기는 것이 아니라 손이 많이 가는 작업을 줄이는 것입니다.
개발자는 AI가 만든 코드를 검토하고 필요한 부분만 수정하면 됩니다.
AI에게 맡기기 좋은 일 - ② 오류의 원인 후보 찾기
개발하면서 상당한 시간을 사용하는 것 중 하나가 디버깅입니다.
코드를 실행했는데 예상하지 못한 오류가 발생합니다.
에러 메시지를 검색합니다.
관련 코드를 확인합니다.
로그를 읽습니다.
한 부분을 수정해 봅니다.
다시 실행합니다.
그래도 해결되지 않으면 다른 가능성을 찾아봅니다.
이때 AI를 정답을 알려주는 도구보다 원인 후보를 빠르게 찾아주는 도구로 사용하면 상당히 유용합니다.
예를 들어 오류 메시지와 관련 코드, 내가 기대했던 결과를 함께 제공하고
“이 문제가 발생할 수 있는 원인을 가능성이 높은 순서대로 알려줘.”라고 요청할 수 있습니다.
그러면 개발자가 혼자 처음부터 모든 가능성을 떠올리는 것보다 훨씬 빠르게 조사 범위를 좁힐 수 있습니다.
하지만 여기서 중요한 점이 있습니다.
AI가 첫 번째로 제시한 원인이 반드시 실제 원인이라는 보장은 없습니다.
그래서 AI가 제시한 해결책을 바로 적용하기보다 하나의 가설로 받아들이고 실제 코드와 로그를 통해 검증하는 과정이 필요합니다.
AI는 탐색 범위를 줄여주고, 최종 판단은 개발자가 하는 방식입니다.
AI에게 맡기기 좋은 일 - ③ 테스트와 코드 검토의 첫 단계
기능을 완성했다고 해서 개발이 끝나는 것은 아닙니다.
예상한 상황에서 제대로 작동하는지 확인해야 하고, 놓친 예외 상황은 없는지도 살펴봐야 합니다.
그런데 자신이 작성한 코드를 자신이 검토하면 놓치는 부분이 생기기 쉽습니다.
이럴 때 AI에게 코드 리뷰의 첫 단계를 맡길 수 있습니다.
예를 들어 단순히 “이 코드 리뷰해 줘.”라고 요청하기보다,
“이 API에서 발생할 수 있는 예외 상황을 찾아줘.”
“null 값이나 잘못된 입력이 들어왔을 때 문제가 생기는 부분이 있는지 확인해 줘.”
“이 기능을 테스트한다면 어떤 테스트 케이스가 필요한지 정리해 줘.”
처럼 구체적으로 요청하는 것입니다.
AI는 사람이 미처 생각하지 못했던 경우를 빠르게 제안할 수 있습니다.
테스트 코드의 기본 형태를 만드는 데 활용할 수도 있습니다.
다만 여기에서도 AI의 역할은 검토를 대신 끝내주는 것보다 개발자가 검토해야 할 지점을 넓혀주는 것에 가깝습니다.
특히 보안이나 개인정보, 결제처럼 중요한 기능은 AI의 리뷰만으로 완료했다고 판단해서는 안 됩니다.
그렇다면 개발자가 직접 해야 하는 일은 무엇일까요?
여기까지 보면 AI에게 상당히 많은 개발 작업을 맡길 수 있는 것처럼 보입니다.
하지만 저는 오히려 AI가 코드를 더 잘 작성하게 될수록 개발자가 직접 해야 하는 일이 무엇인지 구분하는 능력이 더욱 중요해질 것이라고 생각합니다.
AI에게 맡기기 좋은 일이 주로 ‘어떻게 만들 것인가’와 관련되어 있다면, 사람이 맡아야 하는 일에는 ‘무엇을 왜 만들어야 하는가’와 관련된 판단이 많습니다.
개발자가 직접 해야 하는 일 - ① 문제를 정확하게 정의하기
AI에게 “로그인 기능 만들어 줘.”라고 요청하면 로그인 코드를 만들어 줄 수 있습니다.
하지만 실제 서비스에서는 그 전에 결정해야 할 것이 많습니다.
누가 이 서비스를 사용하는지, 어떤 로그인 방식이 필요한지, 로그인 상태를 얼마나 유지할지, 소셜 로그인이 필요한지, 회원 정보는 어디까지 받을지, 보안 수준은 어느 정도 필요한지 등을 결정해야 합니다.
AI는 여러 방법을 제안할 수 있습니다.
하지만 우리 서비스에 어떤 방법이 적합한지 결정하려면 서비스의 목적과 사용자, 기존 시스템의 상황을 이해해야 합니다.
문제를 잘못 정의하면 AI는 잘못된 문제를 매우 빠르게 해결할 수도 있습니다.
그래서 AI 시대에는 코드를 빠르게 작성하는 능력만큼이나 “우리가 지금 해결하려는 문제가 무엇인가?”를 명확하게 정의하는 능력이 중요해질 수 있습니다.
개발자가 직접 해야 하는 일 - ② 중요한 기술적 선택과 구조 설계
AI에게 “이 서비스의 데이터베이스 구조를 설계해 줘.”라고 요청하면 몇 초 안에 테이블 구조를 만들어 줄 수 있습니다.
하지만 실제 프로젝트에서는 단순히 동작하는 구조를 만드는 것만으로 충분하지 않습니다.
사용자가 늘어나면 어떻게 될지, 데이터가 수백만 건 쌓이면 어떻게 될지, 나중에 기능이 추가될 가능성은 없는지, 개인정보를 어떻게 관리할지, 장애가 발생하면 어떤 영향을 받는지까지 생각해야 합니다.
기술 선택도 마찬가지입니다.
AI가 특정 라이브러리나 구조를 추천했다고 해서 그것이 현재 프로젝트에 가장 좋은 선택이라는 보장은 없습니다.
팀이 사용할 수 있는 기술인지, 운영하기 쉬운지, 기존 시스템과 잘 맞는지, 장기적으로 유지할 수 있는지를 함께 판단해야 합니다.
AI에게 여러 선택지와 장단점을 조사하게 하는 것은 좋습니다.
하지만 어떤 위험을 감수하고 어떤 구조를 선택할 것인지는 결국 개발자의 책임 영역입니다.
개발자가 직접 해야 하는 일 - ③ AI가 만든 결과를 검증하기
앞으로 개발자가 가장 많이 하게 될 일 중 하나가 이것일지도 모릅니다.
AI가 만든 것을 제대로 판단하는 일입니다.
AI가 만들어 준 코드가 실행된다고 해서 좋은 코드인 것은 아닙니다.
지금 당장은 동작하지만 특정 상황에서 문제가 발생할 수도 있습니다.
불필요하게 복잡할 수도 있고, 성능 문제가 숨어 있을 수도 있고, 이미 오래된 방법을 사용하고 있을 수도 있습니다.
더 위험한 경우에는 존재하지 않는 API나 잘못된 사용법을 제시할 수도 있습니다.
따라서 AI가 코드를 더 많이 작성할수록 개발자는 오히려 코드를 읽고 판단하는 능력이 필요합니다.
왜 이렇게 작성되었는지 이해할 수 있어야 합니다.
문제가 발생했을 때 어디를 확인해야 하는지도 알아야 합니다.
AI가 만든 코드를 설명하지 못하고 수정하지도 못한다면 그 코드는 사실상 개발자가 통제하기 어려운 코드가 됩니다.
그래서 AI 시대의 개발자는 모든 코드를 직접 타이핑하는 사람이라기보다 코드의 품질과 방향을 책임지는 사람에 가까워질 수도 있습니다.
결국 AI에게는 ‘작업’을 맡기고, 사람은 ‘판단’을 맡아야 합니다
AI를 개발에 활용할 때 저는 하나의 기준을 세워두면 훨씬 편하다고 생각합니다.
“이 일에서 가장 중요한 것이 반복 작업인가, 판단인가?”
반복적인 작업이라면 AI에게 적극적으로 맡겨볼 수 있습니다.
기본 코드 작성, 코드 형식 변환, 테스트 코드 초안, 문서 작성, 오류 원인 후보 정리처럼 이미 개발자가 방향을 알고 있고 일정한 규칙에 따라 처리할 수 있는 작업이 대표적입니다.
예를 들어 프로젝트에서 이미 사용하고 있는 API 구조가 있고 비슷한 API를 하나 더 만들어야 한다면, 처음부터 모든 코드를 직접 작성하기보다 기존 구조를 AI에게 보여주고 같은 패턴으로 기본 코드를 작성하도록 할 수 있습니다.
이때 AI는 개발자를 대신해 중요한 결정을 내리는 것이 아닙니다.
이미 사람이 결정한 방향을 빠르게 실행해 주는 역할에 가깝습니다.
반대로 잘못된 선택의 영향이 크거나 여러 조건을 함께 고려해야 하는 문제라면 개발자가 더 깊게 관여해야 합니다.
문제 정의, 아키텍처 설계, 데이터 모델링, 보안, 핵심 비즈니스 로직, 배포와 운영에 영향을 주는 결정 등이 대표적입니다.
예를 들어 AI에게 데이터베이스 구조를 설계해 달라고 요청하면 그럴듯한 구조를 빠르게 만들어 줄 수 있습니다.
하지만 실제 서비스에서는 단순히 현재 기능이 동작하는지만 보면 안 됩니다.
앞으로 데이터가 얼마나 늘어날지, 새로운 기능이 추가되면 구조를 변경하기 쉬운지, 개인정보는 어떻게 관리할지, 성능에 문제가 생길 가능성은 없는지까지 함께 생각해야 합니다.
이런 판단에는 현재 프로젝트의 상황과 앞으로의 변화까지 고려하는 시각이 필요합니다.
물론 그렇다고 이런 중요한 영역에서 AI를 사용하면 안 된다는 뜻은 아닙니다.
오히려 적극적으로 활용할 수 있습니다.
AI에게 여러 아키텍처 후보를 만들어 달라고 할 수도 있고, 각각의 장단점을 비교하게 할 수도 있습니다. 내가 생각한 설계에서 놓친 위험이 없는지 반대 입장에서 검토하게 만들 수도 있습니다.
다만 AI의 제안을 참고하는 것과 AI에게 결정을 맡기는 것은 구분할 필요가 있습니다.
AI는 선택지를 넓혀주고 반복 작업을 줄여주는 훌륭한 도구가 될 수 있지만, 그중 무엇을 실제 프로젝트에 적용할 것인지 결정하는 것은 결국 개발자의 역할입니다.
그래서 AI 시대의 개발자는 모든 코드를 직접 작성하는 사람에서 조금씩 AI가 수행할 작업을 정하고, 결과를 검증하고, 중요한 순간에 최종 판단을 내리는 사람으로 역할이 변화할 수도 있습니다.
결국 가장 좋은 관계는 AI가 사람의 판단까지 대신하는 것이 아니라, 사람이 더 중요한 판단에 집중할 수 있도록 AI가 작업을 대신해 주는 것이라고 생각합니다.
AI 시대에 개발자에게 더 중요해지는 능력
AI가 코드를 점점 더 잘 작성한다면 개발자는 코딩을 공부할 필요가 없어지는 것일까요?
저는 오히려 반대에 가깝다고 생각합니다.
AI가 만든 결과가 좋은지 판단하려면 결국 기본적인 개발 지식이 필요하기 때문입니다.
데이터베이스를 이해하지 못하면 AI가 만든 쿼리가 효율적인지 판단하기 어렵습니다.
네트워크를 이해하지 못하면 API 통신에서 발생한 문제를 찾기 어렵습니다.
보안을 이해하지 못하면 AI가 작성한 인증 코드에 위험한 부분이 있는지 발견하기 어렵습니다.
자료구조와 프로그램의 흐름을 이해하지 못하면 코드가 왜 느린지도 판단하기 어렵습니다.
AI 때문에 개발 지식이 필요 없어지는 것이 아니라 개발 지식을 사용하는 방식이 달라지는 것에 더 가깝습니다.
직접 모든 코드를 작성하는 데 사용하는 시간은 줄어들 수 있습니다.
대신 문제를 정의하고, AI에게 작업을 맡기고, 결과를 검토하고, 잘못된 부분을 찾아내고,
전체 시스템이 올바른 방향으로 가고 있는지 판단하는 데 더 많은 지식을 사용하게 될 수 있습니다.
결국 앞으로 중요한 개발자는 AI 없이 모든 코드를 가장 빨리 작성하는 사람도, AI에게 모든 코드를 맡기는 사람도 아닐 것입니다.
무엇을 AI에게 맡겨야 하는지 알고, 무엇은 자신이 직접 판단해야 하는지 구분할 수 있는 개발자.
저는 이것이 AI 시대에 개발자가 가져야 할 중요한 능력 중 하나라고 생각합니다.
AI에게 맡길지 고민될 때는 이렇게 판단해 보세요

실제로 개발하다 보면 모든 작업을 명확하게 구분하기는 어렵습니다.
어떤 코드는 AI에게 맡겨도 될 것 같고, 어떤 코드는 직접 작성해야 할 것 같지만 애매한 경우도 많습니다.
그럴 때 저는 “AI가 틀렸을 때 내가 바로 알아챌 수 있는가?”를 하나의 기준으로 생각해 볼 수 있다고 봅니다.
예를 들어 이미 구조를 이해하고 있는 프로젝트에서 간단한 DTO를 만드는 작업이라면 AI에게 맡기기 좋습니다.
AI가 필드를 하나 잘못 만들더라도 개발자가 코드를 보고 비교적 빠르게 발견할 수 있기 때문입니다.
테스트 데이터 생성이나 반복적인 변환 코드도 비슷합니다.
반면 처음 접하는 기술을 사용해서 중요한 인증 시스템 전체를 AI에게 만들어 달라고 하는 것은 조금 다릅니다.
AI가 잘못된 코드를 작성해도 개발자 자신이 무엇이 잘못되었는지 판단하기 어려울 수 있기 때문입니다.
이 차이는 생각보다 중요합니다.
AI를 사용할 때 가장 위험한 순간은 AI가 틀리는 순간만이 아닙니다.
AI가 틀렸는데도 사람이 그것을 알아차리지 못하는 순간이 더 위험할 수 있습니다.
그래서 저는 개발 업무를 AI에게 맡기기 전에 다음과 같은 질문을 해보는 것이 좋다고 생각합니다.
이 작업의 결과가 틀렸을 때 영향이 큰가?
AI가 만든 결과를 내가 검증할 수 있는가?
문제가 생겼을 때 원인을 직접 추적할 수 있는가?
되돌리기 어려운 작업인가?
여기서 위험이 낮고 검증하기 쉬운 작업이라면 AI에게 적극적으로 맡겨볼 수 있습니다.
반대로 결과의 영향이 크고 내가 검증하기 어려운 작업이라면 AI는 실행자보다 조언자로 사용하는 편이 좋습니다.
예를 들어 AI에게 데이터베이스 구조를 바로 결정하게 하는 대신 여러 설계안을 만들어 달라고 할 수 있습니다.
AI에게 운영 서버의 코드를 마음대로 수정하게 하는 대신 수정안을 먼저 제시하게 할 수도 있습니다.
AI가 만든 결과를 사람이 검토하고 최종적으로 적용하는 것입니다.
결국 AI 활용 능력은 얼마나 많은 코드를 AI에게 작성시키느냐로 결정되는 것이 아닐지도 모릅니다.
오히려 직접 해야 하는 일, AI에게 맡겨도 되는 일, AI에게 도움만 받아야 하는 일을 구분하는 능력이 더 중요해질 수 있습니다.
AI가 발전할수록 개발자가 직접 작성하는 코드의 양은 줄어들 수도 있습니다.
하지만 그만큼 어떤 코드가 필요한지 결정하고, 만들어진 코드가 올바른지 판단하고, 그 결과에 책임지는 역할은 더욱 중요해질 것입니다.