
【AI 에이전트 시대의 팀 개발 ⑧】 AI 시대의 베테랑은 코드를 쓰는 사람에서 구조를 만드는 사람으로
요약
AI 에이전트가 코드를 작성하는 시대에 엔지니어의 역할이 코드 작성에서 시스템 구조 설계로 변화하고 있음을 설명합니다. 베테랑은 AI가 효율적으로 작동할 수 있도록 명확한 설계, 규칙, 템플릿을 구축하는 역할을 수행해야 합니다.
핵심 포인트
- 베테랑의 역할은 코드 작성에서 AI가 활용 가능한 구조 설계로 전환됨
- AI가 헤매지 않도록 명확한 디렉터리 구조와 책임 경계 설정 필요
- AI 생성 코드가 팀의 설계 원칙과 유지보수성에 부합하는지 검토하는 리뷰 역량 중요
- AI 시대에는 AI에게 읽힐 프로젝트 규칙과 견본(Template) 정비가 필수적임
AI 에이전트가 코드를 작성할 수 있게 되면서, 엔지니어의 역할은 변하고 있습니다.
특히, 베테랑 엔지니어의 역할은 크게 변할 것이라고 생각합니다.
예전에는 베테랑이 좋은 코드를 작성하고, 경험이 적은 멤버가 이를 참고하여 수평 전개하는 방식이 흔했습니다.
하지만 지금은 AI가 상당한 속도로 코드를 작성해 줍니다.
경험이 적은 사람이라도 AI를 사용하면 동작하는 코드를 만들 수 있는 상황이 늘어나고 있습니다.
그렇다면 베테랑의 역할은 작아지는 것일까요?
저는 오히려 반대라고 생각합니다.
베테랑의 역할은 코드 작성 그 자체에서, AI와 인간이 안전하게 개발할 수 있는 구조(仕組み)를 만드는 것으로 옮겨가지 않을까요.
기존의 개발에서는 베테랑에게 다음과 같은 역할이 있었습니다.
- 좋은 설계(Design)를 구상함
- 대표 구현(Reference Implementation)을 작성함
- 템플릿(Template)을 만듦
- 경험이 적은 멤버를 지도함
- 코드 리뷰(Code Review)를 통해 문제를 지적함
- 장애나 어려운 버그를 조사함
특히 대표 구현을 만드는 역할이 컸다고 생각합니다.
예를 들어, 첫 번째 화면, 첫 번째 API, 첫 번째 배치(Batch)를 베테랑이 만듭니다.
그것을 다른 멤버가 참고하여 동일한 패턴으로 구현합니다.
이를 통해 팀 전체의 코드가 어느 정도 통일되어 있었습니다.
지금은 AI가 상당한 범위의 코드를 작성할 수 있습니다.
경험이 적은 사람이라도 AI에게 상담하며 구현할 수 있습니다.
에러가 발생해도 AI에게 로그를 보여주면 원인을 추측해 줍니다.
테스트 코드(Test Code)나 문서(Document)도 만들어 줍니다.
이는 매우 큰 변화입니다.
하지만 AI가 작성할 수 있는 것은 주로 '그 자리에서 동작하는 코드'입니다.
물론 AI도 설계를 제안할 수 있습니다.
하지만 프로젝트 전체의 역사, 팀의 사정, 과거의 판단 이유, 유지보수성(Maintainability), 릴리스 운영까지 포함하여 항상 최적으로 판단할 수 있는 것은 아닙니다.
따라서 팀 개발에서는 인간 측의 판단 기준이 여전히 필요합니다.
AI 시대의 베테랑에게 요구되는 역할 중 하나는 AI가 헤매지 않는 구조를 만드는 것이라고 생각합니다.
구체적으로는 다음과 같습니다.
- 대표 구현을 만듦
- 디렉터리 구성(Directory Structure)을 정리함
- 책임의 경계(Boundary of Responsibility)를 명확히 함
- 견본(Template/雛形)을 준비함
- 명명 규칙(Naming Convention)을 정함
- 테스트 방침을 정함
- CI에서 걸러낼 규칙을 만듦
- AI에게 읽힐 프로젝트 규칙을 정비함
AI는 모호한 코드베이스(Codebase)에서는 헤맵니다.
비슷한 구현이 여러 개 있고 각각의 방침이 다르면, 어떤 것을 참고해야 할지 알 수 없습니다.
반대로 대표 구현이나 견본이 제대로 갖춰져 있다면, AI는 그것을 바탕으로 구현하기 쉬워집니다.
즉, 베테랑은 AI에 대해서도 '좋은 본보기'를 만들 필요가 있습니다.
AI 시대의 리뷰에서는 세세한 작성 방식만 보는 것으로는 불충분합니다.
오히려 다음과 같은 관점이 중요해집니다.
- AI가 목적 외의 변경을 하고 있지는 않은가
- 사양 변경과 리팩토링(Refactoring)이 섞여 있지는 않은가
- 기존 설계를 파괴하고 있지는 않은가
- 책임의 경계가 변하지 않았는가
- 차분(Diff)이 너무 크지는 않은가
- 테스트가 정말로 의미가 있는가
- 생성된 코드를 인간이 이해할 수 있는가
AI가 작성한 코드는 언뜻 깨끗해 보일 때가 있습니다.
하지만 깨끗해 보이는 것과 팀에서 유지보수할 수 있는 것은 다릅니다.
베테랑은 AI가 만든 코드의 표면적인 완성도가 아니라, 팀의 설계에 부합하는지를 보아야 합니다.
AI 시대에는 신입 교육도 변할 것이라고 생각합니다.
예전에는 템플릿을 모방하여 작성함으로써 조금씩 경험을 쌓을 수 있었습니다.
지금은 AI가 그 템플릿 전개를 상당히 대신해 줍니다.
그렇다면 신입은 무엇을 배워야 할까요?
저는 AI의 출력을 평가하는 능력이 중요해질 것이라고 생각합니다.
- AI의 코드가 기존 설계에 부합하는가
- 불필요한 변경이 섞여 있지 않은가
- 테스트가 의미를 가지고 있는가
- 명명이나 책임이 자연스러운가
- 그 구현을 향후 유지보수할 수 있는가
AI가 코드를 작성해 주기 때문에 오히려 그것을 판단하는 힘이 필요해집니다.
베테랑의 역할은 단순히 정답을 가르쳐 주는 것이 아니라, 판단 기준을 가르쳐 주는 것으로 옮겨갈 것이라고 생각합니다.
AI가 코드를 작성할 수 있게 되면, '베테랑의 가치가 떨어지지 않을까'라고 느끼는 사람도 있을지 모릅니다.
하지만 저는 그렇게 생각하지 않습니다.
오히려 AI에 의해 코드를 작성하는 속도가 올라갈수록 설계와 판단 기준의 중요성은 높아집니다.
빨리 작성할 수 있기 때문에 잘못된 방향으로도 빠르게 나아가 버립니다.
대량의 차분(Diff)을 쉽게 만들 수 있기 때문에 그것을 수용하는 기준이 필요해집니다.
여러 사람이 AI를 사용하기 때문에 통일된 개발 프로세스가 필요해집니다.
이러한 메커니즘을 만드는 것이 경험 있는 엔지니어의 중요한 역할입니다.
요약하자면, AI 시대 베테랑의 역할은 다음과 같이 변할 것이라고 생각합니다.
과거:
- 좋은 코드를 작성한다
- 템플릿을 만든다
...
코드를 작성하는 능력은 앞으로도 중요합니다.
하지만 그 이상으로, AI와 인간이 안전하게 개발할 수 있는 환경을 만드는 능력이 중요해질 것이라고 생각합니다.
AI 에이전트 (AI Agent) 시대의 팀 개발에서는, AI에게 똑같은 코드를 내놓게 하는 것보다, AI가 다소 흔들리더라도 파탄 나지 않는 개발 구조를 만드는 것이 중요합니다.
스테어링 파일 (Steering file)로 방향을 잡는다.
대표 구현 (Representative implementation)으로 구체적인 예를 보여준다.
템플릿 (Template)으로 형식을 맞춘다.
lint, test, CI로 일탈을 걸러낸다.
PR (Pull Request)을 인간이 검토할 수 있는 단위로 나눈다.
이러한 메커니즘을 설계하는 것이 AI 시대 베테랑 엔지니어의 큰 역할이 될 것이라고 생각합니다.
AI가 코드를 작성하는 시대가 되어도, 인간의 판단이 불필요해지는 것은 아닙니다.
오히려 팀으로서 무엇을 좋은 코드로 정의할 것인지, 어떤 변경을 수용할 것인지를 결정하는 능력이 이전보다 더욱 중요해질 것이라고 생각합니다.
이후 연재 예정 목록입니다.
- 제1회: 같은 AI를 사용하고 있는데, 왜 코드가 제각각인가
- 제2회: AI가 작성한 '작동하는 코드'가 팀 개발에서는 위험한 이유
- 제3회: AI에게 맡겼더니 컨플릭트 (Conflict) 투성이가 된 이야기
- 제4회: AI에게 '이 파일 외에는 건드리지 마'라고 말하는 것은 옳은가
- 제5회: AI 시대의 PR은 왜 무거워지기 쉬운가
- 제6회: AI에게는 세세하게 지시하지 않는 편이 좋다,는 팀 개발에서도 통하는가
- 제7회: 스테어링 파일만으로는 부족하다. AI의 흔들림을 메커니즘으로 흡수한다
- 제8회: AI 시대의 베테랑은 코드를 쓰는 사람에서 메커니즘을 만드는 사람으로
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기