라이프스타일

병렬 작업 통합과 검증

파일과 인터페이스 계약에 따라 변경을 통합하고 충돌과 전체 동작을 검증합니다.

읽는 데 약 20분 · 실습 30 분

직접 제작한 흐름도이며 제품 화면이 아닙니다.
사진: Mokaair (© Mokaair)
이 글의 목차
  1. 목표와 준비
  2. 1단계: 공통 검증 자료 준비
  3. 2단계: 겹치지 않는 두 결과물 배정
  4. 3단계: 커밋 후 순서대로 통합
  5. 4단계: 의도적 충돌과 중지
  6. 정리·문제·전달

목표와 준비

이 단락의 학습 자료: ·

독립 작업은 병렬로 시간을 줄여도 통합에는 순서가 있습니다. 두 완료는 각 브랜치만 끝난 것일 수 있어 같은 화면의 조합 버전에서 검증해야 합니다. 제목·푸터 텍스트로 결과물을 나타내며 전체 사이트 시험으로 부르지 않습니다. 이후 실제 빌드·브라우저 검증에 적용하세요.

1단계: 공통 검증 자료 준비

새 integration-lab을 만들고 터미널을 엽니다. 각 OS에서 아래 Git·Node 명령은 같습니다. 경로와 같은 상위 폴더의 네 이름이 미사용인지 확인하고 이미 있으면 이름을 일관되게 교체하세요. 기존 작업을 덮어쓰지 않습니다.

새 integration-lab 터미널: 이 저장소만 설정 · sh
git init -b main
git config user.name "Codex Learner"
git config user.email "learner@example.test"

아래 세 파일을 만들고 제목·푸터 초기값에 마지막 줄바꿈을 남깁니다. 테스트는 미구현 요구 두 가지이므로 기준은 의도적인 0 통과·2 실패입니다. 원격 없는 독립 자료이며 운영 main에 설명 없는 실패를 남기는 것이 아닙니다.

integration-lab/heading.txt · text
Title: Small Steps
integration-lab/footer.txt · text
Footer: Local exercise
integration-lab/integration.test.mjs · javascript
import test from 'node:test';
import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';

const read = name => readFileSync(new URL(name, import.meta.url), 'utf8').trim();
test('heading includes the practice label', () => {
  assert.equal(read('heading.txt'), 'Title: Small Steps Lab');
});
test('footer identifies practice-only material', () => {
  assert.equal(read('footer.txt'), 'Footer: Practice only');
});
원본: 예상 실패 두 개 기록 후 기준 커밋 · sh
node --test integration.test.mjs
git add -- heading.txt footer.txt integration.test.mjs
git commit -m "Add integration exercise and acceptance cases"
git status --short

2단계: 겹치지 않는 두 결과물 배정

integration-lab: 세 사본을 main 기준으로 생성 · sh
git worktree add -b codex/heading ../integration-heading main
git worktree add -b codex/footer ../integration-footer main
git worktree add -b codex/integration ../integration-review main
git worktree list

A는 제목 사본의 한 파일만, B는 푸터 사본의 한 파일만 지정값으로 바꿉니다. 직접 편집하거나 지원 Codex에서 전체 경로·브랜치·유일한 쓰기 파일·보고 형식을 주어 두 작업자에게 명시 위임할 수 있습니다. 참고 검증은 동등한 지정 편집이며 두 모델 실행으로 표시하지 않습니다.

선택 부모 요청: 두 전체 경로 교체 · text
Use two subagents with separate checkouts. Do not create more agents.
Agent A owns only <ABSOLUTE_HEADING_CHECKOUT>/heading.txt on codex/heading.
Set that file to 'Title: Small Steps Lab' with a final newline.
Agent B owns only <ABSOLUTE_FOOTER_CHECKOUT>/footer.txt on codex/footer.
Set that file to 'Footer: Practice only' with a final newline.
Neither agent may edit tests, merge, push, deploy or touch the other checkout.
Return the actual file diff and blockers. Leave staging and integration to the parent.
Wait for both agents before reviewing their results.
작업쓰기 파일해당 단계 시험
A 제목heading.txt제목 통과·푸터 대기
B 푸터footer.txt푸터 통과·제목 대기
통합자검토된 조합 브랜치둘을 합친 뒤 두 통과

시험 파일이 바뀌면 이유와 차이를 확인하고 기준을 낮추게 하지 마세요.

원본: 각 차이와 1 통과·1 실패 확인 · sh
git -C ../integration-heading diff -- heading.txt
git -C ../integration-footer diff -- footer.txt
node --test ../integration-heading/integration.test.mjs
node --test ../integration-footer/integration.test.mjs

3단계: 커밋 후 순서대로 통합

두 작업자의 쓰기가 끝나면 전체 상태와 지정 파일만 바뀐 것을 확인해 커밋합니다. 이미 커밋됐다면 차이를 확인하고 중복 커밋하지 마세요. 두 SHA를 기록하며 실제 협업은 확인한 커밋을 쓰거나 변경을 멈춰 움직이는 대상을 검증하지 않습니다.

원본: 검토한 두 결과 커밋 · sh
git -C ../integration-heading add -- heading.txt
git -C ../integration-heading commit -m "Label the practice heading"
git -C ../integration-footer add -- footer.txt
git -C ../integration-footer commit -m "Label the practice footer"
git rev-parse codex/heading codex/footer
원본: 검토 브랜치에 순서대로 병합 후 검증 · sh
git -C ../integration-review status --short
git -C ../integration-review merge --no-ff codex/heading -m "Integrate practice heading"
git -C ../integration-review merge --no-ff codex/footer -m "Integrate practice footer"
node --test ../integration-review/integration.test.mjs
git -C ../integration-review diff main...HEAD -- heading.txt footer.txt

