“AI가 빌드를 못 한다고요?”

Astro로 사이트를 만들다가 이런 에러를 만났습니다.

Error: spawn EPERM

원인을 찾아보니 AI 도구가 빌드 명령어를 실행하지 못하고 있었습니다.

그런데 이상했습니다. Claude Code 터미널에서는 똑같은 명령어가 멀쩡히 돌아갔습니다.

같은 Claude AI인데 왜 한쪽만 막히는 걸까요?

AI 도구는 전부 같은 게 아닙니다

AI 도구를 쓰다 보면 이런 것들을 접하게 됩니다.

  • Claude Code: 터미널에서 실행하는 개발 도우미
  • Codex: 코드 작성과 수정에 특화된 AI
  • GitHub Copilot: 에디터 안에서 코드를 제안하는 AI
  • ChatGPT: 대화형 범용 AI

겉으로 보면 다 비슷해 보입니다.

“AI한테 코드 짜달라고 하는 거잖아요.”

맞습니다. 하지만 실행 환경이 완전히 다릅니다.

핵심 개념: 로컬 vs 샌드박스

로컬 실행

Claude Code 터미널은 보통 이 방식에 가깝습니다.

내 PC -> 내 터미널 -> AI가 명령어 실행

AI가 내 컴퓨터 위에서 직접 명령어를 실행합니다.

내 권한, 내 파일, 내 프로그램을 그대로 씁니다. esbuild.exe를 실행해야 하면 그냥 실행합니다.

샌드박스 실행

Codex나 GitHub Copilot Workspace 같은 서비스는 격리된 실행 환경을 씁니다.

내 PC -> 인터넷 -> Anthropic/OpenAI 클라우드 -> 격리된 가상 환경

AI가 클라우드에 있는 격리된 컨테이너 안에서 동작합니다. 이 컨테이너는 보안을 위해 할 수 있는 일이 제한되어 있습니다.

샌드박스가 막는 것들

샌드박스 환경에서는 보안상 이런 것들이 차단될 수 있습니다.

가능한 것막힐 수 있는 것
파일 읽기와 쓰기외부 바이너리 실행
Node.js 코드 실행자식 프로세스 생성
텍스트 처리시스템 명령어 직접 호출
코드 분석과 수정네트워크 외부 접속

Astro 빌드가 막힌 이유가 바로 이것입니다.

Astro는 내부적으로 esbuild라는 별도 프로그램을 실행해서 코드를 번들링합니다. 샌드박스가 이 별도 프로그램 실행을 차단하면 spawn EPERM 같은 에러가 납니다.

왜 이렇게 만들었을까

이상하게 느껴질 수 있습니다.

“왜 일부러 막아놓는 거야?”

이유는 보안입니다.

수많은 사용자가 클라우드에서 코드를 실행합니다. 만약 제한이 없다면 이런 문제가 생길 수 있습니다.

  • 악의적인 코드가 서버 전체에 영향을 줄 수 있음
  • 다른 사용자의 데이터에 접근할 수 있음
  • 서버 자원을 무제한으로 사용할 수 있음

그래서 각 사용자에게 격리된 가상 환경을 주고, 그 안에서만 실행되도록 제한합니다.

이건 버그가 아니라 의도된 설계입니다.

실전 가이드: 어떤 AI 도구를 언제 쓸까

정리는 간단합니다.

코드 짜고 수정할 때

Codex나 Copilot이 잘 맞습니다.

파일을 읽고 쓰고, 코드 구조를 분석하고, 수정안을 만드는 작업에 강합니다.

빌드, 실행, 테스트할 때

로컬 터미널 기반 도구가 유리합니다.

내 PC에서 직접 실행하므로 로컬 프로그램, 빌드 도구, 브라우저, 시스템 명령어를 그대로 쓸 수 있습니다.

막히는 에러가 있을 때

먼저 어떤 환경에서 실행했는지 확인해야 합니다.

“AI가 못 한다”가 아니라 “이 환경에서는 못 한다”일 수 있습니다.

정리

AI 도구가 무언가를 못 할 때는 코드 문제인지 환경 문제인지 먼저 구분해야 합니다.

샌드박스 환경은 보안을 위해 일부 기능이 제한됩니다. 이건 코드를 고쳐서 해결할 수 없는 경우가 있습니다.

올바른 도구를 올바른 용도에 쓰면 됩니다.

AI 도구가 “안 된다”고 했을 때, 진짜로 AI가 모르는 건지 아니면 환경이 막는 건지. 이 차이를 아는 것만으로도 불필요한 삽질을 많이 줄일 수 있습니다.

이번 글의 배경

이 글은 실제로 Astro 빌드가 Codex에서 막혔던 경험을 바탕으로 작성했습니다.

문제의 핵심은 Astro가 아니라 실행 환경이었습니다.

그래서 앞으로 비슷한 에러를 만나면 먼저 이렇게 물어보면 됩니다.

이 명령이 코드 때문에 실패한 걸까?
아니면 현재 AI 실행 환경이 막고 있는 걸까?

이 질문 하나가 문제 해결 시간을 크게 줄입니다.