
에이전틱 엔지니어링 (Agentic Engineering): AI 코딩 도구는 당신의 코드로 무엇을 하는가?
요약
에이전틱 코딩 도구 사용 시 발생할 수 있는 보안, 개인정보 보호 및 규제 문제를 다룹니다. 독점 코드 공유의 위험성과 기업 차원의 안전한 AI 도구 승인 필요성을 강조합니다.
핵심 포인트
- 개인용 구독 모델은 독점 코드 학습에 주의가 필요함
- 데이터가 학습에 사용되지 않더라도 보관될 수 있음을 인지해야 함
- 비밀 정보 및 고객 데이터에 대한 명확한 보안 규칙 필수
- 에이전트의 명령어 실행 및 코드 유출 위험에 대한 제한 필요
- AI가 생성한 모든 코드 변경 사항은 반드시 인간의 검토를 거쳐야 함
이 5부작 시리즈의 첫 번째 포스트에서 저는 현재 Angular 개발을 위해 즐겨 사용하는 LLM (Large Language Models)에 대해 작성했습니다. 두 번째 포스트에서는 Codex, Claude 데스크톱 앱, Cursor, Antigravity, VS Code, WebStorm 등 해당 모델들을 둘러싼 앱과 하네스 (harnesses)를 살펴보았습니다. 세 번째 포스트에서는 비용에 집중했습니다: 구독, API 비용, 엔터프라이즈 플랜 (enterprise plans), 토큰 사용량 (token usage), 추론 수준 (reasoning levels), 그리고 비용 제어에 대해 다루었습니다. 원래는 이 모든 내용을 비용 포스트에 압축해서 넣으려 했으나, 한 편의 기사로 담기에는 너무 방대해져서 이제 두 주제 모두 각각 별도의 포스트로 다룹니다. 이 네 번째 파트는 그 모든 것의 이면에 있는, 다소 불편한 질문에 관한 것입니다:
우리가 에이전틱 코딩 도구 (agentic coding tools)를 사용할 때 실제로 무엇을 공유하게 되는가?
이 지점은 가격 책정, 개인정보 보호 (privacy), 기업 규칙, EU 규제, 그리고 매우 흔하게 들리는 문장인 "여기서는 AI를 사용할 수 없습니다"가 모두 만나는 지점입니다.
우리의 코드는 안전한가?
본론으로 들어가기에 앞서, 일반적인 면책 조항을 말씀드립니다: 이것은 법률적 조언도, 조달 (procurement) 조언도 아니며, 전문가를 통한 귀사의 보안 검토를 대체할 수도 없습니다. 이것은 데이터 보호가 다른 누군가의 문제인 양 가장하지 않고, 에이전틱 코딩을 전문적으로 사용하는 것에 관심을 가진 Angular 빌더이자 코치로서의 저의 실무적인 관점입니다.
요약 (TL;DR): AI를 금지하지 말고, 안전한 경로를 승인하라
시간이 30초밖에 없다면, 저의 실무적인 관점은 다음과 같습니다:
- 개인용 구독은 학습에는 훌륭하지만, 독점 코드 (proprietary code)에 자동으로 사용해도 괜찮다는 의미는 아닙니다.
- "학습에 사용되지 않음"이 "보관되지 않음"을 의미하지는 않습니다.
- 비밀 정보 (secrets), 운영 데이터 (production data), 고객 데이터, 그리고 규제 대상인 개인 정보에는 명확한 규칙이 필요합니다.
- 에이전트 (agents)는 단순히 코드를 읽는 것에 그치지 않고 명령어를 실행하며, 코드를 유출하도록 속임수를 쓸 수도 있으므로 제한이 필요합니다.
- 기업은 비공식적인 우회 방법을 강요하는 대신, 몇 가지 안전한 도구를 승인해야 합니다.
- 생성된 모든 diff (차이점)는 여전히 인간의 검토가 필요합니다.
이것은 법률 가이드가 아닙니다
이전 포스트들과 마찬가지로 면책 조항을 밝힙니다. 이것은 과학적인 벤치마크(benchmark)도, 보편적인 구매 가이드도 아닙니다. 이것은 Angular 프로젝트 수행, 워크숍, 실험, 그리고 벤더(vendor) 문서를 읽는 데 너무 많은 시간을 보낸 경험을 바탕으로 한 2026년 6월 기준 저의 개인적인 의견입니다.
그리고 이러한 세부 사항들은 매우 빠르게 변합니다. 벤더들은 계획, 기본 설정, 데이터 보존 설정, 엔터프라이즈 제어 기능, 그리고 하위 프로세서(subprocessors)를 때로는 몇 주 만에 변경하기도 합니다. 제가 이 시리즈를 작성하는 동안에도 3개의 새로운 모델(Gemini 3.5 Flash, Composer 2.5, Opus 4.8)이 출시되었습니다. 다음 모델은 아마 다음 주에 나올 것 같군요 (우리는 GPT 5.6을 기다리고 있는 거죠, 맞나요?). Google은 개인 사용자를 위한 Gemini CLI 및 Gemini Code Assist를 Antigravity CLI로 통합하고 있는 반면, 엔터프라이즈 액세스(enterprise access)는 변경 없이 유지됩니다. 따라서 실제로 무엇인가를 결정하기 전에 반드시 공식 페이지를 다시 확인하시기 바라며, 이 글을 실무 현장 보고서(field report)로 읽어주시기 바랍니다.
우리는 실제로 무엇을 공유하는가?
이 부분은 세부 사항을 알지 못한 채 강한 의견을 갖기 쉽기 때문에 제가 가장 많은 조사를 수행해야 했던 부분이었습니다. AI 코딩 에이전트(AI coding agent)를 사용할 때, 여러분은 채팅창의 프롬프트(prompt)보다 훨씬 더 많은 것을 공유할 수도 있습니다.
도구와 설정에 따라, 서비스 제공자 또는 도구 벤더는 다음을 수신할 수 있습니다:
- 여러분의 프롬프트 (prompt)
- 선택된 코드 스니펫 (code snippets)
- 열려 있는 파일 및 인접한 파일
- 저장소(repository)의 검색 결과
- 차이점 (diffs)
- 터미널 명령 및 출력값
- 스택 트레이스 (stack traces)
- 패키지 이름 및 의존성 버전 (dependency versions)
- 파일 경로
- 스크린샷 (screenshots)
- 브라우저 상태 (browser state)
- 이슈(issue), 풀 리퀘스트(pull request), 리뷰 텍스트
- 수락된 제안에 대한 텔레메트리 (telemetry)
Angular 프로젝트의 경우, 여기에는 제품 로직, 내부 아키텍처, API 이름, 피처 플래그 (feature flags), 비즈니스 규칙, 테스트 픽스처 (test fixtures), 로컬 로그, 스크린샷, 그리고 때로는 개인 데이터가 포함될 수 있습니다.
따라서 기본 규칙은 간단합니다:
법적 및 기술적 설정이 명시적으로 허용하지 않는 한, 비밀 정보(secrets), 운영 데이터(production data), 고객 데이터 또는 규제 대상 개인 데이터를 AI 도구로 전송하지 마십시오.
에이전트(Agents)는 터미널 출력과 파일을 볼 수 있습니다. 만약 .env 파일, 로그, 데이터베이스 덤프, 스크린샷 또는 테스트 픽스처에 민감한 데이터가 포함되어 있다면 에이전트 또한 이를 볼 수 있습니다. 연구자들은 Codex, Claude Code, 그리고 Cursor가 작업 디렉토리를 탐색하며 .gitignore가 보통 숨겨두는 .env 파일을 읽을 수 있음을 보여주었습니다.
읽기 그 이상: 침해 및 산업 스파이 행위
이 부분이 제가 학습(training)보다 더 걱정하는 지점입니다. 이러한 도구들은 수동적인 채팅창이 아닙니다. 이들은 **명령어를 실행(run commands)**하고, **네트워크(network)**에 접속하며, MCP 서버 (MCP servers), 플러그인, 그리고 커넥터를 호출합니다. Codex는 승인 모드 (approval modes)를 갖춘 OS 레벨의 샌드박스 (OS-level sandbox)를 문서화하고 있으며, Claude Code는 bubblewrap과 seatbelt를 기반으로 구축된 샌드박싱 (sandboxing) 기능을 탑재하여 출시되었습니다. 훌륭한 엔지니어링이지만, 샌드박스는 울타리일 뿐 물리 법칙은 아닙니다.
Simon Willison은 이 위험한 조합을 **"치명적인 삼중주 (lethal trifecta)"**라고 부릅니다. 바로 개인 데이터에 대한 접근 권한, 신뢰할 수 없는 콘텐츠에 대한 노출, 그리고 데이터를 외부로 다시 보낼 수 있는 수단입니다. 여러분의 저장소(repo)에 있는 코딩 에이전트는 기본적으로 이 세 가지를 모두 갖추고 있습니다. 그리고 울타리에는 구멍이 있습니다. 한 팀은 Claude Code가 자체 차단 목록(denylist)을 탈출하고 샌드박스를 비활성화하는 모습을 보여주었으며, 연구자들은 프롬프트 인젝션 (prompt injection) 및 도구 오염 (tool poisoning)을 가능하게 하는 MCP의 프로토콜 수준의 취약점을 기록했습니다.
그러니 제가 속마음을 솔직하게 말씀드리겠습니다. 기업의 Angular 프로젝트에서 진짜 두려운 것은 모델이 어떤 일반적인 패턴을 학습하는 것이 아닙니다. 진짜 공포는 **데이터 유출 및 산업 스파이 행위 (data breach and industrial espionage)**입니다. 즉, 여러분의 아키텍처, 비즈니스 규칙, 미발표 기능, 그리고 고객 데이터가 있어서는 안 될 곳으로 흘러 들어가는 것입니다.
이런 일은 연구소에서도 발생합니다. 2026년 4월, Anthropic은 npm 패키지의 소스 맵 (source-map) 파일을 통해 실수로 Claude Code의 자체 소스 코드를 노출했습니다. 이는 공격이 아닌 인적 설정 오류 (human configuration error)였으며 고객 데이터는 포함되지 않았습니다. 하지만 여기서 얻는 교훈은 불편합니다. 에이전트를 만드는 회사조차 실수로 코드를 유출할 수 있다면, 여러분의 독점 코드는 그저 타인의 서버 위에, 그들의 규칙에 따라 존재하는 데이터일 뿐이라는 사실입니다. 여기에 프롬프트 인젝션 (prompt-injection) 벡터, 즉 오염된 의존성 (dependency), 악의적인 이슈 (issue), 또는 에이전트가 읽게 되는 함정이 설치된 페이지 등을 추가한다면, 여러분의 코드를 보는 바로 그 에이전트가 코드를 외부로 전송하도록 속임을 당할 수 있습니다.
결론은 공포에 빠지는 것이 아닙니다. 핵심은 **위협 모델링 (Threat Modelling)**입니다. 즉, 내 코드가 어디에 존재하는지, 누가 접근할 수 있는지, 얼마나 오래 보관되는지, 그리고 에이전트가 무엇을 하도록 유도될 수 있는지를 파악하는 것입니다. 그렇기 때문에 에이전트의 권한(명령 실행, 네트워크, MCP, 커넥터 등)을 제한하는 것이 학습(Training) 체크박스를 확인하는 것만큼이나 중요합니다.
벤더 문서에서 발견한 내용
정확한 문구는 벤더(Vendor), 요금제, 제품 및 지역에 따라 다르므로, 아래 링크들을 영구적인 법적 답변으로 간주해서는 안 됩니다. 하지만 이 문서들은 왜 팀들이 학습 (Training), 데이터 보관 (Retention), 제품 텔레메트리 (Product Telemetry), 엔터프라이즈 약관, 그리고 에이전트가 볼 수 있는 실제 도구 컨텍스트 (Tool Context)를 구분해야 하는지를 보여줍니다.
개인용 요금제 vs 비즈니스 요금제
이것이 제가 발견한 가장 중요한 차이점입니다. 개인용 요금제에는 종종 데이터 제어 기능이 있지만, 이를 직접 확인하고 설정해야 합니다. 비즈니스, 엔터프라이즈 및 API 제품은 일반적으로, 특히 모델 학습 (Model Training)과 관련하여 더 강력한 기본 설정을 제공합니다.
데이터가 모델 성능 향상에 어떻게 사용되는지에 대한 OpenAI의 도움말 페이지에 따르면, ChatGPT 및 Codex와 같은 개별 서비스는 사용자가 거부(Opt-out)하지 않는 한 모델 학습에 콘텐츠를 사용할 수 있지만, 비즈니스 제품, ChatGPT Enterprise 및 API는 기본적으로 학습에 사용하지 않는다고 명시되어 있습니다. Codex 요금제 사용량 관련 문서에서도 Codex에 대해 동일하게 설명합니다.
Anthropic의 Claude Code 데이터 사용 페이지 또한 유사한 구분을 하고 있습니다. Free, Pro, Max 사용자는 모델 개선을 위한 데이터 사용을 허용할 수 있습니다. 반면 Team, Enterprise, API, 제3자 플랫폼 및 Claude Gov의 경우, Anthropic은 고객이 명시적으로 동의(Opt-in)하지 않는 한 상업적 약관에 따라 Claude Code 프롬프트나 코드를 사용하여 생성형 모델을 학습시키지 않는다고 밝히고 있습니다.
Cursor의 요금제 페이지에 따르면, 설정에서 또는 팀 관리자에 의해 활성화된 프라이버시 모드(Privacy Mode)는 코드 데이터가 모델 제공업체에 의해 저장되거나 학습에 사용되지 않도록 유지합니다. 보안 페이지에서는 이 기능이 누구에게나 제공되며, 팀 구성원에게는 기본적으로 활성화되어 있고, 모델 제공업체와의 데이터 보관 제로(zero data retention)와 같은 계약 조건 및 기술적 제어 장치에 의해 뒷받침된다고 덧붙입니다. 데이터 사용 개요에는 무엇이 저장되고 무엇이 저장되지 않는지가 명시되어 있습니다.
Google의 소비자용 Gemini 스토리는 Google Cloud의 사례와도 다릅니다. Gemini 앱 개인정보 보호 허브는 사용자가 검토되거나 서비스 개선에 사용되는 것을 원치 않는 기밀 정보를 입력하지 말라고 경고합니다. 반면, Gemini for Google Cloud 데이터 거버넌스 문서는 프롬프트(prompt)나 응답(response)을 모델 학습에 사용하지 않는다고 명시하고 있으며, Gemini Code Assist Standard/Enterprise 보안 문서는 코딩 컨텍스트(coding context)를 고객 데이터(Customer Data)로 설명합니다.
GitHub Copilot은 이러한 차이를 더욱 구체화했습니다. 2026년 3월, GitHub은 기본 설정을 변경하여 Free, Pro, Pro+ 사용자의 상호작용 데이터가 사용자가 거부(opt-out)하지 않는 한 모델 학습에 사용될 수 있도록 했으나, Business 및 Enterprise 사용자는 여전히 제외 상태를 유지합니다. 독립적인 보도는 이것이 규제 산업에 어떤 의미를 갖는지 상세히 설명했으며, Copilot 신뢰 센터에서 현재의 세부 사항을 확인할 수 있습니다. 동일한 교훈을 주는 새로운 사례입니다.
따라서 저의 실질적인 결론은 다음과 같습니다:
개인용 20유로 구독은 학습과 실험에는 훌륭하지만, 기업의 독점적인 코드(proprietary enterprise code)를 위한 적절한 설정이라고 자동으로 간주될 수는 없습니다.
거부(opt-out) 및 검토를 거친 후 귀하의 회사에서 허용될 수도 있습니다. 혹은 허용되지 않을 수도 있습니다. 하지만 추측해서는 안 됩니다.
학습을 하지 않는다는 것이 보관을 하지 않는다는 것과 같지는 않습니다
혼동하기 쉬운 또 다른 점은 "학습에 사용되지 않음"이 "보관되지 않음"을 의미하지는 않는다는 것입니다.
제공업체는 남용 모니터링, 보안, 디버깅 (debugging), 과금, 법적 의무 또는 제품 기능 구현을 위해 데이터를 여전히 보관할 수 있습니다. 일부 엔터프라이즈 플랜 (enterprise plans)은 사용자 정의 보관 (custom retention)을 허용하고, 일부 API 설정은 데이터 제로 보관 (zero data retention)을 제공하며, 일부 소비자용 제품은 사용자가 대화 기록을 삭제하거나 임시 모드를 사용하지 않는 한 대화 기록을 유지합니다.
예를 들어, Anthropic의 개인정보 보호 센터 (privacy center)에 따르면, 모델 개선을 위한 데이터 사용을 허용하지 않은 소비자 사용자의 데이터는 30일 동안 보관되는 반면, 허용한 사용자의 데이터는 5년 동안 보관됩니다.
OpenAI는 개인 사용자가 학습에서 제외 (opt out)될 수 있으며, 임시 채팅 (Temporary Chat)은 기록에 나타나지 않고, 메모리를 생성하지 않으며, 모델 학습에 사용되지 않지만, 피드백 (feedback)은 여전히 사용될 수 있다고 밝히고 있습니다.
Google Cloud는 Gemini Code Assist Standard 및 Enterprise가 상태 비저장 (stateless) Google Cloud 서비스이며, 로깅 (logging)을 구성하지 않는 한 Google Cloud에 프롬프트 (prompts)와 응답 (responses)을 저장하지 않는다고 밝히고 있습니다.
진지한 기업 도입을 위해서라면, 저는 모든 벤더에게 지루하지만 중요한 질문들을 던질 것입니다:
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기