통합 폴더는 두 통과, 차이는 두 새 값, 원본 main은 초기값이어야 합니다. 첫 merge가 충돌하면 두 번째는 실행하지 마세요. 개별 브랜치 통과는 조합 검증을 대신하지 않습니다. --no-ff는 교육상 기록을 남기기 위한 것이며 실제 저장소 정책은 따로 따릅니다.

원본 폴더: 통과한 통합 SHA 기록 · sh
git -C ../integration-review rev-parse HEAD

이 전체 SHA를 두 항목 통과와 함께 기록합니다. 다음 충돌과 abort 후 원본 폴더에서 같은 명령으로 동일 SHA, 깨끗한 상태, 두 통과를 모두 확인하세요. 제목 브랜치나 main의 SHA를 통합 SHA로 적지 마세요.

4단계: 의도적 충돌과 중지

원본: 충돌 연습 전용 사본 생성 · sh
git worktree add -b codex/conflict ../integration-conflict main

충돌 사본의 제목만 Title: Another direction으로 바꿔 커밋합니다. 이전 main의 같은 줄을 다르게 바꾸므로 통합 브랜치와 충돌합니다. 검토 폴더가 깨끗하고 두 테스트가 통과하는지 확인한 뒤 시도해 미저장 작업 대신 명확한 시작 상태로 abort하게 합니다.

원본: merge 비0과 heading.txt 충돌 예상 · sh
git -C ../integration-conflict add -- heading.txt
git -C ../integration-conflict commit -m "Create a conflicting practice heading"
git -C ../integration-review merge --no-ff codex/conflict -m "Attempt conflicting integration"
git -C ../integration-review status --short

충돌 파일의 두 값과 Git 표식을 확인하고 이번에는 한쪽을 고르지 말고 오류·상태를 남겨 abort합니다. 두 통과와 깨끗한 상태로 돌아와야 합니다. 기존 미커밋이 있으면 완전 복구가 보장되지 않아 사전 확인이 필요합니다. 실제 해결은 구간별 동작을 선택하고 무조건 ours/theirs를 쓰지 않습니다.

병합 충돌 중: 중지와 복구 확인 · sh
git -C ../integration-review merge --abort
node --test ../integration-review/integration.test.mjs
git -C ../integration-review status --short

정리·문제·전달

테스트는 자신의 파일 URL 기준으로 읽으므로 파일이 없으면 같은 사본에 셋이 있는지 확인합니다. 알 수 없는 변경은 출처, 없는 브랜치는 생성·커밋, 병합 후 실패는 조합 차이를 보세요. 기준을 낮추거나 공통 인터페이스도 정하지 않은 의존 작업을 무리하게 독립 분담하지 않습니다.

작업자와 사본 창을 닫고 원본에서 네 전체 경로와 clean 상태를 확인합니다. 추가했고 커밋됐으며 미사용인 사본만 제거하고 거부는 force 없이 조사하세요. 원본과 통합 브랜치가 남아 결과를 읽을 수 있으며 운영 main 병합이나 PR은 없습니다.

네 경로와 clean 확인 후: 연습 사본만 제거 · sh
git worktree list
git worktree remove ../integration-heading
git worktree remove ../integration-footer
git worktree remove ../integration-review
git worktree remove ../integration-conflict
git show codex/integration:heading.txt
git show codex/integration:footer.txt

입력 두 SHA·병합 순서·통합 SHA·두 테스트·충돌/abort·원본 main 보존을 기록합니다. Git/Node 참고 검사는 모델 분담이나 전체 화면 검증이 아니며 미실행 OS는 공식 문서 확인으로 표시합니다. 로 이어가세요.

직접 제작한 흐름도이며 제품 화면이 아닙니다.
직접 제작한 흐름도이며 제품 화면이 아닙니다. · 사진: Mokaair (© Mokaair)
자세한 설명 보기

Three numbered stages: identify the starting point, perform the exercise, and verify the result. Original illustration, not a product screenshot.

전체 목차

  • 라이프스타일

    Codex 학습 센터: 전체 튜토리얼 목차

    설치와 첫 작업부터 MD 지침과 고급 연동까지 60개 강의, 열 개 단원을 계획합니다. 수준, 환경, 목표, 명령으로 다음 글을 찾고 미게시 항목의 상태를 확인할 수 있습니다.

  • 라이프스타일

    Worktree와 작업 격리

    Worktree는 하나의 Git 저장소에 다른 브랜치의 작업 폴더를 만듭니다. 파일이 분리되어도 DB, 포트와 외부 서비스는 공유될 수 있습니다.

  • 라이프스타일

    실습: 작은 웹사이트 만들기

    brief.md에서 Small Steps 할 일 사이트를 계획하고 추가·완료·삭제·필터·로컬 저장을 구현합니다. HTML·CSS·데이터 함수·화면 이벤트·시험을 분리하고 Node와 브라우저로 검증한 뒤 재시작·복원 인계 기록을 남깁니다.

  • 라이프스타일

    사용량과 효율: 재작업 줄이기

    조건, 모델 선택, 시간, 결과를 기록해 불필요한 재시도와 과도한 문맥을 줄입니다.

최신 여행 소식·가이드

출처

라이프스타일