OpenAI Codex의 모바일·데스크톱 에이전트와 비동기 작업 아키텍처

Codex의 모바일 연동과 서버 측 비동기 작업, 데스크톱 UI 자동화, 샌드박스 보안, CLI 확장 및 AI 코딩 도구 경쟁 구도를 실무 아키텍처 관점에서 정리한다.

2026-08-14 · 최초 발행 2026-06-10

모바일에서 장시간 작업을 이어가는 방식

모바일 운영체제는 장시간 실행되는 에이전트에 우호적인 환경이 아니다. iOS는 앱이 백그라운드로 내려가면 수 초 안에 실행을 중단하며, Android도 Doze 모드와 배터리 최적화 정책으로 지속적인 백그라운드 작업을 제한한다.

Codex의 iOS·Android ChatGPT 앱 통합은 이 제약을 서버 사이드 실행으로 피한다. 사용자가 모바일에서 작업을 요청하더라도 에이전트 추론과 코드 실행은 OpenAI 클라우드 인프라에서 진행된다. 앱은 작업 상태를 폴링하거나 서버 발신 이벤트(Server-Sent Events)를 받는 경량 클라이언트로 남는다.

작업 완료, 오류, 중간 결과는 APNs(Apple Push Notification service)와 FCM(Firebase Cloud Messaging)을 거쳐 전달된다. 앱을 계속 열어 두지 않아도 수십 분 단위의 작업이 끝나면 알림으로 결과를 확인할 수 있다. 모바일 프로세스가 작업을 소유하지 않기 때문에 백그라운드 제약을 우회하면서 세션의 연속성도 유지할 수 있다.

사용자 (iOS/AndroidChatGPT 앱)작업 요청 전송OpenAI 클라우드 에이전트런타임작업 유형 분류단기 작업 (동기 응답, <30초)장기 작업 (비동기 처리, 30초)작업 등록 Job ID 반환에이전트 샌드박스 실행중간 결과 스트리밍SSE / WebSocket 푸시APNs / FCM 푸시 알림즉시 응답 스트리밍

파일 접근과 로컬 상태의 경계

모바일 에이전트가 프로젝트 파일을 다루려면 운영체제가 제공하는 접근 체계를 따라야 한다. iOS에서는 Files 앱을 통해 iCloud Drive와 로컬 파일에 접근하고, Document Provider Extension으로 Dropbox나 Google Drive 같은 서드파티 클라우드 스토리지와 연결한다. Android에서는 Storage Access Framework(SAF)로 사용자가 지정한 파일 범위에 대한 권한을 받는다.

네트워크가 끊겼을 때 모든 기능이 멈추지 않도록 최근 코드 스니펫, 프로젝트 컨텍스트, 자주 보는 API 문서를 로컬 SQLite 데이터베이스에 캐시한다. 이 데이터로 코드 제안이나 오류 설명 같은 경량 기능은 오프라인에서도 처리한다. 무거운 추론 작업은 연결이 돌아온 뒤 큐에서 다시 시작된다.

권한의 기준은 최소 권한 원칙(Principle of Least Privilege)이다. 특정 파일이나 디렉터리가 필요하면 플랫폼 표준 권한 다이얼로그로 승인을 받고, 접근 범위는 해당 세션으로 한정한다. 사진이나 연락처처럼 민감한 디렉터리에 영구 권한을 부여할 때는 사용자가 별도로 명시적인 선택을 해야 한다.

요청과 결과 사이에 작업 그래프를 둔다

Codex 모바일 통합의 차이는 단일 요청과 단일 응답에 작업을 가두지 않는 데 있다. 수십 분에서 수 시간 걸리는 복잡한 요청도 사용자 개입 없이 계속 처리할 수 있도록 비동기 파이프라인을 사용한다.

복잡한 요청은 작업 그래프(Task Graph)로 표현된다. 작업 분해기가 의존 관계를 기준으로 하위 작업(Sub-task)을 만들고, 서로 의존하지 않는 작업은 병렬 실행한다. 각 하위 작업은 독립된 에이전트 컨텍스트에서 처리되며, 산출물은 부모 작업에 다시 모인다.

복잡한 작업 요청작업 분해기 (TaskDecomposer)하위 작업 (1) 코드 분석하위 작업 (2) 테스트 생성하위 작업 (3) 문서 업데이트결과 집계기 (Aggregator)최종 결과 리퀘스트 생성사용자 알림

진행 상태는 OpenAI 서버에 영속적으로 저장된다. 사용자가 앱을 완전히 종료한 뒤 다시 실행해도 진행 중이던 작업을 이어받을 수 있다. 대화 세션과 실행 수명을 분리한 이 구조가 모바일 환경에서 자율 작업 실행기를 구현하는 기반이다.

