1편에서 Codex Mobile 설치와 연결을 마쳤다면, 이제 진짜 쓸모 있는 부분이다. Hooks는 에이전트 라이프사이클의 특정 시점에 자동 실행되는 규칙이고, Goal Mode는 목표 하나를 주면 달성될 때까지 멈추지 않는 자율 루프다. 이 두 기능을 Mobile과 결합하면 "내가 자는 동안 Codex가 일하고, 판단이 필요할 때만 폰으로 깨운다"는 워크플로우가 완성된다.
핵심 요약
→ Hooks는 도구 사용 전후, 프롬프트 제출 시, 세션 종료 시 등 Codex 워크플로우의 특정 이벤트에서 실행되는 라이프사이클 자동화 스크립트 — 검증·로깅·시크릿 스캔·커스텀 메모리 추가 가능
→ Goal Mode는 2026년 5월 21일 Codex 앱·IDE 익스텐션·CLI 전체에서 GA(정식 출시) — Appshots·Locked Computer Use와 함께 배포
→ /goal 명령어로 고수준 목표를 지정하면 Codex가 계획→실행→테스트→검토→반복 루프를 목표 달성까지 자율 실행
→ Locked Computer Use — Mac이 잠긴 상태에서도 Codex가 데스크탑 앱 조작 가능 → Codex Mobile로 원격 모니터링하며 Mac 슬립 걱정 없이 장시간 실행
→ 기본 알림 설정: 태스크 완료 또는 승인 필요 시 앱이 백그라운드에 있을 때 알림 발송 — 항상 발송·발송 안 함으로 설정 변경 가능
→ Goal Mode는 Free 플랜도 사용 가능, 단 장시간 지속 실행은 Pro·Business·Enterprise에서 세션 한도가 더 높음
→ 실전 조합: Goal Mode(목표 설정) + Hooks(자동 승인 규칙) + Mobile(판단 필요할 때만 폰 알림) = 진짜 비동기 에이전트 루프
1. Hooks — 에이전트를 신뢰 가능하게 만드는 레이어
Hooks는 에이전트를 단순 유능한 코딩 어시스턴트에서 규제 환경에서도 신뢰할 수 있는 도구로 바꿔준다.
Hooks 이벤트 종류
# Codex Hooks 이벤트 목록
PreToolUse → 도구(파일 편집·커맨드 실행) 호출 직전
→ 위험 커맨드 차단, 시크릿 스캔
PostToolUse → 도구 호출 완료 직후
→ 결과 로깅, 포맷팅 자동 실행
UserPromptSubmit → 사용자 프롬프트 제출 시
→ 컨텍스트 주입, 입력 검증
SessionStart → 세션 시작 시
→ 프로젝트 컨벤션 자동 주입
SessionStop → 세션 종료 시
→ 요약 저장, 슬랙 알림 발송
Notification → Codex가 알림 발송할 때
→ 커스텀 알림 채널로 라우팅
Hooks 설정 파일 구조
# ~/.codex/config.toml (사용자 전체 적용)
# 또는 프로젝트/.codex/config.toml (프로젝트 단위 적용)
[[hooks]]
event = "PreToolUse"
script = "~/.codex/hooks/secret-scan.sh"
# → 커맨드 실행 전 시크릿 유출 체크
[[hooks]]
event = "PostToolUse"
script = "~/.codex/hooks/auto-format.sh"
# → 파일 편집 후 자동 포맷팅
[[hooks]]
event = "SessionStop"
script = "~/.codex/hooks/slack-notify.sh"
# → 작업 완료 시 슬랙 알림
Hook 스크립트 — 실전 예시 3가지
예시 1 — 시크릿 스캔 (PreToolUse)
#!/bin/bash
# ~/.codex/hooks/secret-scan.sh
# 도구 실행 전 커맨드에 시크릿이 포함됐는지 검사
TOOL_INPUT="$1" # Codex가 실행하려는 커맨드
# AWS 키 패턴 감지
if echo "$TOOL_INPUT" | grep -qE 'AKIA[0-9A-Z]{16}'; then
echo "AWS 키가 커맨드에 노출됨 — 환경 변수 사용 필요" >&2
exit 2 # exit 2 = 실행 차단 + Codex에 피드백 전달
fi
# .env 파일 외부 복사 시도 감지
if echo "$TOOL_INPUT" | grep -qE 'cp.*\.env'; then
echo ".env 파일 복사 차단됨" >&2
exit 2
fi
exit 0 # exit 0 = 정상 통과
예시 2 — 자동 포맷팅 (PostToolUse)
#!/bin/bash
# ~/.codex/hooks/auto-format.sh
# TypeScript 파일 편집 후 자동 prettier 실행
CHANGED_FILE="$1"
if [[ "$CHANGED_FILE" == *.ts || "$CHANGED_FILE" == *.tsx ]]; then
npx prettier --write "$CHANGED_FILE" 2>/dev/null
echo "✅ Prettier 자동 적용: $CHANGED_FILE"
fi
exit 0
예시 3 — 세션 완료 시 슬랙·모바일 알림 (SessionStop)
#!/bin/bash
# ~/.codex/hooks/notify-complete.sh
# 작업 완료 시 슬랙 + 폰 푸시 알림
TASK_SUMMARY="$1"
SLACK_WEBHOOK="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
# 슬랙 알림
curl -s -X POST "$SLACK_WEBHOOK" \
-H 'Content-type: application/json' \
-d "{\"text\": \"🤖 Codex 작업 완료\n$TASK_SUMMARY\"}"
# Codex Mobile 알림은 자동으로 오기 때문에 별도 설정 불필요
# 슬랙은 팀 공유용 추가 채널로 활용
exit 0
2. 승인 레벨 설정 — 폰 알림 빈도 조절
Auto 프리셋(--sandbox workspace-write --ask-for-approval on-request)에서 Codex는 워크스페이스 내 파일 읽기·편집·커맨드 실행을 자동으로 처리 — 워크스페이스 외부 파일 편집이나 네트워크 접근이 필요한 커맨드에서만 승인을 요청한다.
# 승인 레벨 4단계 — 폰 알림 빈도와 직결
1. suggest (가장 안전)
→ 모든 변경사항을 제안만, 실행은 사람이 승인
→ 폰 알림 빈도: 매우 높음
→ 적합: 처음 사용하거나 중요 프로덕션 코드
2. auto-edit (권장 시작점)
→ 파일 편집 자동, 커맨드 실행은 승인 필요
→ 폰 알림 빈도: 중간
→ 적합: 일반 개발 작업
3. on-request (Auto 프리셋)
→ 워크스페이스 내 모든 작업 자동, 외부/네트워크만 승인
→ 폰 알림 빈도: 낮음
→ 적합: 신뢰된 프로젝트의 장시간 에이전트
4. never (완전 자율)
→ 승인 없이 모든 작업 실행
→ 폰 알림 빈도: 완료 시에만
→ ⚠️ 주의: 프로덕션 환경엔 비권장
# CLI에서 승인 레벨 설정
codex --approval auto-edit # 편집 자동, 커맨드 승인
codex --approval on-request # Auto 프리셋
codex --approval never # 완전 자율 (주의)
# 실행 중 변경
/permissions # 현재 권한 확인 및 변경
3. Goal Mode — 목표 달성까지 멈추지 않는 루프
Goal Mode는 사용자가 영속적인 목표를 설정하고 Codex가 수 시간 또는 수 일에 걸쳐 자율적으로 달성하도록 하는 기능 — 목표가 달성되거나 사용자가 중단을 선택할 때까지 계속 실행된다.
Goal Mode 시작
# Codex 앱 또는 CLI에서
/goal 이 Python 프로젝트를 Pydantic v1에서 v2로 마이그레이션하고
모든 테스트가 통과할 때까지 계속 수정해줘
# CLI에서
codex
> /goal src/api 디렉터리의 모든 API 엔드포인트에
입력 검증 로직 추가하고 테스트 커버리지 80% 이상 확보해줘
Goal Mode 내부 루프
# Codex Goal Mode 실행 흐름
/goal 명령 입력
↓
[계획 단계]
Codex: 목표 분석 → 하위 태스크 목록 생성
1. 현재 Pydantic v1 사용 패턴 파악
2. v2 호환 코드로 변환
3. 테스트 실행
4. 실패 시 수정 반복
↓
[실행 단계] ← 자율 루프 시작
파일 분석 → 편집 → 테스트 실행
↓
테스트 실패
↓
원인 파악 → 수정 → 재테스트 ← 자동 반복
↓
모든 테스트 통과
↓
[목표 달성] → 폰 알림 발송
Goal Mode + Mobile 조합 실전
# 시나리오: 금요일 오후 퇴근 전 Goal 설정
# 1. Mac에서 Goal 시작
/goal 이번 스프린트 백로그의 3개 이슈 (#234, #241, #258) 처리해줘
각 이슈마다 구현 → 테스트 → 커밋까지 완료
# 2. 퇴근 (Mac은 계속 실행)
→ Codex가 이슈 234 처리 시작
# 3. 저녁 폰 알림
"이슈 #234 완료. #241 진행 중 — 승인 필요"
→ 폰에서 diff 확인 → 승인 탭
# 4. 다음 날 아침 알림
"3개 이슈 모두 완료. 총 47개 파일 수정, 테스트 112개 통과"
→ 출근 전 PR 리뷰만 하면 됨
4. Locked Computer Use + Goal Mode — 완전 방치 실행
Locked Computer Use는 Mac이 잠긴 상태에서도 Codex가 데스크탑 앱을 조작할 수 있게 하는 기능 — Goal Mode와 결합하면 Mac 화면이 꺼져도 에이전트가 계속 실행된다.
# Locked Computer Use 활성화
Codex 앱 → Settings → Connections → "Computer Use" 활성화
→ "Allow when locked" 옵션 체크
# 설정 후 워크플로우
1. Goal 설정 + Locked Computer Use 활성화
2. Mac 화면 잠금 (슬립 방지는 유지)
3. Codex가 잠긴 Mac에서 계속 실행
4. 승인 필요 시 폰 알림 → 폰에서 처리
5. 완전히 자리 비워도 에이전트 작동
⚠️ 보안 주의사항
→ 지역 제약 있음 (일부 국가/워크스페이스 정책에서 제한)
→ 프로덕션 DB·결제 시스템 접근이 있는 환경엔 신중하게
→ Hooks의 PreToolUse 스캔과 함께 사용 권장
→ 샌드박스 설정으로 접근 가능한 디렉터리 제한
5. 알림 최적화 — 폰 알림 피로 없애기
# Mac Codex 앱 알림 설정
Settings → Notifications
├── "When task completes" → ✅ (완료 시 항상 알림)
├── "When approval needed" → ✅ (승인 필요 시 항상 알림)
├── "When app is in focus" → 선택 (Mac 앞에 있을 때도 알림?)
└── Never → ❌ (모바일 연동 의미 없어짐)
# 승인 레벨로 알림 빈도 조절
→ on-request 프리셋: 외부 접근 시에만 알림 (권장)
→ auto-edit: 모든 커맨드마다 알림 (초반에 에이전트 파악할 때 유용)
# 특정 패턴 커맨드 자동 승인 Hook으로 구현
# ~/.codex/hooks/auto-approve-safe.sh
# 안전한 커맨드는 Hook에서 자동 통과 → 폰 알림 안 옴
COMMAND="$1"
# npm test, pytest, cargo test는 자동 통과
if echo "$COMMAND" | grep -qE '^(npm test|pytest|cargo test|go test)'; then
exit 0 # 자동 승인
fi
# git add, git commit은 자동 통과
if echo "$COMMAND" | grep -qE '^git (add|commit|diff|log|status)'; then
exit 0
fi
# 나머지는 승인 요청 (폰 알림)
exit 1 # exit 1 = 기본 승인 흐름 유지
6. 실전 추천 설정 조합
# 입문 (에이전트 처음 쓰는 경우)
승인 레벨: auto-edit (파일 편집 자동, 커맨드 승인)
Goal Mode: 짧은 목표부터 (한 파일 리팩토링 수준)
Hooks: 없음 (일단 흐름 파악 먼저)
알림: 승인 필요 + 완료 시
# 중급 (신뢰된 프로젝트)
승인 레벨: on-request (워크스페이스 내 자율)
Goal Mode: 이슈 단위 목표
Hooks: 시크릿 스캔 + 포맷팅
알림: 완료 + 외부 접근 시만
# 고급 (장시간 배치 작업)
승인 레벨: on-request + 안전 커맨드 자동 승인 Hook
Goal Mode: 멀티 이슈 목표 + Locked Computer Use
Hooks: 스캔 + 포맷팅 + 슬랙 알림
알림: 완료 시만 (승인은 Hook이 처리)
✅ 결론
✅ Hooks — 에이전트를 규칙 안에 가두는 가드레일, 프로덕션 환경에서 신뢰성 확보의 핵심
✅ Goal Mode — 목표 달성까지 자율 루프, Mobile과 결합 시 진짜 비동기 개발 워크플로우 완성
✅ Locked Computer Use — Mac 화면 꺼져도 에이전트 실행, 장시간 배치 작업의 필수 설정
✅ 승인 레벨 + Hook 조합 — 폰 알림 빈도를 정밀하게 조절 가능
❌ Goal Mode Free 플랜은 세션 한도로 장시간 실행 제한
❌ Locked Computer Use는 지역·워크스페이스 정책 제약 있음
❌ Hook 스크립트 실수로 모든 커맨드 차단될 수 있음 — 처음엔 exit 0 기본값으로 시작 권장
관련 글
'GPT' 카테고리의 다른 글
| GitHub Copilot 기본 모델이 바뀌었다 — GPT-5.3-Codex 전환, 진짜 중요한 건 모델이 아니다 (0) | 2026.05.28 |
|---|---|
| Codex Mobile 3편: vs Claude Code Remote Control — 비동기 에이전트 제어 도구 완전 비교 (0) | 2026.05.27 |
| Codex Mobile 개념과 설치 완전 가이드 1편: 폰으로 AI 코딩 에이전트를 원격 조종한다 (0) | 2026.05.27 |
| GitHub Copilot이 6월 1일부터 완전히 달라집니다 — AI Credit 과금 전환 완벽 분석 (0) | 2026.05.26 |
| GPT-5.5 Instant 완전 분석 — ChatGPT 기본 모델 교체, 오늘부터 무료 사용자도 웹 이미지 인라인 표시 (0) | 2026.05.21 |