2. 프로젝트와 멀티태스킹
Codex app는 여러 코드 폴더(프로젝트)를 동시에 열고, 하나의 앱 안에서 여러 작업을 한꺼번에 진행할 수 있는 데스크톱 프로그램입니다. 프로그래밍 경험이 없어도 이 페이지를 따라가면 프로젝트와 멀티태스킹의 개념을 쉽게 이해할 수 있습니다.
이 페이지에서 배우는 것
- "프로젝트"가 정확히 무엇인지, 왜 중요한지
- "멀티태스킹(스레드)"이 무엇이고 어떻게 활용하는지
- Codex App의 전체 구조를 한눈에 파악하기
- 실전에서 바로 쓸 수 있는 시나리오 2가지
- 모노레포(Monorepo)란 무엇이고, 왜 프로젝트를 나눠야 하는지
- 초보자가 자주 묻는 질문 5가지와 답변
- 생산성을 높이는 구체적인 팁
프로젝트란 무엇인가요?
프로젝트(Project)는 쉽게 말해 "코드 파일들이 들어 있는 폴더"입니다.
비유하자면, 여러분이 워드(Word) 문서를 작성할 때 관련 파일들을 하나의 폴더에 모아두는 것과 같습니다. 예를 들어 "졸업논문" 폴더 안에 본문.docx, 참고문헌.docx, 표지.docx를 넣어두는 것처럼, 개발에서도 하나의 웹사이트나 앱을 만드는 데 필요한 모든 코드 파일을 하나의 폴더에 모아둡니다. 이 폴더가 바로 프로젝트입니다.
Codex에서 프로젝트를 열면, Codex는 그 폴더 안에 있는 모든 파일을 읽고 이해합니다. 마치 새로 합류한 팀원에게 "이 폴더에 있는 문서 전부 읽어봐"라고 하는 것과 같습니다. 그래서 Codex가 여러분의 코드에 대해 정확한 답변을 해줄 수 있는 것입니다.
멀티태스킹이란?
멀티태스킹(Multitasking)은 말 그대로 "여러 가지 일을 동시에 하는 것"입니다. Codex에서는 이것을 스레드(Thread)라는 개념으로 구현합니다.
스레드(Thread)란 "하나의 독립된 대화창"이라고 생각하면 됩니다. 카카오톡에서 여러 사람과 동시에 채팅할 수 있는 것처럼, Codex에서도 여러 개의 대화창(스레드)을 열어서 각각 다른 작업을 동시에 진행할 수 있습니다.
예를 들어 이런 식입니다:
- 스레드 1번에서는 Codex에게 "이 버그 좀 고쳐줘"라고 요청
- 스레드 2번에서는 Codex에게 "테스트 코드 작성해줘"라고 요청
- 스레드 3번에서는 Codex에게 "이 코드 설명해줘"라고 요청
이 세 가지 작업이 동시에 진행됩니다. 한 작업이 끝날 때까지 기다릴 필요 없이, 여러 요청을 한꺼번에 보내고 각각의 결과를 따로 확인할 수 있습니다. 마치 유능한 비서 여러 명이 동시에 각자 다른 일을 처리해주는 것과 같습니다.
앱 구조 다이어그램
아래 다이어그램은 Codex App의 전체 구조를 보여줍니다. 각 층이 무엇을 의미하는지 하나씩 살펴보겠습니다.
Codex App 계층 구조
하나의 Codex App 창 안에서 여러 프로젝트를 열고, 각 프로젝트에서 독립적인 스레드를 운영할 수 있습니다.
여러분이 컴퓨터에서 실행하는 프로그램 자체입니다. 하나의 Codex App 안에서 모든 것이 이루어집니다. 웹 브라우저 하나로 여러 탭을 여는 것과 비슷합니다.
각각의 코드 폴더입니다. 예를 들어 "쇼핑몰 웹사이트", "블로그", "회사 앱" 이렇게 서로 다른 프로젝트를 동시에 열어둘 수 있습니다. 각 프로젝트는 서로 독립적입니다.
각 프로젝트 안에서 열리는 개별 대화창입니다. 하나의 프로젝트에서 여러 스레드를 열어 "버그 수정", "새 기능 추가", "코드 정리" 등을 동시에 진행할 수 있습니다.
데스크톱 경험 핵심 기능
Codex app는 다음 네 가지 핵심 기능을 갖춘 데스크톱 프로그램입니다. 각 기능이 무엇인지 쉽게 설명합니다.
핵심 포인트
- Codex app는 병렬 스레드, worktree, automations, Git 기능을 모두 갖춘 올인원 데스크톱 프로그램입니다. 여러 프로그램을 왔다 갔다 할 필요가 없습니다.
- 하나의 창에서 여러 프로젝트(폴더)를 오가며 각각 다른 작업을 진행할 수 있습니다. 쇼핑몰 프로젝트와 블로그 프로젝트를 동시에 열어둘 수 있습니다.
- 큰 프로젝트(모노레포)에서는 프로젝트를 역할별로 분리하면 Codex가 더 정확하게 도와줄 수 있습니다. Codex가 읽어야 하는 범위가 좁아지기 때문입니다.
- 터미널(CLI)을 써본 적이 있다면, 특정 폴더에서 명령어를 실행하는 것과 같은 감각입니다. 써본 적이 없어도 전혀 문제없습니다.
실전 시나리오
실제로 어떤 상황에서 프로젝트와 멀티태스킹을 활용하는지, 구체적인 예시로 살펴보겠습니다.
여러분이 웹사이트를 만들고 있다고 가정합니다. 버튼 색상을 바꾸는 디자인 작업과, 로그인이 안 되는 버그를 동시에 고쳐야 합니다.
스레드 1: "버튼 색상을 파란색에서 초록색으로 바꿔줘"
스레드 2: "로그인 버튼을 눌러도 반응이 없는 버그를 찾아서 고쳐줘"
두 작업이 동시에 진행되므로, 한 작업이 끝나길 기다리지 않아도 됩니다. 각 스레드의 결과를 따로 확인하고, 마음에 드는 것만 적용할 수 있습니다.
하나의 큰 저장소(모노레포)에 "사용자가 보는 화면(프론트엔드)"과 "서버에서 데이터를 처리하는 부분(백엔드)"이 함께 들어 있는 경우입니다.
프로젝트 A (프론트엔드 폴더): 화면 디자인, 버튼 배치 등 UI 관련 작업
프로젝트 B (백엔드 폴더): 데이터 저장, 로그인 처리 등 서버 관련 작업
이렇게 프로젝트를 나누면 Codex가 각 영역에만 집중하므로, 관련 없는 코드에 혼란을 느끼지 않고 더 정확한 답변을 해줍니다.
모노레포(Monorepo)가 뭔가요?
쉽게 말해, 여러 개의 프로그램이나 서비스를 하나의 큰 폴더에 모아둔 것입니다.
비유하자면, 회사의 모든 부서(인사, 영업, 개발, 디자인)의 문서를 하나의 거대한 캐비닛에 모아두는 것과 같습니다. 관리는 편하지만, 영업 문서를 찾으려고 할 때 인사 문서가 섞여 나올 수 있겠죠?
마찬가지로, Codex에 모노레포 전체를 프로젝트로 열면 Codex가 너무 많은 코드를 읽어서 혼란을 겪을 수 있습니다. 그래서 모노레포에서는 각 서비스별로 프로젝트를 나눠서 열어주는 것이 좋습니다.
예시: 하나의 모노레포 안에 "웹사이트", "모바일 앱", "관리자 페이지"가 있다면, Codex에서 이 세 개를 각각 별도의 프로젝트로 열어주세요.
프로젝트 접근법 비교
프로젝트를 하나로 크게 열 수도 있고, 여러 개로 나눠서 열 수도 있습니다. 어떤 차이가 있는지 비교해 보겠습니다.
| 항목 | 단일 프로젝트 (큰 폴더 하나를 통째로 열기) |
분리된 프로젝트 (역할별로 나눠서 열기) |
|---|---|---|
| Codex가 읽는 범위 | 넓음 - 폴더 안의 모든 파일을 읽음. 관련 없는 코드까지 포함됩니다. | 좁음 - 해당 역할의 파일만 읽음. 필요한 코드에만 집중합니다. |
| Codex 답변의 정확도 | 관련 없는 코드 때문에 답변이 부정확해질 수 있습니다. | 필요한 코드만 참고하므로 더 정확한 답변을 받을 수 있습니다. |
| 작업 관리 | 여러 종류의 작업이 한 곳에 섞여 관리가 어려울 수 있습니다. | 프로젝트별로 스레드를 독립 운영하여 깔끔하게 관리됩니다. |
| 처음 설정하기 | 간단합니다. 폴더 하나만 열면 됩니다. | 처음에 폴더를 나눠서 열어야 하므로 한 단계가 더 필요합니다. |
| 이런 경우에 추천 | 파일이 적은 소규모 프로젝트, 기능이 하나인 단순한 프로젝트 | 파일이 많은 대규모 프로젝트, 여러 서비스가 섞인 모노레포 |
실전 팁: 모노레포 분리 전략
문서 사이트, 백엔드(서버), 디자인 시스템이 섞인 모노레포라면 프로젝트를 나눠 열어야 Codex가 덜 헷갈립니다. 각 프로젝트가 독립적인 작업 공간(sandbox)을 갖게 되어, Codex가 해당 영역의 코드에만 집중할 수 있습니다.
성격이 다른 작업은 스레드를 분리하세요. 예를 들어 "코드 정리" 스레드와 "버그 수정" 스레드를 따로 만들면, Codex가 두 작업의 맥락을 혼동하지 않아 더 정확한 결과를 줍니다.
CLI(Command Line Interface)는 마우스 대신 글자를 입력해서 컴퓨터를 조작하는 방식입니다. CLI를 써본 적이 있다면 "특정 폴더에서 명령어 실행하기"와 같은 감각이지만, 써본 적 없어도 Codex App은 마우스 클릭만으로 프로젝트를 열 수 있으니 걱정하지 마세요.
워크플로 흐름
Codex에서 프로젝트를 열고 작업하는 기본적인 순서입니다. 4단계만 기억하세요.
작업할 코드가 있는 폴더를 Codex에 등록합니다. "이 폴더를 봐줘"라고 알려주는 단계입니다.
새 대화창을 엽니다. "버그 수정", "기능 추가" 등 목적에 맞는 이름을 붙이면 관리가 쉬워집니다.
여러 스레드에서 동시에 다른 작업을 진행합니다. Codex가 각 스레드에서 독립적으로 일합니다.
각 스레드의 작업 결과를 확인하고 비교합니다. 마음에 드는 결과만 선택해서 적용할 수 있습니다.
자주 묻는 질문 (FAQ)
A: 일반적으로 크게 느려지지 않습니다. Codex의 실제 작업은 클라우드(원격 서버)에서 처리되기 때문에, 여러분의 컴퓨터에는 큰 부담이 가지 않습니다. 다만 인터넷 연결이 불안정하면 여러 스레드의 응답이 느려질 수 있습니다.
A: 정해진 제한 수는 사용 요금제에 따라 다를 수 있습니다. 실무에서는 보통 2~5개의 스레드를 동시에 운영하는 것이 관리하기 편합니다. 너무 많은 스레드를 열면 결과를 확인하고 관리하기 어려워질 수 있으니, 적절한 수를 유지하는 것이 좋습니다.
A: 네, 가능합니다. 같은 코드 저장소(Git 저장소)를 여러 사람이 각자 Codex에서 프로젝트로 열어 작업할 수 있습니다. 다만 각자의 Codex는 독립적으로 동작하므로, 변경 사항을 합칠 때는 Git을 통해 조율해야 합니다.
A: 걱정하지 마세요. 프로젝트를 닫고 올바른 폴더로 다시 열면 됩니다. 잘못된 프로젝트를 열었다고 해서 파일이 삭제되거나 손상되는 일은 없습니다. Codex는 기본적으로 여러분이 승인하기 전까지 파일을 변경하지 않으므로 안전합니다.
A: 네, 전혀 문제없습니다. Codex App은 GUI(마우스로 클릭하는 화면)로 되어 있어서 CLI(글자만 입력하는 검은 화면)를 몰라도 사용할 수 있습니다. 이 가이드에서도 CLI 지식 없이 따라할 수 있도록 설명하고 있습니다.
생산성 향상 팁
프로젝트와 멀티태스킹을 잘 활용하면 작업 속도를 크게 높일 수 있습니다. 바로 적용할 수 있는 구체적인 팁을 소개합니다.
- 스레드 이름을 명확하게 지으세요. "버그-로그인실패-수정", "기능-다크모드-추가"처럼 구체적인 이름을 붙이면 나중에 어떤 스레드에서 무슨 작업을 했는지 한눈에 파악할 수 있습니다.
- 한 스레드에는 한 가지 작업만 맡기세요. "버그 수정하면서 새 기능도 추가해줘"보다는 각각 별도 스레드에서 요청하면 Codex가 훨씬 정확하게 작업합니다.
- 대기 시간에 다른 스레드를 활용하세요. Codex가 한 스레드에서 작업 중일 때, 다른 스레드에서 새 요청을 보내면 시간 낭비 없이 여러 작업을 진행할 수 있습니다.
- 비슷한 작업은 같은 스레드에서 이어가세요. "로그인 버그 수정" 후 "로그인 화면 디자인 개선"처럼 연관된 작업은 같은 스레드에서 이어가면 Codex가 앞선 맥락을 기억해 더 좋은 결과를 줍니다.
- 프로젝트 폴더는 가능한 한 작게 유지하세요. 꼭 필요한 코드만 포함된 폴더를 프로젝트로 열면 Codex가 불필요한 파일을 읽지 않아 응답이 빠르고 정확해집니다.
다음 단계
프로젝트와 멀티태스킹의 개념을 이해했다면, 이제 Codex의 더 강력한 기능들을 배워보세요.
- 3. Review Pane - Codex가 변경한 코드를 검토하고 승인/거부하는 방법을 배웁니다. 코드를 직접 확인하고 안전하게 적용하는 핵심 기능입니다.
- 4. Worktree - 같은 프로젝트의 여러 버전을 동시에 작업하는 고급 기능입니다. 원본을 건드리지 않고 안전하게 실험할 수 있습니다.
- 6. Automations - 반복 작업을 자동화하여 생산성을 극대화하는 방법을 알아봅니다.
스레드 실행 모드 3가지 (Local / Worktree / Cloud)
공식 features 문서는 스레드 실행 모드를 3가지로 정의합니다. 작업 성격에 맞게 선택할 수 있습니다.
데스크톱 앱에서 자주 쓰는 기능
아래 기능들은 데스크톱 앱에서 특히 빛을 발합니다. 일부(Memories, Chats)는 ChatGPT 계정 단위 기능이라 다른 진입점에서도 사용 가능하며, Computer Use는 macOS 데스크톱 전용입니다.
- Computer Use (macOS 데스크톱 전용) — 화면을 보고 마우스/키보드를 조작해 다른 앱과 협업. macOS Privacy & Security에서 Screen Recording / Accessibility 권한이 필요합니다. (자세한 사용법은 아래 Computer Use 섹션)
- Image Generation —
gpt-image-2기반 이미지 생성/편집. 자연어로 요청하거나 프롬프트에$imagegen을 포함해 명시적으로 호출할 수 있습니다. - In-app Browser — 앱 안에서 웹페이지를 열고 캡처/주석 추가.
Cmd+Shift+B(Mac) /Ctrl+Shift+B(Windows)로 열 수 있으며, 페이지 콘텐츠는 신뢰할 수 없는 컨텍스트로 취급됩니다. (자세한 사용법은 아래 In-app Browser 섹션) - Voice Dictation —
Hold Ctrl+M(push-to-talk). 키를 누르고 있는 동안만 음성이 전사됩니다. - Floating Pop-out Window (
Cmd+Shift+O) — 활성 스레드를 별도 창으로 떼어내 다른 앱 옆에서 모니터링합니다. "stay on top" 옵션은 토글이므로 항상 켜져 있지는 않고 필요할 때만 활성화하세요. 활용: 프론트엔드 작업 중 브라우저/디자인 툴 옆에 두고 Codex 진행 상황을 동시에 확인. - IDE Extension 자동 동기화 — VS Code/Cursor/Windsurf/JetBrains에 Codex IDE Extension이 설치되어 있고 Codex 앱과 같은 프로젝트를 열면 자동으로 동기화됩니다. Composer에
IDE context옵션이 노출되며, "Auto context"를 켜면 IDE에서 지금 보고 있는 파일을 매 메시지마다 자동으로 컨텍스트로 첨부합니다. - Codex Pets — Composer에
/pet을 입력하거나 Settings → Appearance → Pets에서 Wake Pet/Tuck Away Pet으로 켜고 끄는 애니메이션 컴패니언입니다. 스레드 진행 상태를 작은 오버레이로 표시해 다른 작업을 하면서도 진행 상황을 곁눈으로 확인할 수 있습니다. 직접 디자인하려면$hatch-petskill을 설치하세요. - Memories — ChatGPT 계정 단위로 저장되는 장기 컨텍스트(앱 전용 아님). 모든 스레드에서 참조됩니다.
- Chats — 프로젝트 폴더가 필요 없는 작업을 위한 project-independent threads(앱 전용 아님).
In-app Browser — 앱 안에서 웹페이지를 함께 보기
In-app Browser는 Codex 앱 안에 내장된 미니 브라우저로, "현재 작업 중인 프론트엔드/페이지를 Codex와 같은 화면에서 함께 보기" 위해 만들어졌습니다. 공식 정의는 "a shared view of rendered web pages inside a thread"입니다 — 따로 Chrome을 열고 스크린샷을 붙여넣을 필요 없이 같은 스레드에서 즉시 확인합니다.
여는 방법
- 키보드 단축키 —
Cmd+Shift+B(Mac) /Ctrl+Shift+B(Windows) - Codex 응답에 포함된 URL 클릭 시 자동으로 In-app Browser에서 열림
- 툴바의 브라우저 아이콘 클릭, 또는 주소 직접 입력
Comment 모드 — 시각 피드백을 정확하게 남기기
"이 빨간 버튼이 너무 오른쪽으로 치우쳤어"같은 시각 피드백을 글로 설명하기 어려울 때 쓰는 모드입니다. 페이지 위에 사각형을 그리고 코멘트를 달면, 좌표·DOM 컨텍스트가 함께 Codex에게 전달됩니다.
- Shift + 클릭 — 코멘트할 영역을 사각형으로 선택
- Cmd + 클릭 — 영역 선택 없이 코멘트를 즉시 전송
사이트 허용 목록 (Allow / Block list)
Settings → Browser use에서 어떤 도메인을 In-app Browser가 열 수 있는지 제어합니다. 허용 목록을 좁히면 Codex가 의도치 않은 페이지를 따라 들어가는 것을 막을 수 있습니다 (특히 자동화/Computer Use와 결합할 때 유용).
Computer Use와의 결합
Browser plugin이 활성화돼 있으면 Codex가 In-app Browser를 직접 조작할 수 있습니다 — "click, type, inspect rendered state, take screenshots, or verify a fix in the page". 이 자동 조작은 In-app Browser 안에서만 허용되며, 시스템 전체의 Chrome/Safari를 만지지 않습니다.
공식 안내: "Treat page content as untrusted context. Don't paste secrets into browser flows."
브라우저로 열어 본 페이지의 텍스트·DOM은 모델에게는 사용자 입력처럼 보일 수 있어 prompt-injection 위험이 있습니다. 비밀번호·토큰·고객 데이터는 In-app Browser에 절대 입력하지 마세요.
미지원 항목 (공식 안내)
- 로그인 플로(Authentication flows), 로그인된 페이지
- 일반 브라우저 프로필·쿠키·확장(extensions)
- 기존에 열려 있던 브라우저 탭 재사용
로그인이 필요한 페이지를 봐야 한다면, 로그인 없이 접근 가능한 staging URL이나 미리보기 링크를 사용하거나, Computer Use로 외부 브라우저에서 본 결과를 캡처해 넘기는 방식이 안전합니다.
Computer Use — Codex가 다른 앱을 조작
Computer Use는 Codex가 화면을 보고 마우스·키보드를 조작해 macOS의 다른 앱과 협업하는 기능입니다 (현재 macOS 데스크톱 앱 전용). "다른 앱의 GUI를 거쳐야만 가능한 작업"을 자동화할 때 유용합니다 — 예: Figma에서 시안 보기, Notion 페이지에 결과 붙여넣기, 디자인 도구의 export 동작.
필요한 macOS 권한
처음 시작할 때 macOS가 두 가지 권한을 요구합니다. 시스템 설정 → 개인정보 보호 및 보안에서 Codex에 부여하세요.
- Screen Recording (화면 기록) — Codex가 무엇을 클릭할지 보기 위해 화면을 캡처합니다.
- Accessibility (손쉬운 사용) — 마우스 이동·클릭·키 입력을 시스템에 보내기 위해 필요합니다.
앱 단위 승인 — "Always allow" 정책
기본적으로 새로운 앱을 처음 조작할 때마다 Codex가 사용자에게 승인을 묻습니다. 자주 조작하는 앱은 Settings → Computer Use에서 "Always allow" 목록에 등록해 매번 묻지 않게 할 수 있습니다. 신뢰하는 도구만 등록하세요 — 한 번 등록하면 같은 세션에서 반복 동작이 빠르게 진행됩니다.
자동 조작이 불가능한 영역 (안전 장치)
- 터미널 앱 자체는 조작할 수 없습니다 — 셸 명령은 Codex의 일반 셸 도구(승인 정책 적용)로 실행해야 합니다.
- Codex 앱 자체도 조작할 수 없습니다 — 자기 자신을 클릭해 무한 루프를 만드는 것을 막습니다.
- 관리자 비밀번호·시스템 보안 프롬프트가 떠오르면 Codex가 자동 입력하지 않고 사용자 확인을 기다립니다.
In-app Browser와의 차이
- In-app Browser + Browser plugin — 앱 안에 내장된 브라우저만 조작. 시스템 안전.
- Computer Use — 외부 macOS 앱(브라우저 포함) 전체를 조작. 권한 요구가 더 큼.
- 중요한 작업 중에 켜지 마세요 — 마우스 포인터를 Codex가 가져갑니다.
- 비밀 정보가 화면에 노출돼 있으면 캡처에 포함됩니다 — 보안 채팅·1Password 창은 닫고 시작하세요.
- 자동화의 결과는 Triage(또는 본 가이드의 Inbox)에 남습니다 — 작업 완료 후 반드시 확인하세요.
장점 / 단점 / 한계점
✅ 장점
- 여러 프로젝트를 동시에 등록하고 전환 가능
- 멀티 스레드로 여러 작업을 병렬 처리
- 프로젝트별 독립된 컨텍스트 유지
- 이전 작업 히스토리 자동 보존
❌ 단점
- 프로젝트 수가 많아지면 관리가 복잡해질 수 있음
- 대용량 모노레포에서는 인덱싱 시간이 길어짐
- 프로젝트 간 코드 공유나 참조가 불가능
⚠️ 한계점
- 한 프로젝트 내에서만 파일 접근 가능 (크로스 프로젝트 작업 불가)
- 비공개 저장소는 GitHub 연동이 추가로 필요
- 동시 실행 스레드 수에 구독 플랜별 제한 존재
공식 출처
-
Codex app features
developers.openai.com -
OpenAI Codex 소개
openai.com