데스크톱 화면을 읽고 조작하는 파이프라인

OS 수준 에이전트가 애플리케이션을 열고 클릭하거나 문자를 입력하려면 현재 화면을 기계가 다룰 수 있는 상태로 바꿔야 한다. 화면 캡처에는 macOS의 ScreenCaptureKit API, Windows의 Desktop Duplication API, Linux의 X11·Wayland 스크린샷 인터페이스가 사용된다. 초당 수 프레임의 저지연 캡처를 유지하면서 GPU 가속 인코딩으로 CPU 부하를 줄인다.

UI 인식은 구조 정보와 화면 이미지를 함께 활용한다. macOS Accessibility API와 Windows UI Automation이 제공하는 버튼, 텍스트필드, 메뉴 등의 계층 트리를 먼저 읽는다. 접근성 API가 다루지 못하는 커스텀 UI나 게임 엔진 기반 애플리케이션은 멀티모달 비전 모델이 스크린샷에서 직접 요소를 식별한다.

아니오화면 캡처 모듈접근성 API 지원?플랫폼 접근성 APIUI 요소 계층 트리 파싱멀티모달 비전 모델 (GPT-4o)스크린샷 기반 요소 식별통합 UI 요소에이전트 액션 플래너커서 이동 / 클릭 / 타이핑 생성OS 입력 시뮬레이션 레이어실제 애플리케이션 조작

두 경로의 결과는 하나의 UI 요소 맵으로 합쳐진다. 맵에는 요소의 좌표와 역할(role), 레이블, 활성화 여부와 체크 상태가 들어간다. 액션 플래너는 이 정보를 바탕으로 다음 행동을 고르고, OS 입력 시뮬레이션 레이어가 실제 애플리케이션에 이벤트를 전달한다.

클릭과 키 입력을 실제 입력 이벤트로 만든다

커서 자동화는 목적지 좌표만 계산하는 작업이 아니다. 직선 이동이나 순간적인 좌표 변경은 보안 소프트웨어에서 봇 동작으로 감지될 수 있다. 이를 피하기 위해 Bezier 곡선으로 이동 경로를 만들고 작은 랜덤 지터(jitter)를 더해 사람의 움직임에 가까운 궤적을 생성한다.

클릭은 MouseDown과 MouseUp 이벤트를 50~150ms의 랜덤 간격으로 발생시키는 방식이다. 더블 클릭, 우클릭, 드래그·앤·드롭도 같은 원칙을 따른다.

문자 입력 역시 문자열을 한 번에 붙여넣는 대신 키보드 이벤트 시퀀스로 만든다. 키 사이의 지연은 평균 타이핑 속도(WPM)를 바탕으로 정규 분포를 적용한다. 웹 양식과 IDE, 터미널처럼 입력 처리 방식이 다른 애플리케이션에서도 동일한 자동화 흐름을 유지하기 위한 설계다.

Ctrl+S, Cmd+Z, Alt+Tab 같은 특수 키 조합은 단축키 시퀀스 모듈이 맡는다. 운영체제마다 다른 키 코드는 추상화 레이어에서 변환한다.

OS 조작 권한을 통제하는 방어선

데스크톱 에이전트는 사용자의 입력 권한을 대신 행사하므로 오동작과 악의적 사용을 함께 고려해야 한다. Codex는 작업 범위, 행동 기록, 실행 환경을 나눠 방어한다.

작업을 시작하기 전 사용자가 접근 가능한 애플리케이션과 디렉터리, 웹사이트를 승인한다. 허용된 경계를 벗어나는 행동은 차단하고 사용자에게 알린다.

에이전트가 수행한 클릭, 키 입력, 파일 접근은 타임스탬프와 함께 로컬 감사 로그(Audit Log)에 남는다. 사용자는 이 기록에서 행동 이력을 확인하고 특정 시점으로 상태를 롤백할 수 있다.

신뢰할 수 없는 코드나 민감한 작업은 Docker 컨테이너 또는 가상 머신에 격리한다. macOS에서는 Virtualization 프레임워크를, Windows에서는 Hyper-V 기반 경량 VM을 활용해 호스트 시스템과 실행 환경을 분리한다.

아니오아니오아니오에이전트 액션 요청(1) 작업 범위 검사허용된 범위 내?액션 차단 + 사용자 알림(2) 감사 로그 기록코드 실행 포함?(3) 컨테이너/VM 격리 실행호스트 OS 직접 실행결과 반환 정리사용자 확인 요청 (고위험 액션)승인?액션 완료롤백 실행

