현대 개발자에게 AI 도구는 이제 선택이 아닌 필수가 되어가고 있습니다. 하지만 이런 도구를 ‘어떻게’ 활용할 것인가는 여전히 우리의 선택에 달려 있습니다. GitHub Copilot Agent Mode를 처음 경험한 한 개발자의 이야기를 통해, 우리가 마주한 두 가지 코딩 접근법을 살펴보겠습니다.
인간 주도 개발: 개발자가 AI를 도구로 활용하는 모습 (출처: thoughtbot)
두 가지 코딩 접근법
인간 주도 코딩 (Human-led coding with AI support)
이 방식에서는 개발자가 주도권을 갖습니다. 문제를 이해하고, 설계를 구상하며, 테스트 주도 개발(TDD)을 실천합니다. AI는 개발자가 필요로 할 때, 특정 문법이나 개념 설명을 위해 활용됩니다. 개발자는 언제, 어떻게 AI 도구를 활용할지 결정합니다.
AI 주도 코딩 (AI-led coding with Human support)
이 접근법에서는 AI가 운전석에 앉습니다. 개발자는 프롬프트를 제공하고, AI는 계획부터 구현까지 코드를 작성합니다. 개발자의 역할은 AI가 작성한 코드를 검토하고 필요한 부분을 수정하는 것으로 축소됩니다.
AI 주도 개발: AI가 주도권을 가지고 개발자가 지원하는 모습 (출처: thoughtbot)
선택의 중요성
왜 이 선택이 중요할까요? 소셜 미디어 기업들이 사용자의 스크린 타임을 늘리는 데 집중하듯, AI 기업들도 자사의 이익을 우선시합니다. 개발자로서 우리는 이런 도구들을 어떻게 활용할지 명확한 경계와 원칙을 세워야 합니다.
비교 분석: 무엇을 선택해야 할까?
1. 속도 측면
AI 주도 코딩은 겉보기에 빠르지만, 코드 검토와 이해에 드는 시간을 고려하면 실제 효율성은 의문입니다. 계획 단계를 피할 수는 없고, 단지 나중으로 미룰 뿐입니다.
2. 지식과 성장
인간 주도 코딩은 창의적 사고와 비판적 분석을 요구합니다. 다양한 접근법을 고려하고 평가하는 과정에서 개발자는 더 넓은 지식 기반을 구축합니다. 반면 AI 주도 방식은 제안된 해결책에 편향될 위험이 있습니다.
3. 코드 품질
소프트웨어 개발의 가장 큰 도전은 코드 작성 자체가 아니라, 변화에 탄력적인 코드를 작성하는 것입니다. AI 주도 코딩은 세 가지 이유로 코드 품질을 위협합니다:
- 제한된 시야: AI는 주어진 프롬프트에 집중하고, 더 큰 그림을 놓치기 쉽습니다.
- 리팩토링 부족: 인간은 코드 냄새를 감지하고 점진적인 개선을 진행하지만, AI는 명시적으로 지시하지 않으면 이런 개선을 놓칩니다.
- 기술 부채 증가: 속도와 기술 부채는 밀접한 관계가 있으며, AI 주도 방식은 빠른 속도를 지향합니다.
4. 개발자의 만족
코딩 과정 자체에서 느끼는 즐거움은 단순한 감정 이상의 가치가 있습니다. 즐거움은 창의성과 생산성에 직접적인 영향을 미칩니다. 인간 주도 개발이 더 즐겁다면, 그것은 무시할 수 없는 장점입니다.
결론: 선택은 당신의 것
AI 주도와 인간 주도 코딩 모두 유효한 접근법이지만, 개발자로서 우리는 선택해야 합니다. 현재로서는 정량적 지표보다 경험에 의존할 수밖에 없지만, 고품질 소프트웨어 구축과 장기적인 유지보수를 위해서는 인간 주도 개발이 더 탄탄한 기반을 제공합니다.
우리는 AI 기업의 의제와 다를 수 있는 우리만의 경계와 원칙을 세워야 합니다. 필자는 인간 주도 개발에 자부심을 느끼며, 시간이 지나도 견고한 고품질 소프트웨어를 구축하는 방식으로 선택했습니다.
여러분은 어떤 선택을 하시겠습니까?
Comments