News Feed

AI 코딩 결과를 개선하는 7가지 방법

컨텐츠 정보

  • 조회 529

본문

IT 책임자는 엔지니어를 늘리기보다 AI 사용을 확대하는 편을 선호하며 현직 개발자가 생산성을 “10배” 높이기를 기대한다. 그러나 AI 코딩 어시스턴트를 사용해 생산성을 높이기 위해서는 단순한 자동화 이상의 접근이 필요하다.

우선 AI 코딩 어시스턴트에는 강점과 약점이 명확하다. AI는 비결정적(non-deterministic)이다. 즉, 예기치 못한 방식으로 움직이기 쉽다. 예를 들어 이유 없이 코드를 삭제하거나 논리적 버그를 유발해 골칫거리가 되기도 한다.

이런 한계는 코딩 어시스턴트의 기반인 대규모 언어 모델(LLM) 자체에서 일부 비롯된다. 코드 삭제, 보안 틈새와 같은 그 외의 오류는 AI가 사용되는 방식에 따라 발생할 수 있다. 또한 AI 에이전트가 재귀적 루프나 무한 테스트 사이클에 빠져 생산성을 크게 저해하는 경우도 있다.

AI가 보조하는 개발은 아직 대부분이 미지의 영역으로, 개발자와 IT 책임자도 이제 막 관련 기술을 단련하기 시작했다. 그렇다면 AI 코딩 어시스턴트를 최대한 활용하려면 어떻게 해야 할까?

많은 전문가가 AI와의 협력에서 얻는 효과를 높이고 코드의 품질을 개선하기 위해 새로운 기술과 전략을 조합해서 사용할 것을 제안한다. AI와의 성공적인 협업을 위해 고려해야 할 팁은 다음과 같다.

프롬프팅 기술 개선

소나(Sonar)의 최고 성장 책임자인 해리 왕은 “AI 코딩 어시스턴트를 효과적으로 활용하기 위한 첫 단계는 코드베이스의 도메인별 복잡성에 대처하는 명확하고 잘 정의된 프롬프트”라고 말했다.

개발자 생산성 기업 DX는 보고서 “AI 보조 엔지니어링 가이드: AI 기반 개발을 10배 향상시키는 방법(Guide to AI Assisted Engineering: 10x Your AI-Driven Development)”에서 결과를 대폭 개선할 수 있는 다음과 같은 다양한 프롬프트 기법을 소개했다.

  • 메타 프롬프팅(Meta-prompting) : 프롬프트 내에 지시를 포함해서 모델이 주어진 작업을 더 잘 수행하도록 돕는다.
  • 프롬프트 체이닝(Prompt-chaining) : 여러 프롬프트가 체인으로 연결된 워크플로우를 생성한다. 사양 작성 또는 계획에 유용하다.
  • 원샷 프롬프팅(One-Shot prompting) : 예를 들어 코드 구조와 같은 출력 레퍼런스를 프롬프트에 포함한다.
  • 시스템 프롬프트(System prompt) : 프로젝트별 조건을 반영하도록 기반 시스템 프롬프트를 업데이트한다.

잘못된 프롬프팅이 보안 문제를 초래할 수 있다는 면에서 프롬프팅은 연마할 가치가 있는 기술이다. 백슬래시 시큐리티(Backslash Security)의 2025년 연구에 따르면 “부실한” 프롬프트 사용 시 모든 주요 LLM이 테스트된 10가지 CWE(common weakness enumerations) 중 최소 4개에 대해 취약한 코드를 생성한 것으로 나타났다.

항상 사람의 감시 필요

블루옵티마(BlueOptima)가 2024년 기업 소프트웨어 개발자 21만 8,354명이 제출한 8억 8,000만 건의 커밋을 분석해 발표한 보고서 “생성형 AI가 소프트웨어 개발자 성과에 미치는 영향(The Impact of Generative AI on Software Developer Performance)”에 따르면 생성형 AI를 “보통” 수준으로 사용하는 개발자의 성과가 가장 높은 것으로 나타났다.

이는 AI의 도움과 인간의 전문성 사이에서 최적의 균형을 이룰 때 최선의 결과를 얻을 수 있음을 시사한다. 실무 관점에서 보면 코드 작성과 검증은 AI에 위탁하고, 프로젝트 설계와 최종 승인은 인간이 담당하는 형태가 된다.

이렇게 하면 워크플로우의 양 끝단에서 모두 인간의 개입이 이뤄진다. 소나의 왕은 “전문적인 소프트웨어 개발은 ‘인간이 정의하고 AI가 개발하고 AI가 검증하고 인간이 승인’하는 방식으로 차차 전환될 것”이라고 말했다.

당면한 작업에 적합한 LLM 사용하기

적절한 LLM을 선택하기 위해서는 정확성, 속도, 비용 사이에서 절충이 필요하다. 복잡한 작업에 저가형 툴은 사용하면 저품질의 결과를 받게 되고, 반대로 간단한 상용구 코드 생성에 고성능 모델을 사용하면 상당한 리소스가 낭비된다.