300만 WAU를 만든 배포 전략

Codex는 출시 초기 단계에서 주간 활성 사용자(WAU) 300만 명을 넘겼다. 성장의 출발점은 ChatGPT의 기존 사용자 기반이다. 2026년 현재 주간 활성 사용자가 수억 명에 달하는 ChatGPT에 Codex를 통합하면서 별도 가입이나 설치 없이 기능에 접근할 수 있게 했다. GitHub Copilot, Cursor, Claude Code처럼 별도 설치가 필요한 도구와는 배포 경로가 다르다.

웹 인터페이스는 IDE 플러그인이나 API 키 설정 없이 브라우저에서 사용할 수 있고, 모바일 통합은 자연어로 코딩 작업을 요청할 수 있는 접점을 넓혔다. 개발자 전용 도구에 가까웠던 AI 코딩 기능을 비개발자도 접근할 수 있는 형태로 옮긴 셈이다.

비동기 자율 작업도 분명한 차별점이다. 코드 한 조각을 제안하는 데서 그치지 않고 리포지토리의 테스트를 수정해 풀 리퀘스트까지 만드는 복합 작업을 자율적으로 수행한다. 사용자가 화면 앞에서 응답을 기다리지 않아도 된다는 점이 새로운 사용 시나리오를 만들었다.

Claude Code와 다른 플랫폼 범위

Anthropic의 Claude Code가 GitHub 코드 기여 점유율 4%를 달성했다는 지표는 AI 코딩 도구의 경쟁 강도를 보여준다. Claude Code는 터미널 기반 고급 사용자를 중심으로 자리 잡았고, 대규모 코드베이스 리팩터링과 여러 파일에 걸친 변경에서 높은 평가를 받는다.

Codex의 방향은 플랫폼 도달 범위와 멀티모달 에이전트 능력에 가깝다. Claude Code가 터미널과 코드베이스에 집중한다면 Codex는 브라우저, 모바일, 데스크톱 OS를 아우르는 범용 에이전트를 지향한다. 코드 생성과 웹 탐색, 문서 작성, 애플리케이션 조작을 하나의 에이전트 워크플로로 연결하는 전략이다.

GPT-4o의 멀티모달 기능도 이 구도에 포함된다. Codex는 스크린샷이나 UI 와이어프레임을 보고 코드를 생성하고, 런타임 오류 화면을 캡처해 디버깅하는 비전 기반 개발 흐름을 제공한다. 텍스트만 다루는 도구와 구분되는 사용 방식이다.

Codex CLI가 터미널 워크플로에 더한 것

Codex CLI 0.130.0에는 Vim 모드와 플러그인 동기화가 들어갔다. Vim 모드에서는 CLI 프롬프트를 Vim 키바인딩으로 편집하고 이전 명령을 탐색할 수 있다. hjkl 이동, i/a/o 삽입, v 비주얼 모드 등 핵심 Vim 기능을 지원한다.

플러그인 동기화는 커스텀 명령어와 프롬프트 템플릿, 프로젝트별 컨텍스트 설정을 여러 장치에 맞춘다. 한 번 만든 Codex 워크플로를 다른 작업 환경에서도 사용할 수 있고, 공유 설정을 팀 단위로 배포하는 것도 가능하다.

Codex CLI 사용자Vim 모드 활성화프롬프트 편집 (Vim 키바인딩)명령 실행 스트리밍 응답플러그인 동기화커스텀 명령어 / 프롬프트템플릿클라우드 설정 저장소다중 장치 동기화 공유 설정 배포비동기 에이전트 작업 위임백그라운드 Job 처리터미널 알림으로 완료 보고

이 변화는 CLI의 편집 편의만 높이는 데 그치지 않는다. 개발자가 터미널 안에서 장시간 에이전트 작업을 시작하고 상태를 확인할 수 있게 하면서, 터미널과 자율 실행 사이의 연결 지점을 만든다. Claude Code의 터미널 통합 전략과 직접 맞닿는 영역이기도 하다.

AI 코딩 도구의 경쟁 무대는 IDE 플러그인에서 CLI로, 다시 모바일과 OS 전체로 넓어지고 있다. Codex의 iOS·Android 통합, 비동기 작업 처리, 데스크톱 애플리케이션 조작은 개발 보조 도구를 범용 자율 작업 에이전트로 확장하려는 시도다. 300만 WAU는 개별 기능만큼이나 기존 플랫폼과 작업 흐름에 얼마나 깊게 연결되는지가 확산을 좌우한다는 점을 드러낸다.

Sources

OpenAI CodexAI 에이전트비동기 작업UI 자동화샌드박스