개발 워크플로우
멀티 프로젝트·에이전트 워크스페이스 운영 전략 (ORCA, 워크트리, 협업 오너십)
왜 중요한가
ORCA 메모리 사용량 질문에서 시작해 메타레포·모노레포·워크트리 구조, 그리고 다중 에이전트 협업 시 충돌 방지 원칙까지 오후 내내 이어진 실전 논의.
깊이 보기
오후 4:04, 꿈나무/클코,코덱스,장고가 "ORCA 쓰면 좋나요?
- 메모리 많이먹는다고 하던데 32GB 는 충분할지.."라고 물었다.
- 정라잇은 "메모리", "많이잡아먹긴함니다", "편하긴한데", "시도해보실만함니다"라고 답했다.
- 춘/코덱 클코가 "어떤 면에서 편한가요?"라고 묻자 에어갭 / 클코는 "프로젝트나 워크트리 여러 개 동시에 굴릴 때 편합니다"라고 설명했다.
- 춘은 이어 자신은 "다수의 프로젝트나 워크트리를 하나의 워크스페이스용 메타 레포를 두고 굴리는데 이렇게 하는 분 계신가요?"라고 물었고, "몇달전에는 그랬고 점점 아애 그렇게 안하게 되던데.."라고 자신의 변화도 덧붙였다.
- 당당이 / 코덱스는 "그렇게 하는 이유가 있으신가요?.저는 워크트리는 거의 안쓰긴하눈데 레포만 나눠서 합니다"라고 다른 방식을 소개했다.
춘은 "그런데 오르카 메모리 1GB 먹을까 말까긴 한거 같아요"라며 실사용 메모리 사용량은 크지 않다고 덧붙였다. 오후 4:31, AI새싹이 "혹시 궁금한게 있는데 회사에 팀원이 새로 들어왔는데 이전까지는 저혼자 루프 에이전트로 돌려서 작업했었는데 협업은 어떻게들 하시고 계세요?
에이전트끼리 충돌 많이 날것같아서요."라고 새로운 질문을 던졌다. "하나의 프로젝트안에서 서로 에이전트를 돌리면 공용모듈이나 이런거 에이전트끼리 막 건들면서 충돌날것같아서요", "컨플릭나면 수정을 계속 에이전트가 하도록 해야하는건지 브랜치를 나누더라도 컨플릭이 좀 심해질것같아서요"라고 구체화했다.
춘은 "그렇다고 PR / MERGE / 배포의 절차가 있으니 상관이 없지 않나요? 개인적으로는 하네스 레포 두고, 거기에 스팩 레포, 지식 레포 두고 하는데 별 이슈는 없긴해요."라며 자신의 3레포 구조(하네스/스팩/지식)를 소개했다.
AI새싹은 "아 그런방식으로 하면 좋겠군요 감사합니다. 에이전트 사용한뒤 협업은 처음이라."며 감사를 표했다.
정라잇은 다른 관점을 제시했다. "마음은 그렇게 하고싶은데", "도메인을 AI 가 자주 빗겨가서", "그냥 모노레포 여러개로 구분지어서", "각각의 워크트리 쪼개서 병렬처리함니다"라며 모노레포+워크트리 병렬 구조를 쓴다고 밝혔다.
다만 "단점은 하드랑 CPU 램이 터질거같군여"라고 리소스 부담을 인정했다. 춘도 "모노레포로 여러개가 구분이 되어 있고, 그 작업들을 메타레포에서 해요"라며 자신의 구조를 보탰고, "맥북 바꾼지 산지 4개월인데 컴터 가열되다 멈추는게 일주일에 한두번은 있는거 같아요.", "에이전트안에 에이전트가 다수 세션으로 돌아가고, 도커 돌아가는데 앱 빌드하고 갑자기 그런작업 겹치면 터미널이 터지(?)는 현상이 종종 일어나요", "그래서 빌드는 이 pc 말고 저 pc, 리눅스는 저 pc 이런식으로 나누고 있어요."라며 실제 겪는 발열·리소스 경합 문제와 PC 분산 대응을 설명했다.
정라잇은 "홈서버까지", "오신다면", "알려드릴게많읍니다", "이 강을 건너십셔 하하하하"라며 농담으로 마무리했다. 오후 5:22, DV/Antigravity가 상세한 협업 노하우를 이어 공유했다.
"초반에 만들어두신 하네스를 팀원에게 공유해서 동일한 Context를 가져가게 만드는것도 중요하고, 모듈 단위로 오너십을 미리 나눠두는것도 중요합니다."라며, 오너십이 없으면 "이 모듈은 어떻게 설계된건가요?"라는 질문에 "이 코드 에이전트가 작성한건데요?"라는 답이 나와 협업 갈등이 생길 수 있다고 지적했다. 이어 "둘 이상일 경우 자율적으로 참여하는 데일리 스크럼을 미리 만들어두고, 혹시 타인의 코드 수정이나 설계 변경을 건드리게 되면 해당 미팅에서 논의하게 미리 캘린더를 넣어두는것도 좋아요.
이슈 있을때만 참석하면 되는 옵셔널 미팅으로요!"라며 부담 적은 협업 방식을 제안했다. "각자가 셋 이상의 에이전트를 이끄는 소규모 팀이 되어버리기 때문에 미리 공통의 약속을 정해두지 않으면 난감한 상황이 생기게 되더라구요!
중간에 그런 약속을 만들려고 하면 은근 번거로워질 수 있어요"라고도 덧붙였다. 오후 5:48에는 자신의 워크스페이스 원칙을 구체적으로 밝혔다.
다른 프로젝트 파일을 상호참조하거나 워크트리를 참조해야 할 경우(즉 READ일 경우에만) 상위 디렉토리의 워크스페이스를 활용하고, 기본적으로는 가장 작은 단위에 워크스페이스를 만든다는 것이다. 이유로 1) 에이전트의 실수로 의도하지 않은 파일의 수정 가능성 차단, 2) .agentignore을 통해 참조하면 안될 파일의 경계를 명확화, 3) 워크스페이스 단위 세션의 분석, 4) grep 등 수행 시 탐색 대상 축소를 들었고, "요즘 모델 성능 좋아졌지만, Context 어느정도 차고나면 페이블 조차도 임시방편의 작업들을 종종 하곤 해서…."라며 컨텍스트가 차면 최신 모델(페이블)도 임시방편적 작업을 한다는 점을 근거로 들었다.
오후 6:05~6:11, 춘은 "mutate는 작업별 워크트리로 격리하고 메타 레포는 read/거버넌스 전용으로 쓰면", "아직까지는 괜찮은 느낌이긴한데.."라며 자신의 구조를 DV의 원칙과 연결지어 정리했다.