현재 LLM 스탯(LLM Stats)은 휴먼이밸(HumanEval) 벤치마크를 인용, 앤트로픽의 클로드 3.5 소네트를 코딩 영역에서 1위로 분류하고 있다. 이와 별개의 연구인 ‘SWE-Lancer: 프론티어 LLM은 실제 프리랜서 소프트웨어 엔지니어링에서 100만 달러를 벌 수 있는가?(SWE-Lancer: Can Frontier LLMs Earn $1 Million from Real-World Freelance Software Engineering?)’에서도 클로드가 실제 프로그래밍 작업을 완수하는 데 있어 가장 뛰어난 것으로 나타났다.

클로드는 보안에서도 순위가 높다. 앞서 언급한 백슬래시 시큐리티 연구에서 클로드 3.7 소네트는 오픈AI GPT-4o와 구글 제미나이보다 더 안전한 코드를 생성하는 것으로 나타났다.

AI 프로그래머 부문에서는 클로드가 선두지만 LLM 스탯의 지식 부문에서는 오픈AI의 o3가, 추론에서는 딥시크(DeepSeek)의 R1이 선두에 있다. 그 외에 제미나이 1.5 프로는 가장 높은 토큰 윈도우를 제공하며, 람다(Lambda)는 비용 대비 효과가 가장 높다.

레이어드 시스템(Layered System)의 API 전략가인 케빈 스위버는 “이런 툴을 가장 효과적으로 활용하려면 각각의 한계와 역량을 파악하는 것이 중요하다”라고 말했다. 스위버는 기술적 역량, 워크플로우 통합, 리소스 활용, 리팩터링 작업, 디버깅 능력과 같은 다양한 측면에 걸쳐 AI 코딩 에이전트를 검토하는 매트릭스를 개발했다.

반복적인 프로그램과 테스트

많은 전문가가 AI를 활용해서 한 조각씩 작업할 것을 권장한다. 허니컴(Honeycomb)의 공동 창업자이자 CTO인 채리티 메이저스는 “큰 작업보다는 작은 코드 변경을 요청하라. 전체 웹사이트나 전체 API 또는 전체 기능을 한 번에 생성하려고 하면 안 된다”라고 말했다.

예를 들어 작업 중인 코드 파일의 크기가 3,000줄이라면 여러 조각으로 나누는 것이 좋을 수 있다. 문제는 AI를 사용한 리팩터링이 까다롭다는 것이다. AI는 우발적으로 코드를 삭제하거나 사전에 경고 없이 옮기곤 하기 때문이다. 스와이버는 “AI는 작은 부분에 최적화되며 큰 그림을 염두에 두고 작업하지 않는다”라고 지적했다.

따라서 작게 시작하는 것뿐만 아니라 각 반복 작업에서 변경 사항을 테스트하는 것이 좋다. 메이저스는 하나의 엔드포인트, 구성요소 또는 작업부터 시작한 다음 테스트를 생성하고 테스트를 실행하고 추가 코드를 생성하는 식으로 이어갈 것을 권장했다.

기록 남기기

특정 AI 코딩 문제는 깃과 비슷한 코드 변경을 제안하는 깃허브 코파일럿(GitHub Copilot), 커서(Cursor) 또는 컨티뉴(Continue)와 같은 툴을 사용해 챗봇 인터페이스가 아닌 코드 편집기에서 해결할 수 있다. 일부 개발자는 직접 API 호출을 통해 더 큰 효과를 보기도 한다.

또 다른 방법은 처음부터 계획을 수립해 에이전트에 프로세스를 안내하는 것이다. 스위버는 AI 어시스턴트를 위해 마크다운 파일로 계획을 작성해서 프로젝트 목표를 명시하고 시간 경과에 따른 진행 상황을 세부적으로 기술할 것을 권장했다. 또한 언제든 이전 버전으로 되돌릴 수 있도록 원본 파일을 백업하는 것도 좋다.

스위버는 “자신과 에이전트가 나중에 되짚을 수 있도록 기록(breadcrumb)을 남겨둬야 한다”라고 말했다. 또한 “이 줄은 건드리지 말 것”과 같은 명확한 표현을 사용한 인라인 주석도 도움이 될 수 있다. 스위버는 “LLM이 일을 망치지 않도록 하기 위한 목적으로 주석을 다는 것은 재미있는 새로운 풍조”라고 덧붙였다.

테스트, 테스트, 테스트

AI가 생성한 코드를 프로덕션에 사용하기 위해서는 철저한 검토가 필요하다. 허니컴의 메이저스는 “코드를 이해할 수 없다면 배포해서는 안 된다. AI가 생성한 코드가 무슨 일을 하는지 먼저 정확히 파악해야 한다”라고 말했다.

AI 개발에서 얻는 막대한 생산성을 이유로 소프트웨어 엔지니어링의 기본을 간과해서는 안 된다. 보안 관점에서 테스트는 매우 중요하다. 소나의 왕은 “AI가 코드를 생산하더라도 그 코드의 품질과 보안에 대한 책임은 여전히 사람에게 있다”라고 설명했다.

