기본 패턴
text
나누는 기준
- 프로젝트: 작업 범위와 sandbox 경계
- 스레드: 하나의 목표와 대화 흐름
- Worktree: 같은 프로젝트 안 병렬 구현
추천 운영
- 저장소가 다르면 별도 프로젝트
- monorepo라도 앱이나 패키지 경계가 다르면 별도 프로젝트
- 같은 코드베이스 안의 다른 목표는 별도 스레드설명
- Codex app에서 프로젝트는 "이 디렉터리 안에서 작업한다"는 작업 범위이자 sandbox 경계입니다. CLI에서 특정 디렉터리에서 세션을 시작하는 감각과 비슷합니다.
- 스레드는 그 프로젝트 안에서 하나의 목표를 수행하는 작업 단위입니다. 버그 수정, 문서화, 리팩터링처럼 목표가 다르면 스레드를 나누는 편이 대화와 diff를 추적하기 쉽습니다.
- 공식 문서는 monorepo에서도 성격이 다른 앱이나 패키지를 별도 프로젝트로 여는 방식을 권합니다. 그래야 sandbox가 필요한 파일만 포함하고, 컨텍스트도 더 좁고 정확하게 유지됩니다.
- 같은 프로젝트 안에서 서로 독립적인 구현을 동시에 돌리고 싶다면 새 프로젝트를 만드는 대신 Worktree 스레드를 추가하는 편이 자연스럽습니다.
짧은 예제
text
monorepo 예시
- apps/web 수정: web 프로젝트
- apps/api 성능 점검: api 프로젝트
- 같은 web 코드베이스에서 두 접근을 병렬 실험: web 프로젝트 안에서 스레드 2개 또는 Worktree 2개빠른 정리
| 구분 | 역할 |
|---|---|
| 프로젝트 | 작업 디렉터리와 sandbox 범위 |
| 스레드 | 하나의 목표에 대한 대화와 변경 흐름 |
| Worktree | 같은 프로젝트 안의 격리된 병렬 작업 |
| 프로젝트 분리 | monorepo에서 앱이나 패키지 경계가 뚜렷할 때 |
주의할 점
프로젝트를 너무 크게 잡으면 sandbox 범위가 넓어지고, 간접 컨텍스트도 함께 넓어집니다. monorepo에서는 "저장소 하나 = 프로젝트 하나"로 고정하지 말고 실제 작업 단위로 나누는 편이 더 안정적입니다.
참고 링크
2 sources