
AI 자율학습 클로드 코드·코덱스 CLI·제미나이 CLI 완전 활용법 | Dave Lee - 교보문고
AI 자율학습 클로드 코드·코덱스 CLI·제미나이 CLI 완전 활용법 | AI와 함께 일하는 법을 배우다 클로드 코드·코덱스 CLI·제미나이 CLI를 실무에서 활용하는 방법AI 코딩 도구를 처음 접하는 사람에
product.kyobobook.co.kr
|
3주차
|
11일
|
12일
|
13일
|
14일
|
15일
|
|
목차
|
7장 Codex CLI로 프로젝트 운영하기
7.2 세션 관리와 작업 이어 쓰기 기능
7.3 컨텍스트 관리와 토큰 최적화
|
8장 Codex CLI 고급 기능 활용하기
8.1 MCP 서버 연결하기
8.2 config.toml 심화 설정 가이드
8.3 세션 로그 이해하기 - 자동 기록 구조와 분석 방법
|
9장 Gemini CLI 시작하기
9.1 Gemini CLI 설치하고 인증하기
9.2 Gemini CLI 사용하기
|
9장 Gemini CLI 시작하기
9.3 명령과 실행 옵션 살펴보기
|
10장 Gemini CLI로 프로젝트 운영하기
10.1 GEMINI.md 파일 관리하기
10.2 세션 관리하기
10.3 사용자 정의 명령어 사용하기
|
7장 Codex CLI로 프로젝트 운영하기
7.1 AGENTS.md 파일 관리하기
7.1.1 AGENTS.md 위치와 적용 범위
- 프로젝트 루트 AGENTS.md - 프로젝트 기준 문서
- 서브폴더 AGENTS.md - 영역별 규칙 문서(선택)
7.1.2 AGENT.md에 포함해야 할 주요 항목
| 구분 | 내용 |
| 프로젝트 개요 | 기술 스택, 주요 기능 실행환경 |
| 개발 환경 | 설치 및 실행 명령(npm install, docker compose up 등) |
| 코딩 규칙 | ESLint/Prettier 규칙, 함수형 패턴, 변수명 규칙 등 |
| 테스트 설치 | 테스트 실행 방법, 기본 테스트 범위 |
| 리뷰 및 배포 지침 | 커밋 메시지, PR 제목 규칙, 배포 전 점검 항목 |
| 보안 및 예외 처리 | API 키, 개인정보 처리, 대용량 데이터 처리 주의 사항 |
7.1.3 /init 명령으로 AGENTS.md 초안 생성하기
- 기존 프로젝트에서 초안 생성하기
- 새 프로젝트에서 개요를 제공해 생성하기
- 프로젝트 개요를 간단히 알려준 뒤 /init 명령을 사용할 수 있음
- 자동 생성된 문서 다듬기
7.1.4 AGENTS.md 관리 원칙
- AGENTS.md는 간결하게 유지한다
- AGENTS.md와 상세 문서를 분리해 관리한다
7.1.5 AGENTS.md 템플릿 예시
7.1.6 AGENTS.md 문제 해결 가이드
- Codex가 문서의 규칙을 따르지 않는 것처럼 보일 때
- AGENTS.md 분량이 너무 길지 않은지 확인
- 중요한 규칙을 반드시 지켜야 할 규칙은 문서 상단이나 별도 섹션으로 분리
- 요청 프롬프트에서도 한 번 더 규칙을 상기시키기
- 모노레포에서 규칙 충돌이 잦을 때
- 루트 AGENTS.md에는 최소한의 공통 규칙만 유지
- 영역별 규칙은 각 폴더 AGENTS.md에서 작성
- 예외 구칙은 "이 폴더에서는 ...를 우선 적용한다."형태로 분명하게 선언
- AGENTS.md를 수정했는데 반영되지 않는 것처럼 보일 때
- 대화형 세션을 종료하고 새로 시작
- 필요하다면 새 쓰레드(/new)를 열어 작업 이어가기
- 변경된 AGENTS.md 기준으로 작업해 달라고 명시적으로 요청
7.2 세션 관리와 작업 이어 쓰기 기능
7.2.1 기억을 보관하는 방식
- 세션 안에서 작업 주제 전환하기
- 기존 기록을 삭제하지 않고, 현재 다루고 싶은 주제에 집중.
/new
- 세션 이어서 작업하는 세 가지 방법
- 최근 세션 이어가기
- codex resume --last
- codex --continue
- 세션 목록에서 직접 골라 불러오기:
- codex resume
- 세션 ID로 정확하게 불러오기
- codex resume <ID>
- 최근 세션 이어가기
- 여러 프로젝트를 오갈 때 기억 관리 방법
7.2.2 대화가 길어졌을 때 컨텍스트 최적화하기
- 대화 내용을 요약해 컨텍스트 정리하기
- /compact 최근 대화의 핵심만 남기고 이전 내용을 요약해줘
- 새로운 작업으로 흐름 시작하기
7.2.3 세션 기록 정리하기
# 최근 10개 세션 확인
ls -lt ~/.codex/sessions/*/*/*.jsonl | head -10
# 30일 이상 지난 세션 삭제
find ~/.codex/sessions -name "rollout-*.jsonl" -mtime +30 -delete
7.2.4 세션 관련 문제 해결 가이드
- resume --last 실행 후 빈 화면이 뜰때
- /status로 현재 활성화된 세션 상태를 확인
- codex resume으로 세션 목록을 열고, 원하는 세션을 다시 선택
- 세션 목록이 너무 많아 원하는 작업을 찾기 어려울 때
- 최근 작업만 이어가고 싶다면 codex resume --last 명령 활용
- 일정 주기로 ~/.codex/sessions 폴더 정리
- Codex가 대화 흐름을 충분히 반영하지 못할 때
- /compact로 이전 대화를 요약하고 컨텍스트를 정리
- 중요 결정은 AGENTS.md 또는 docs/notes.md에 문서화
- 작업 주제가 명확히 달라진 경우에는 새로운 작업 흐름으로 시작
7.3 컨텍스트 관리와 토큰 최적화
7.3.1 기억하는 정보의 구조
7.3.2 컨텍스트 점검과 최적화 루틴
- 컨텍스트를 정리하는 두 가지 도구
- /compact
- /new
- 토큰 낭비를 줄이는 다섯 가지 습관
- AGENTS.md 간결하게 유지하기
- 파일과 이미지는 필요한 만큼만 첨부하기
- 요청을 묶어서 전달하기
- 기능 단위로 세션 끊기
- 사용하지 않는 MCP 서버 끄기
7.3.3 컨텍스트를 지키면서 공유 정보를 늘리는 방법
- AGENTS.md + resume 조합
- TODO 체크리스트로 진행 상황 기록
- 이미지 + 짧은 설명 함께 제공
8장 Codex CLI 고급 기능 활용하기
8.1 MCP 서버 연결하기
8.1.1 config.toml 파일 위치 확인하기
8.1.2 MCP 서버 연결 설정하기
8.1.3 MCP 서버 연결 실습: Playwright, GitHub, Context7
- Playwright MCP 연결하기
- GitHub MCP 연결하기
- Context7 MCP 연결하기
- 현재 Codex는 Supabase MCP는 지원하지 않음
- 검색에 특화된 MCP
- React, Next.js, TypeScript, Python 등 주요 기술 문서를 로컬 또는 서버에 인덱싱해 Codex에 제공하는 MCP 서버.
8.2 config.toml 심화 설정 가이드
8.2.1 config.toml의 전체 구조 이해하기
8.2.2 자주 사용하는 핵심 설정 항목
- model - 기본 AI 모델 지정
- model_reasoning_effort - 사고 깊이 조절
- approval_policy - 명령 실행 전 승인 방식
- sandbox_mode - 파일 접근 범위 제한
- shell_environment_policy - 환경 변수 접근 제어
8.2.3 Codex의 설정 우선순위와 환경 변수 활용
- 설정 적용 우선순위
- 명령줄 플래그로 일시적 설정 변경하기
- 환경 변수로 세션 단위 설정 변경하기
8.3 세션 로그 이해하기 - 자동 기록 구조와 분석 방법
8.3.1 세션 로그의 저장 위치와 관리 방식
8.3.2 로그 파일 구조와 주요 필드
8.3.3 세션 복원 원리와 자동 요약 구조
Part 4 Gemini CLI 완전 정복: 초대형 컨텍스트와 확장성으로 여는 차세대 개발 환경
9장 Gemini CLI 시작하기
9.1 Gemini CLI 설치하고 인증하기
9.1.1 Node.js 버전 확인하기
node --version
npm --version
9.1.2 Gemini CLI 설치하기
npm install -g @google/gemini-cli
macOS/Linux에서 Homebrew 사용시
brew install gemini-cli
Homebrew 환경에서는 업데이트나 제거가 간편. 다음 명령으로 최신 버전을 유지할 수 있음
brew update && brew upgrade gemini-cli
설치 완료 확인
gemini --version
9.1.3 실행하고 인증하기
- 실습용 폴더 만들고 실행하기
- 인증하기
9.1.4 Gemini CLI 설치 문제 해결 가이드
9.2 Gemini CLI 사용하기
9.2.1 Gemini CLI 기본 사용법
- 명령 실행 방식
- 기본 대화하기
- 여러 줄 입력하기
- 줄바꿈: Ctrl+J
- 단축키 익히기
- 다른 폴더 포함하기
9.2.2 세션 관리하기
- 세션 종료와 재시작
- 이미지 참조하기
- 비대화형 모드로 일회성 작업 실행하기
- 파일 참조하기: @
9.2.3 Gemini CLI 사용 문제 해결 가이드
9.3 명령과 실행 옵션 살펴보기
9.3.1 CLI 진입 명령
- 기본 대화영 모드: gemini
- 원샷 모드: gemini [query...]
- 원샷 후 대화형 전환: gemini -i [query]
9.3.2 자주 사용하는 실행 옵션
- 디버그 모드: -d, --debug
- 샌드박스 모드: -s, --sandbox
- YOLO 모드: -y, --yolo
- 승인 모드 설정: --approval-mode <모드>
- 도구 실행 권한 제어: --allowed-tools <도구명>
- 워크스페이스 확장: --include-directories <경로>
9.3.3 환경 관련 옵션
- 확장 목록 확인: -l, --list-extensions
- 스크린 리더 모드: --screen-reader
- 출력 형식 지정: -o, --output-format <text|json|md>
- 버전 확인: -v, --version
- 도움말: -h, --help
9.3.4 주요 슬래시 명령어
- 워크스페이스 확장: /directory
- 메모리 관리: /memory
- 세션 진단: /stats
- 환경 커스터마이징: /setting, /theme, /editor, /vim
- 컨텍스트 최적화: /compress
10장 Gemini CLI로 프로젝트 운영하기
10.1 GEMINI.md 파일 관리하기
10.1.1 GEMINI.md의 위치화 활용 범위
- 프로젝트 루트 GEMIN.md - 프로젝트 컨텍스트 문서
- 서브폴더 GEMINI.md - 선택적 참고 문서
10.1.2 GEMINI.md 작성 방식과 기본 구조
10.1.3 GEMINI.md 작성 팁
- 기본 문서부터 작성하기
- 문서 다듬기 요청 활용하기
- 사용자 검토 및 직접 수정하기
- 실전 대화에서 효과 확인하기
10.1.4 GEMINI.md 반영 상태 점검과 컨텍스트 관리
- 작업 요청에서 컨텍스트를 분명히 전달하기
- GEMINI.md 반영 여부는 작업 결과로 확인하기
- 문서 변경 시 자동 재적용을 기대하지 않기
- 컨텍스트 문서를 주기적으로 점검하기
10.2 세션 관리하기
10.2.1 세션 저장하고 복원하기
- 세션 상태 지정: /chat save <이름>
- 저장된 세션 목록 확인: /chat list
- 세션 복원: /chat resume <이름>
- 세션 삭제: /chat delete <이름>
- 대화 내용 내보내기: /chat share <파일명>
- 긴급 복구: /restore
10.2.2 실전 활용 시나리오
- 안전한 대규모 리팩터링
#1. 리팩터링 시작 전 안전 지점 저장
/chat save pre-refactor
#2. AI에 대규모 변경 요청
@src/ 전체 폴더 구조를 디자인 패턴에 맞게 개선해줘
#3. 테스트 실행(실패 가정)
!npm test
#4. 테스트 실패 시 즉시 이전 상태로 복구
/chat resume pre-refactor
#5. (재시도 후) 성공 시 최종 상태 저장 및 문서화
/chat save refactor-complete
/chat share refactor-summary.md
- 여러 접근 방식 비교 (A/B 테스트)
#1. 기준점 저장
/chat save baseline
#2. 첫 번째 방식(접근 A) 시도 및 저장
성능 최적화 위주로 코드를 고쳐줘.
/chat save approache_performance
#3. 기준점 복구
/chat resume baseline
#4. 두 번째 방식(접근 B) 시도 및 저장
가독성과 유지보수성 위주로 코드를 고쳐줘
/chat save approach_readability
#5. 두 세션을 비교해 최종 결정
10.3 사용자 정의 명령어 사용하기
10.3.1 사용자 정의 명령어의 저장 취치
- 전역 명령어
- 로컬 명령어
- 명령어 우선순위 규칙
10.3.2 사용자 정의 명령어 파일 작성법
- 네임스페이스로 묶기
- 예시 1: 코드 리뷰 명령어(기본형과 인자형)
- 기본형: 고정 프롬프트 버전
- 인자형: 가변 프롬프트({{args}} 활용)
- 예시 2: 테스트 코드 명령어(인자형)
- 예시 3: 리팩토링 명령어 묶음(네임스페이스 활용)
- 순수 함수 리팩터링 명령어 예시
- 함수 추출 명령어 예시
10.3.3 사용자 정의 명령어 문제 해결 가이드