AI로 인해 테스트가 더 많이 필요해진다는 분석도 있다. 그래파이트(Graphite)의 CEO이자 공동 창업자인 메릴 루츠키는 “AI가 생성한 코드는 정확성, 성능, 보안을 확인하기 위해 더욱 엄격한 검토와 테스트가 필요하다”라고 말했다.

한편 루츠키는 AI 시대에 전통적인 개발 주기의 효용성은 점점 낮아지고 있다면서 “많은 기업이 코드 검토, 테스트, 배포로 구성된 ‘외부 루프’ 프로세스가 AI로 생성되는 코드 변경의 급증을 따라잡을 수 없음을 깨닫고 있다”라고 말했다.

루츠키는 AI로 인해 발생하는 문제를 AI를 사용해 해결하는 부분에 뚜렷한 기회가 있다고 본다. 루츠키는 AI 에이전트가 데브옵스 프로세스를 능률화하고 검토 및 테스트 프로세스를 자율적으로 진행하면서 필요에 따라 사람이 개입하도록 함으로써 CI/CD 속도를 저하시킬 수 있는 수작업을 줄일 수 있다고 말했다.

데이터 액세스에 초점

또 다른 방법은 AI에 적절한 컨텍스트를 제공하는 것이다. 코크로치 랩스(Cockroach Labs)의 CEO 스펜서 킴볼은 “AI는 충분한 정보가 있으면 대체로 합리적인 판단을 내린다”라고 말했다. 현재 모델에는 컨텍스트 윈도우의 크기, 외부 데이터 접근성과 같은 몇 가지 제약이 있지만 개발자가 활용할 수 있는 전략이 있다.

LLM에 내부 데이터, 문서 또는 전체 프로젝트를 공급하면 유용한 컨텍스트를 형성할 수 있다. 이를 공개적으로 사용할 수 있도록 하면 프로젝트의 난해한 부분을 공개 LLM이 학습하는 데 도움이 된다. 더 나아가 AI가 다른 엔지니어에게 해당 소프트웨어를 추천하도록 유도할 수도 있다.

흥미롭게도 킴볼은 이 같은 이유로 오픈소스를 중심으로 한 신생 기업이 AI 시대에 유리한 위치에 있다고 본다. 오픈소스는 소스코드와 설계 문서가 공개돼 있어 LLM이 수집할 수 있기 때문이다. 킴볼은 “AI가 추천하는 확실한 선택지가 돼야 한다. 그렇게 해야 전 세계 주요 설계자들에게 어필할 수 있기 때문”이라고 말했다.

적어도 이는 굳건한 오픈소스 신념을 가진 조직이 개발한 서드파티 툴을 사용하는 것이 좋다는 주장의 견고한 근거는 될 수 있다.

연결성 부분에서도 이미 큰 진전이 이뤄지고 있다. 예를 들어 오픈AI의 에이전트 SDK와 앤트로픽의 모델 컨텍스트 프로토콜(Model Context Protocol, MCP)은 AI를 툴, 데이터 소스, 다른 AI와 연결하는 부분에서 큰 성과를 냈다. 킴볼은 이와 같은 종류의 자동화된 지능이 막대한 생산성 향상으로 이어질 것으로 전망했다.

AI 코딩 어시스턴트의 미래는?

스위버는 “모든 사람이 이런 툴을 경험해야 하는 성숙 지점에 도달했다. 잘 작동하는 분야에서는 큰 시간 절약 효과를 얻을 수 있다”라고 말했다.

AI 코딩 어시스턴트는 더 이상 단순한 실험이 아니라 기업 개발 프로세스의 당당한 표준으로 자리잡고 있다. 가트너는 2028년까지 기업 소프트웨어 엔지니어의 75%가 AI 코딩 어시스턴트를 사용하게 될 것으로 예측했다.

킴볼은 미래에는 누구나 유용한 것을 만들 수 있는, 더 작은 규모의 맞춤형 시장이 형성될 것이라면서 “AI를 활용해서 놀라운 신제품과 서비스가 탄생할 것”이라고 말했다.

중소기업 역시 상당한 혜택을 얻을 전망이다. 킴볼은 15명이 일하는 기업이 연간 1억 달러의 매출을 올리는 것도 더 이상 불가능한 일이 아니라고 말했다. 와이 콤비네이터(Y-Combinator)의 신규 기업 중 95%가 AI 기반임을 고려하면 확실히 그 방향으로 나아가고 있다.

현재로서는, 특히 최적의 성능과 비용 절감 또는 품질이 요구되는 상황에서 코딩에 성공적으로 AI를 사용하기 위해서는 여러 툴을 살펴보고 생산적인 워크플로우를 구축하기 위한 전문성이 필요하다. AI에 적절한 컨텍스트를 제공하는 것 역시 결과를 좌우하는 요소다.

AI 코딩 툴에서 최상의 결과를 얻는 방법을 아는 것이 개발자 툴킷의 또 다른 중요한 기술로 빠르게 자리잡고 있다.
dl-itworldkorea@foundryco.com

관련자료

댓글 0
등록된 댓글이 없습니다.
Member Rank