스크린샷을 보고, 클릭하고, 타이핑하는 AI (1편)
AI에게 "구글에서 오늘 날씨 좀 검색해줘"라고 말하면, 정말로 브라우저를 열고, 검색창에 글자를 입력하고, 결과 페이지를 읽어주는 AI가 있다면 어떨까요?
더 이상 상상이 아닙니다. OpenAI가 제공하는 Computer use 기능을 사용하면, AI가 실제 컴퓨터 화면을 보고 마우스를 클릭하고 키보드로 타이핑하는 에이전트를 직접 만들 수 있습니다. 텍스트만 생성하던 AI가 이제는 "눈"과 "손"을 가지게 된 셈이죠.
이 글에서는 Computer use가 무엇인지부터, OpenAI 공식 샘플 앱을 직접 설치하고 실행하는 방법, 그리고 내부 코드가 어떤 구조로 동작하는지까지 차근차근 살펴봅니다. Python 환경만 준비되어 있다면 누구나 따라 할 수 있으니, 함께 시작해볼까요?
1. Computer use란? — AI가 PC를 조작하는 원리
Computer use는 AI 에이전트가 사용자의 지시에 따라 GUI(그래픽 사용자 인터페이스)를 통해 인간처럼 컴퓨터를 조작하는 기술입니다. 쉽게 말해, AI에게 "눈"(스크린샷 인식)과 "손"(마우스/키보드 제어)을 달아주는 것이라고 생각하면 됩니다.
이 기술을 통해 AI는 마우스 클릭, 키보드 입력, 스크롤 같은 동작을 수행하고, 데이터 입력, 애플리케이션 조작, 웹 브라우징 같은 태스크를 자동화할 수 있습니다. OpenAI의 ChatGPT Agent에서도 이미 이 기술이 활용되고 있는데요, 개발자라면 API를 통해 직접 이런 AI 에이전트를 만들 수 있습니다.
Computer use의 4단계 처리 흐름
Computer use가 동작하는 방식은 생각보다 직관적입니다. 다음 4단계를 반복하면서 태스크를 완료해나갑니다.
① 스크린샷 분석: AI는 현재 화면의 스크린샷을 받아서 버튼, 텍스트 필드, 링크 같은 요소를 인식하고 현재 상태를 파악합니다.
② 조작 제안: 분석 결과를 바탕으로 click(x, y)이나 type("text")처럼 구체적인 조작(Action)을 제안합니다.
③ 조작 실행: 제안된 조작이 실제로 실행되어 화면이 변합니다.
④ 루프: 조작이 이루어진 뒤, 새로운 스크린샷이 저장되고 다음 조작이 결정됩니다. 이 과정을 반복하면서 태스크가 완료될 때까지 자율적으로 조작이 계속됩니다.
결국 Computer use의 핵심은 "보고 → 판단하고 → 행동하고 → 다시 보고"의 무한 루프입니다. 사람이 컴퓨터를 쓸 때와 똑같은 과정을 AI가 수행하는 거죠.
어떤 모델을 사용하나요?
2025년 8월 현재, OpenAI에서 Computer use에 사용할 수 있는 모델은 computer-use-preview입니다. 이 모델은 CUA(Computer-Using Agent)의 개발자용 프리뷰 버전으로, GPT-5의 시각 인식 능력과 강화 학습에 의한 고도의 추론을 결합하여 GUI를 통해 컴퓨터를 조작할 수 있도록 설계되었습니다.
주의: computer-use-preview는 아직 발전 단계에 있는 기술이며, 안전성이나 조작의 확실성이 완벽히 보장되지 않습니다. 실환경에서의 사용이나 인증 조작에는 각별한 주의가 필요합니다.
이용 요금은?
Computer use의 이용 요금은 소비되는 토큰 수에 따라 종량제로 부과됩니다. 입력과 출력의 요금이 다른데, computer-use-preview 기준으로 입력은 100만 토큰당 $3.00, 출력은 100만 토큰당 $12.00입니다.
한 가지 꼭 알아둘 점은, AI의 "사고"에 사용된 토큰도 요금에 포함된다는 것입니다. 복잡한 태스크에서 AI가 오래 생각할수록 비용이 올라가므로, 샘플을 실행할 때는 요금에 주의하세요.
2. 환경 설정: 공식 샘플 앱 설치하기
이제 직접 Computer use를 실행해보겠습니다. OpenAI가 GitHub에 공개한 공식 샘플 앱(openai-cua-sample-app)을 사용하면 가장 빠르게 체험할 수 있습니다.
필요한 것
이번 실습은 로컬 PC의 Python 가상 환경에서 진행합니다. 시작하기 전에 다음이 준비되어 있어야 합니다.
첫째, Python 가상 환경입니다. Python 3.10 이상이 설치된 로컬 PC가 필요합니다.
둘째, OpenAI API 키입니다. 환경 변수 OPENAI_API_KEY에 자신의 API 키를 설정해야 합니다.
Mac에서는 export OPENAI_API_KEY=sk-... 명령어를,
Windows에서는 set OPENAI_API_KEY=sk-... 명령어를 사용합니다.
참고: 이 실습을 하려면 computer-use-preview 모델에 대한 사용 권한이 필요합니다. 권한이 없는 경우, 실행 시 "The model `computer-use-preview` does not exist or you do not have access to it." 메시지와 함께 404 오류가 발생합니다.
설치 순서
Step 1. GitHub에서 샘플 앱을 클론하고 필요한 패키지를 설치합니다.
Step 2. Playwright를 설치합니다. 이번 실습에서는 AI 에이전트가 로컬 머신 위의 Playwright 브라우저를 통해 웹 조작을 수행합니다.
Playwright는 마이크로소프트가 개발한 오픈 소스 엔드 투 엔드 테스트 자동화 도구입니다. 웹 애플리케이션의 사용자 인터페이스를 실제 사람의 조작에 가까운 형태로 자동 테스트할 수 있다는 것이 특징인데요, 중요한 점은 Playwright가 브라우저를 샌드박스 안에서 실행한다는 것입니다. 즉, AI가 브라우저를 아무리 조작해도 시스템 전체에 영향을 미치지 않으니 안심하고 테스트할 수 있습니다.
3. 실행해보기 — AI가 고양이 사진을 찾는 과정
환경 설정이 끝났으면, 드디어 AI 에이전트를 실행할 차례입니다. 터미널에서 cli.py를 실행하면서 "고양이 이미지를 찾아주세요"라는 지시를 내려봅시다.
실행하면 Playwright 브라우저가 자동으로 열리고, AI 에이전트가 직접 브라우저를 조작하기 시작합니다. 실행 로그를 보면 AI가 어떤 과정을 거치는지 한눈에 알 수 있습니다.
먼저 screenshot({})으로 현재 화면을 캡처합니다. Bing 검색 엔진의 초기 화면이 보이겠죠. 그 다음 click({'button': 'left', 'x': 207, 'y': 189})로 검색창을 클릭합니다. 이어서 type({'text': 'cat'})으로 'cat'이라고 입력하고, keypress({'keys': ['ENTER']})로 엔터 키를 눌러 검색을 실행합니다.
검색 결과가 로드되면 AI는 다시 화면을 관찰하고, 이미지 탭을 클릭해서 이동한 뒤, 고양이 이미지를 찾아 클릭합니다. 최종적으로 "I found an image of a cat as requested. Would you like to see it?"이라는 메시지를 출력하며 태스크를 완료합니다.
놀라운 점은, 이 모든 과정에서 우리가 한 일은 "고양이 이미지를 찾아주세요"라는 한 줄의 지시뿐이라는 것입니다. 나머지는 AI가 스스로 "보고 → 판단하고 → 행동"하는 과정을 반복하며 완료했습니다.
cli.py의 주요 매개변수
실행 명령어에는 다양한 옵션을 줄 수 있습니다. --computer는 사용할 컴퓨터 환경을 지정하는 것으로, 기본값은 local-playwright입니다. --input은 에이전트에 대한 초기 입력인데, 미지정 시에는 CLI에서 직접 입력을 요청합니다. --debug를 추가하면 디버그 모드를 활성화할 수 있고, --show를 쓰면 실행 중에 스크린샷을 표시합니다. --start-url로 브라우저의 초기 페이지 URL도 변경할 수 있습니다(기본값은 https://bing.com).
여기까지 Computer use의 개념부터 공식 샘플 앱을 설치하고 실제로 실행해보는 과정까지 살펴봤습니다.
단 한 줄의 지시만으로 AI가 브라우저를 열고, 검색하고, 결과를 찾아가는 모습이 꽤 인상적으로 느껴지셨을 텐데요.
이제 다음 단계로 넘어가 볼 차례입니다.
다음 편에서는 이 샘플 앱이 어떤 구조로 동작하는지, 내부 코드 흐름을 하나씩 따라가며 Computer use 에이전트의 동작 원리를 더 깊이 파헤쳐보겠습니다.
https://wikibook.co.kr/multimodal/