AI 코딩 생태계 용어의 복잡성
원본 영상 0:23AI 코딩 생태계에는 '하네스'나 '컨텍스트 엔지니어링'과 같이 의미를 파악하기 어려운 수많은 전문 용어들이 존재한다. 이러한 용어들은 불과 몇 년 전까지만 해도 생소했기 때문에 개발자들은 이 모든 것을 알아야 한다는 부담을 느끼기 쉽다. 이는 빠르게 변화하는 기술 환경 속에서 새로운 개념을 이해하고 따라가야 하는 개발자들의 현실적인 어려움을 보여준다.
테오도르 르네 칼슨, 복잡한 AI 코딩 생태계 속에서 모델·하네스·에이전트 개념을 명확히 하고, 개발자가 통제력을 유지하는 방안을 제시하다.
이 채널 새 영상도 이렇게 정리해 드릴까요?
AI 코딩 생태계에는 '하네스'나 '컨텍스트 엔지니어링'과 같이 의미를 파악하기 어려운 수많은 전문 용어들이 존재한다. 이러한 용어들은 불과 몇 년 전까지만 해도 생소했기 때문에 개발자들은 이 모든 것을 알아야 한다는 부담을 느끼기 쉽다. 이는 빠르게 변화하는 기술 환경 속에서 새로운 개념을 이해하고 따라가야 하는 개발자들의 현실적인 어려움을 보여준다.
강연자는 AI 코딩에 대한 막연한 두려움과 시작의 어려움을 토로하며, 복잡하게 느껴지지만 동시에 시작하지 않으면 뒤처질 것 같은 불안감을 언급했다. 많은 개발자들이 이 새로운 흐름에서 소외될까 봐 느끼는 두려움은 일반적인 현상으로, 이는 AI 코딩의 진입 장벽 중 하나로 작용하고 있다.
테오도르 르네 칼슨은 AI 코딩 분야에서 그 누구도 뒤처지지 않았다고 강조했다. 그는 링크드인이나 새로운 상사가 개발자들이 뒤처졌다고 주장하더라도, 이는 항상 최신 기술을 따라잡아야 한다는 동일한 주장의 반복일 뿐이라고 설명하며 개발자들을 안심시켰다. 이러한 메시지는 AI 기술의 급변 속에서 불안감을 느끼는 개발자들에게 큰 위로가 된다.
AI 코딩 도구는 크게 세 가지 중요한 요소로 구성된다. 첫째는 '모델'로, 전체 기능의 95%를 차지할 정도로 가장 중요한 두뇌 역할을 한다. 주변에 어떤 기능을 추가하더라도 모델이 제대로 작동하지 않으면 소용이 없기 때문이다. 둘째는 '하네스'이며, 셋째는 '에이전트'이다. 이 세 가지 요소의 이해는 AI 코딩 도구를 효과적으로 활용하기 위한 필수 전제다.
강연자는 '하네스'가 모델이 실제 행동을 수행할 수 있도록 돕는 핵심 도구임을 강조했다. 모델은 단순히 텍스트를 입력받아 텍스트를 출력할 뿐이지만, 하네스는 이 모델이 특정 행동을 취하도록 만들어준다. 그는 하네스를 클라우드 코드와 유사한 개념으로 설명하며, 모델의 지시를 실제 작업으로 연결하는 매개체 역할을 한다고 밝혔다.
대부분의 사람들이 에이전트에 대해 이야기할 때, 이는 모델과 하네스를 포괄하는 개념이다. 에이전트의 핵심 구성 요소는 '시스템 프롬프트'와 '도구'다. 시스템 프롬프트는 모델에 처음 전달되는 텍스트로, 모델의 역할과 정체성을 정의하는 역할을 한다. 예를 들어, '너는 세상 최고의 개발자'와 같이 모델의 성격을 설정하는 데 사용되며, 사용자가 구성할 수 있다.
에이전트의 또 다른 핵심 구성 요소는 '도구'다. 강연자는 AI 보조 코딩 도구를 처음 사용했을 때 도구의 개념을 이해하기 어려웠다고 언급했다. 도구 세트는 에이전트가 파일을 읽고, 터미널 명령을 실행하며, 웹에서 데이터를 가져올 수 있도록 하는 기능을 제공한다. 이는 에이전트가 단순한 텍스트 처리 능력을 넘어 실제 개발 환경에서 다양한 작업을 수행할 수 있게 하는 중요한 요소다.
강연자는 OpenAI JavaScript SDK를 예시로 들어 도구를 선언하는 구체적인 방법을 설명했다. 그는 파일을 읽을 수 있는 함수를 도구로 선언하며, 이에 대한 설명과 매개변수 종류를 지정할 수 있다고 밝혔다. 하지만 실제 함수의 구현 세부 사항은 명시되어 있지 않다는 점을 지적하며, 도구의 선언과 실제 작동 방식 간의 관계를 시사했다. 이러한 방식은 에이전트가 어떤 작업을 수행할 수 있는지 정의하고, 그 작업을 모델이 이해할 수 있는 형태로 제공하는 데 사용된다.
AI와 협업하는 방식의 피드백 루프가 변화하고 있으며, 이는 에이전트에게 더 많은 제어권을 부여하는 방향으로 진행되고 있다. 많은 개발자들이 초기에는 VS Code에서 클라우드 코드나 에이전트를 ChatGPT처럼 사용하며 질문하고 코드를 복사-붙여넣기하는 방식에 머물렀다. 그러나 이것은 에이전트의 잠재력을 완전히 활용하지 못하는 방식이다. 점차 사용자가 루프의 큰 부분을 차지하기보다는 에이전트에게 통제권을 넘겨주는 추세인데, 이는 에이전트의 높은 지능 때문이다. 처음에는 회의적이었던 강연자도 이제는 AI 도구의 자율적인 작업 능력을 무시할 수 없다고 인정했다.
AI 에이전트는 모호한 작업을 부여받아도 자율적으로 목표를 달성할 수 있는 능력을 갖추고 있다. 에이전트는 코드베이스를 탐색하고, 파일을 읽고 그 출력을 다시 해석하여 적절하게 행동할 수 있다. 심지어 테스트를 실행하고 그 결과를 바탕으로 작업을 수정하는 반복적인 과정까지 스스로 수행한다. 사용자는 이러한 루프에 얼마나 개입할지 제어할 수 있으며, 일부는 완전 자동화를 추구하고 다른 일부는 에이전트를 조종하는 방식으로 더 많이 참여하기도 한다.
AI 에이전트 코딩의 핵심 원칙 중 하나는 모든 문제를 '텍스트'로 변환하는 것이다. 모델은 텍스트로 훈련되었고 텍스트를 출력하기 때문에, 어떤 문제든 텍스트 형식으로 변환할 수 있다면 에이전트가 효과적으로 처리할 수 있다. 이는 복잡한 문제를 AI가 이해하고 처리할 수 있는 단순한 형태로 추상화하는 데 중요하다.
강연자는 코드베이스를 이해하기 위해 다이어그램, 특히 종속성 그래프를 원했던 경험을 예시로 들었다. 그는 Excalidraw나 Figma 같은 도구로 직접 다이어그램을 만드는 대신, 에이전트가 이를 수행하기를 바랐다. 이를 위해 다이어그램을 생성할 수 있는 마크업 언어를 활용했고, 결과적으로 코드베이스에서 즉석으로 다이어그램을 생성할 수 있게 되었다. 이 사례는 복잡한 시각 정보를 텍스트 기반의 마크업 언어로 변환하여 에이전트가 처리하도록 하는 '텍스트 작업' 원칙의 실제 적용을 보여준다.
'컨텍스트 엔지니어링'은 새로운 개념처럼 들릴 수 있지만, 사실은 모델에 어떤 텍스트를 입력하는가에 관한 것이다. 강연자는 에이전트를 새로운 동료처럼 대하라고 조언했다. 에이전트는 코드를 작성하고 컴퓨터를 다루는 방법을 알고 있지만, 특정 도메인이나 프로젝트에 대한 세부 지식은 없을 수 있다. 따라서 마치 새로운 동료에게 프로젝트의 배경과 도메인 지식을 브리핑하듯이 필요한 컨텍스트를 명확하고 상세하게 제공해야 한다.
AI 에이전트가 때때로 통제를 벗어나거나 예상치 못한 방향으로 진행될 수 있다. 이때 에이전트를 조종하는 핵심 방법은 '더 많은 컨텍스트 텍스트 관련 자료'를 제공하는 것이다. 이는 에이전트에게 추가적인 지침이나 제약 조건을 제공하여 원하는 방향으로 다시 이끌 수 있음을 의미한다.
'에이전트 MD'(agents.md) 파일은 일반적으로 모델이 자체적으로 알지 못하는 프로젝트별 정보를 담는 데 사용된다. 이 파일에는 코드베이스에 매우 특화된 내용이 포함될 수 있는데, 예를 들어 테스트 실행 전에 PostgreSQL을 부팅해야 한다는 지침이나, 특정 도메인 언어의 용어집 등이 포함될 수 있다. 이는 에이전트가 프로젝트의 고유한 요구사항을 이해하고 정확하게 작업을 수행하도록 돕는 중요한 컨텍스트 역할을 한다.
에이전트 MD 파일에는 TypeScript나 PostgreSQL의 일반적인 작동 방식과 같은 내용은 포함하지 않아야 한다. 강연자는 AI를 매우 똑똑하지만 새로운 환경에 익숙해지는 시간이 필요한 신입사원에 비유했다. 즉, 에이전트가 이미 알고 있거나 쉽게 학습할 수 있는 일반적인 기술 지식보다는, 특정 프로젝트나 도메인에 고유한 정보만 선별적으로 제공해야 한다는 것이다. 이는 불필요한 정보로 에이전트의 컨텍스트를 과부하 시키지 않으면서 효율성을 높이는 방법이다.
스킬은 모델이 아직 파악하지 못한 새로운 라이브러리나 덴마크 세법과 같은 도메인 특화된 내용에 유용할 수 있다. 그러나 스킬은 간결하게 유지하고, 에이전트를 지나치게 많이 조종해야 할 필요가 있을 때만 최소한으로 추가하는 것이 권장된다. 이는 스킬이 과도하게 많아지면 오히려 에이전트의 자율성과 효율성을 저해할 수 있기 때문이다.
AI 모델은 명령줄 사용에 매우 능숙하다는 점을 간과해서는 안 된다. 따라서 풀 리퀘스트를 열기 위해 깃허브 MCP(Microsoft Cloud Protector)와 같은 특정 도구를 사용하는 것보다, 깃허브 CLI(Command Line Interface)와 같은 기본적인 명령줄 도구를 활용하는 것이 모델이 훨씬 더 잘 이해하고 효율적으로 작업할 수 있는 방법일 수 있다. 이는 복잡한 별도의 도구 체인을 구축하기보다는 모델의 기본적인 강점을 활용하는 것이 더 효과적이라는 의미다.
강연자는 클라우드 기반의 클로즈드 코드 환경이 미래가 아니기를 바란다고 강력하게 주장했다. 이러한 환경은 공급업체가 하네스와 모델을 독점하여 개발자들이 생태계의 통제력을 잃게 만들 수 있기 때문이다. 모델이 블랙박스인 것은 받아들일 수 있지만, 하네스는 우리가 통제할 수 있는 부분인 만큼 블랙박스여서는 안 된다는 점을 강조하며, 공급업체 종속을 경계해야 한다고 경고했다. 이는 개발자 생태계의 자율성과 독립성을 지키기 위한 중요한 메시지다.
궁극적으로 오픈소스를 유지하는 것이 에이전트 코딩 생태계 전체에 도움이 될 것이라고 강연자는 주장했다. 그는 AI 코딩 도구들이 개발자의 컴퓨터에서 실행되는 만큼, 개발자가 이들에 대한 통제력을 잃지 않도록 노력해야 한다고 강조했다. 이는 기술의 발전 속에서 개방성과 개발자 주도권을 지키는 것이 장기적으로 건전한 생태계를 조성하는 데 필수적이라는 의미다.
오픈소스를 유지하는 것은 생태계에 도움이 될 것입니다. 이것들은 여러분의 기계에서 실행되는 것들이고, 그 통제력을 잃는 것은 제가 바라지 않는 바입니다.
자막에서 근거가 되는 대목을 찾아 답합니다.
이 채널 새 영상도 이렇게 정리해 드릴까요?
NDC Conferences에 새 영상이 올라오면, 방금 읽으신 것처럼 정리해서 메일로 보내 드릴게요.
이 채널은 지난 7일 동안 새 영상이 없었어요.
숏츠는 빼고 보내 드려요. 메일이 필요 없어지면 언제든 구독을 끄실 수 있어요.