주공정법(CPM) 일정 계산기
작업의 소요 기간과 선행 관계를 넣으면 전체 공기와 작업별 ES·EF·LS·LF, 여유시간을 계산하고 여유가 0인 주공정을 짚어 줍니다. PERT 3점 추정과 순환 검출도 함께 다룹니다.
한 줄에 「이름 기간 [선행작업…]」. 선행작업이 없으면 비웁니다. 40개까지.
작업 7개 · 전체 공기
28
주공정은 설계 → 발주 → 납품 → 조립 → 검수입니다. 여유시간이 0인 작업이 5개이고, 그중 하나라도 하루 늦으면 전체가 하루 늦습니다.
작업별 일정
| 작업 | 기간 | ES | EF | LS | LF | 여유 |
|---|---|---|---|---|---|---|
| 설계 | 5 | 0 | 5 | 0 | 5 | 0 |
| 발주 | 3 | 5 | 8 | 5 | 8 | 0 |
| 납품 | 10 | 8 | 18 | 8 | 18 | 0 |
| 터파기 | 4 | 5 | 9 | 8 | 12 | 3 |
| 기초 | 6 | 9 | 15 | 12 | 18 | 3 |
| 조립 | 8 | 18 | 26 | 18 | 26 | 0 |
| 검수 | 2 | 26 | 28 | 26 | 28 | 0 |
ES·EF는 앞으로 계산한 값(선행이 모두 끝나야 시작하므로 선행들의 EF 중 최댓값), LS·LF는 뒤로 계산한 값(전체 공기를 지키려면 늦어도 언제까지 끝나야 하는가)입니다. 두 값의 차이가 여유시간이고, 파란 줄이 여유 0인 주공정입니다.
총 여유와 자유 여유
| 작업 | 총 여유 | 자유 여유 |
|---|---|---|
| 터파기 | 3 | 0 |
| 기초 | 3 | 3 |
총 여유는 전체 공기를 늦추지 않고 미룰 수 있는 기간이고, 자유 여유는 후행 작업의 시작까지도 늦추지 않고 미룰 수 있는 기간입니다. 총 여유를 다 쓰면 전체는 그대로지만 뒤에 오는 작업이 밀립니다 — 여러 작업이 같은 여유를 나눠 쓰고 있어 한쪽이 다 쓰면 다른 쪽이 못 씁니다.
계산 방법
- 1작업을 한 줄에 하나씩 「이름 기간 선행작업들」 형식으로 적습니다.
- 2선행작업이 없는 작업은 이름과 기간만 적습니다.
- 3전체 공기와 주공정을 확인합니다.
- 4작업별 표에서 여유시간이 0인 줄을 봅니다.
- 5기간이 불확실하면 3점 추정으로 바꿔 낙관·최빈·비관을 넣습니다.
자주 묻는 질문
여유시간이 0인 작업들을 이은 사슬로, 시작에서 끝까지의 가장 긴 경로입니다. 이 위의 작업이 하루 늦으면 전체가 하루 늦고, 반대로 여유가 있는 작업은 아무리 서둘러도 전체 공기가 줄지 않습니다. 일정을 줄이려면 주공정부터 손대야 합니다.
앞으로 한 번, 뒤로 한 번 계산합니다. 앞으로 갈 때는 선행 작업이 모두 끝나야 시작하므로 ES = 선행들의 EF 중 최댓값, EF = ES + 기간입니다. 전체 공기는 모든 EF의 최댓값입니다. 뒤로 갈 때는 LF = 후행들의 LS 중 최솟값(후행이 없으면 전체 공기), LS = LF − 기간입니다.
LS − ES 또는 LF − EF입니다. 두 값은 언제나 같습니다. 이 값이 0이면 하루도 못 미룬다는 뜻이고, 3이면 전체 공기를 늦추지 않고 사흘까지 미룰 수 있다는 뜻입니다.
총 여유는 전체 공기를 늦추지 않고 미룰 수 있는 기간이고, 자유 여유는 후행 작업의 시작까지도 늦추지 않고 미룰 수 있는 기간입니다. 총 여유를 다 쓰면 전체는 그대로지만 뒤에 오는 작업이 밀립니다 — 여러 작업이 같은 여유를 나눠 쓰고 있어 한쪽이 다 쓰면 다른 쪽이 못 씁니다.
기간이 불확실할 때 낙관·최빈·비관 세 값을 받아 기대 기간을 (낙관 + 4×최빈 + 비관) ÷ 6으로, 표준편차를 (비관 − 낙관) ÷ 6으로 쓰는 방법입니다. 베타분포를 가정한 관행적인 어림이지 유도된 식은 아니라는 점을 감안해야 합니다.
일정이 성립하지 않습니다. A가 B를 기다리고 B가 A를 기다리면 어느 것도 시작할 수 없기 때문입니다. 이 도구는 계산을 시도하기 전에 순환을 먼저 잡아 어느 작업이 얽혔는지 알려 줍니다.
위상 정렬은 「어떤 순서로 해야 하는가」와 단계 수만 보고 소요 기간을 다루지 않습니다. 단계 수가 같아도 각 작업의 기간이 다르면 주공정이 달라지므로 다른 계산입니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 정답지는 모든 경로를 훑어 보는 것입니다. 전방·후방 계산을 전혀 쓰지 않고 시작 작업에서 끝 작업까지의 경로를 하나씩 밟아 기간을 더해, 가장 긴 경로의 길이가 전체 공기와 같고 그 경로가 주공정과 같은지 여섯 가지 일정에서 확인했습니다.
- 여유시간의 뜻 자체를 검사합니다. 여유가 0인 작업을 하루 늘리면 전체 공기가 정확히 하루 늘어나야 하고, 여유가 있는 작업은 그 여유만큼 늘려도 전체가 그대로여야 하며 하루 더 늘리면 늘어나야 합니다. 세 가지를 모두 일정마다 다시 계산해 확인했습니다.
- ES + 기간 = EF, LS + 기간 = LF, LS − ES = LF − EF, 여유 ≥ 0, 자유 여유 ≤ 총 여유가 모든 작업에서 성립하는지도 함께 고정했습니다.
- 선행 작업이 끝나기 전에 시작하는 작업이 없는지도 검사합니다. 계산이 맞더라도 이 조건이 깨지면 일정으로서 뜻이 없습니다.
- 순환과 「없는 선행작업」을 뭉뚱그리지 않고 이유를 나눠 답합니다. 앞은 일정 자체가 성립하지 않는 것이고 뒤는 이름을 잘못 적은 것이라 고칠 곳이 다릅니다.
- PERT는 기대 기간 (o + 4m + p) ÷ 6과 주공정 위 분산의 합으로 표준편차를 냅니다. 주공정이 아닌 작업의 불확실성은 반영되지 않는 한계가 있어 화면에 밝혀 두었습니다.
- 작업은 40개까지 다룹니다. 표를 통째로 그리는 것이 목적이라 그보다 많으면 화면이 읽히지 않습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.