영업일 계산법 — 주말·공휴일 빼고 기간·납기 정확히 세기
"5영업일 이내에 회신 드리겠습니다", "납기는 발주 후 10영업일입니다", "개발 기간 15일". 이 문장들에서 실제 날짜가 언제인지 바로 말할 수 있나요? 영업일은 주말과 공휴일을 빼고 세는데, 당일을 포함하는지, 대체공휴일은 어떻게 되는지, 토요일 근무 회사는 어떻게 세는지에 따라 하루 이틀이 쉽게 어긋납니다. 이 글에서는 영업일의 정의부터 손으로 세는 요령, 엑셀 함수, 그리고 프로젝트 일정에서 영업일로 공수를 잡아야 하는 이유와 명절·연말 주간의 함정까지 정리합니다. 특정 날짜까지 남은 달력일(D-day)을 세는 법은 디데이 계산법, 영업일 기간을 일정표 전체에 적용하는 흐름은 프로젝트 일정 관리 방법에서 다루고, 이 글은 영업일을 세는 규칙 자체에 집중합니다.
달력일, 영업일, 근무일 — 무엇이 다른가
| 용어 | 세는 방법 | 주로 쓰이는 곳 |
|---|---|---|
| 달력일(역일) | 주말·공휴일 포함, 모든 날 | 계약 기간, 법정 기한("30일 이내"), 배송 예정일 |
| 영업일 | 토·일요일과 법정 공휴일 제외 | 은행·관공서 업무, 거래처 회신 기한, 프로젝트 일정 |
| 근무일 | 그 조직이 실제로 일하는 날. 토요일 근무 회사는 토요일 포함, 회사 휴무일은 제외 | 사내 일정, 공장·매장 운영, 근태 계산 |
세 가지가 헷갈리는 이유는 문서에 "일"이라고만 쓰여 있기 때문입니다. "10일 이내"가 달력일이면 열흘 뒤, 영업일이면 2주 뒤입니다. 상대와 기한을 주고받을 때는 "영업일 기준 10일, 즉 O월 O일까지"처럼 날짜를 같이 적는 것이 오해를 없애는 가장 확실한 방법입니다.
은행에서 말하는 은행 영업일은 토·일·공휴일을 뺀 날이며, 근로자의 날(5월 1일)은 그동안 관공서 공휴일이 아니면서 은행은 쉬는 날이어서 자주 걸리던 날입니다. 이 날의 명칭과 적용 범위는 최근 제도 개편이 논의되어 왔으므로, 해당 연도에 관공서·은행이 쉬는지는 공식 안내로 확인하세요. 어느 기관의 영업일인지에 따라 하루가 달라질 수 있습니다.
"5영업일 이내"는 어떻게 세나 — 당일 포함 여부
기한을 셀 때 가장 많이 틀리는 부분은 기산일(첫날)을 세느냐입니다. 관행은 다음과 같습니다.
- 일반적인 관행: 당일은 세지 않습니다. "오늘부터 5영업일"이면 내일(다음 영업일)이 1일째입니다. 민법의 기간 계산 원칙(초일 불산입)과도 같은 방향입니다.
- 문서에 기산일이 명시되어 있으면 그것이 우선입니다. "접수일 포함 5영업일", "다음 영업일부터"처럼 적혀 있으면 그대로 따릅니다.
- 영업시간 이후 접수는 보통 다음 영업일 접수로 봅니다. 금요일 저녁에 보낸 요청은 월요일 접수로 처리되는 경우가 많습니다.
중요한 기한이라면 "5영업일이면 O월 O일까지 맞나요?"라고 날짜로 확인하는 것이 가장 안전합니다. 하루 차이가 위약금이나 접수 마감을 가르는 경우가 실제로 있습니다.
대체공휴일과 임시공휴일 처리
영업일 계산에서 법정 공휴일은 제외합니다. 매년 날짜가 같은 공휴일은 1월 1일, 3·1절(3월 1일), 어린이날(5월 5일), 광복절(8월 15일), 개천절(10월 3일), 한글날(10월 9일), 성탄절(12월 25일)이고, 설날·추석·부처님오신날은 음력이라 해마다 바뀝니다. 현충일(6월 6일)도 공휴일입니다.
대체공휴일은 공휴일이 주말이나 다른 공휴일과 겹칠 때 그 다음 평일을 쉬는 제도입니다. 현재 규정상 설·추석 연휴, 어린이날, 3·1절, 광복절, 개천절, 한글날, 부처님오신날, 성탄절이 대상이며 1월 1일과 현충일은 대상이 아닙니다. 주의할 점은 설·추석 연휴는 일요일이나 다른 공휴일과 겹칠 때만 대체공휴일이 생기고, 토요일과 겹치는 것만으로는 생기지 않는다는 것입니다. 그래서 2026년 추석 연휴(9월 24~26일)처럼 마지막 날이 토요일이어도 다음 월요일은 쉬는 날이 아닙니다. 예를 들어 2026년 광복절(8월 15일)은 토요일이므로 규정대로라면 월요일인 8월 17일이 대체공휴일이 됩니다. 다만 규정은 개정될 수 있으므로, 해당 연도의 공휴일과 대체공휴일 지정은 정부 발표와 달력으로 확인하는 것이 원칙입니다.
대체공휴일이 실제 기한을 얼마나 바꾸는지 2026년 10월로 보면 분명합니다. 개천절(10월 3일)이 토요일이라 10월 5일(월)이 대체공휴일이고, 10월 9일(금)은 한글날입니다. 10월 1일(목)에 "5영업일 이내 회신" 요청을 받으면 관행대로 세어 10/2(1), 10/6(2), 10/7(3), 10/8(4), 10/12(5)로 10월 12일(월)이 기한입니다. 두 공휴일을 모르고 세면 10월 8일(목)로 계산해 나흘을 착각하게 됩니다.
임시공휴일은 정부가 그때그때 지정하는 공휴일로, 연휴 사이 낀 평일이 지정되는 경우가 많습니다. 발표가 몇 주 전에 나오기 때문에 이미 짠 일정이 하루 줄어드는 상황이 생깁니다. 임시공휴일이 발표되면 그날 이후의 모든 납기를 다시 계산해야 합니다.
수작업 계산 예시 2개
기한 계산과 작업 기간 계산은 첫날을 세는 기준이 다릅니다. 두 예시로 그 차이를 확인해 보세요.
예시 1 — "5영업일 이내 회신"
2026년 11월 5일(목)에 요청을 받았고, 5영업일 이내에 답해야 합니다. 이 주간에는 공휴일이 없습니다.
| 날짜 | 요일 | 당일 미포함(관행) | 당일 포함 |
|---|---|---|---|
| 11/5 | 목 | 기산일(0) | 1일째 |
| 11/6 | 금 | 1일째 | 2일째 |
| 11/7~8 | 토·일 | 제외 | 제외 |
| 11/9 | 월 | 2일째 | 3일째 |
| 11/10 | 화 | 3일째 | 4일째 |
| 11/11 | 수 | 4일째 | 5일째 → 기한 |
| 11/12 | 목 | 5일째 → 기한 | — |
관행대로 당일을 빼면 기한은 11월 12일(목), 당일을 포함하면 11월 11일(수)입니다. 같은 "5영업일"인데 하루 차이가 납니다. 주말이 끼면 달력으로는 일주일이 되는 것도 눈여겨보세요.
예시 2 — 연말에 걸친 8영업일 작업
2026년 12월 21일(월)에 시작하는 8영업일짜리 작업이 언제 끝나는지 세어 봅니다. 작업은 시작일 당일부터 일하므로 시작일을 1일째로 셉니다(기한 계산과 다른 점입니다). 12월 25일(금)은 성탄절로 제외합니다.
| 날짜 | 요일 | 영업일 카운트 |
|---|---|---|
| 12/21 | 월 | 1 |
| 12/22 | 화 | 2 |
| 12/23 | 수 | 3 |
| 12/24 | 목 | 4 |
| 12/25 | 금 | 성탄절 → 제외 |
| 12/26~27 | 토·일 | 제외 |
| 12/28 | 월 | 5 |
| 12/29 | 화 | 6 |
| 12/30 | 수 | 7 |
| 12/31 | 목 | 8 → 종료일 |
종료일은 12월 31일(목)입니다. 성탄절이 없었다면 12월 30일에 끝났을 작업입니다. 그리고 이 작업의 후행 작업은 다음 날인 2027년 1월 1일(금)이 신정 공휴일이므로 1월 4일(월)에야 시작할 수 있습니다. 달력으로는 나흘 뒤인데 영업일로는 바로 다음 날인 셈입니다. 연말 일정이 "이상하게 밀리는" 이유가 여기에 있습니다.
엑셀로 계산하기 — NETWORKDAYS와 WORKDAY
손으로 세는 것은 예시 정도까지이고, 실제로는 엑셀(또는 구글 시트) 함수를 씁니다. 두 함수의 기준이 다르다는 점만 기억하면 됩니다.
NETWORKDAYS — 두 날짜 사이의 영업일 수
=NETWORKDAYS(시작일, 종료일, [공휴일 범위])
- 시작일과 종료일을 둘 다 포함해서 셉니다. 월요일~금요일이면 5입니다.
- 세 번째 인수에 공휴일 날짜를 적어 둔 셀 범위(예: H2:H20)를 넣으면 그 날짜들도 제외됩니다. 이 범위를 별도 시트에 두고 매년 갱신하면 편합니다.
- 예시 2를 넣어 보면 =NETWORKDAYS("2026-12-21","2026-12-31",공휴일범위)에서 공휴일 범위에 12/25가 있으면 8이 나옵니다.
WORKDAY — n영업일 뒤의 날짜
=WORKDAY(시작일, 일수, [공휴일 범위])
- 시작일은 세지 않고, 시작일로부터 n번째 영업일의 날짜를 돌려줍니다. 기한 계산(당일 미포함 관행)과 같은 기준입니다.
- 예시 1은 =WORKDAY("2026-11-05",5)로 계산하면 2026-11-12가 나옵니다.
- 작업 종료일처럼 시작일 당일을 1일째로 세고 싶다면 일수에서 1을 빼서 =WORKDAY(시작일, 일수−1, 공휴일)로 넣습니다. 예시 2는 =WORKDAY("2026-12-21",7,공휴일범위) → 2026-12-31입니다.
- 일수에 음수를 넣으면 거꾸로 셉니다. "마감 10영업일 전"을 구할 때 씁니다.
토요일 근무·일요일만 휴무라면 — .INTL 버전
NETWORKDAYS.INTL과 WORKDAY.INTL은 주말을 직접 지정할 수 있습니다. 세 번째(또는 네 번째) 인수에 주말 번호를 넣는데, 예를 들어 11은 일요일만 휴무입니다. 문자열 "0000001"(일요일만 휴무)처럼 월~일 순서로 일곱 자리에 1(휴무)·0(근무)을 적는 방식도 됩니다. 프로그램 버전에 따라 인수 표기가 조금 다를 수 있으니 함수 도움말을 한 번 확인하세요.
프로젝트 일정에서 영업일로 공수를 잡아야 하는 이유
"개발 15일"을 달력일로 잡으면 실제 작업일은 11일입니다(주말 4일 제외). 여기에 공휴일이 하나 끼면 10일입니다. 담당자는 15일치 일을 10일 안에 해야 하고, 일정은 처음부터 지켜질 수 없는 상태로 시작됩니다. 반대로 영업일 15일로 잡으면 달력으로 3주가 되고, 그 3주가 종료일이 됩니다.
영업일로 잡아야 하는 이유는 세 가지입니다. 첫째, 공수 추정과 일정이 같은 단위가 됩니다. 담당자가 "5일 걸려요"라고 말할 때 그 5일은 일하는 날 5일이지 달력 5일이 아닙니다. 둘째, 기간진행율이 정확해집니다. 주말이 낀 주에 달력일로 진행율을 계산하면 시간이 많이 흐른 것처럼 보여 멀쩡한 작업이 지연으로 찍힙니다(진행율 계산법 참고). 셋째, 핵심경로 길이가 실제와 맞습니다. 경로를 더할 때 단위가 섞이면 어떤 경로가 긴지 판단이 틀어집니다.
반차·휴가·회사 휴무일 반영
- 전사 휴무일(창립기념일, 여름휴가 기간, 임시 휴무)은 공휴일과 똑같이 취급합니다. 공휴일 목록에 추가하면 모든 작업에서 자동으로 빠집니다.
- 개인 휴가는 그 사람의 작업에만 영향을 줍니다. 해당 작업의 기간을 휴가 일수만큼 늘리거나, 휴가 전후로 작업을 나누는 방식이 깔끔합니다. 팀 전체 달력에 개인 휴가를 넣으면 다른 사람의 작업까지 밀리므로 넣지 않습니다.
- 반차는 0.5일입니다. 반차 하나 때문에 일정을 고치지는 않되, 한 작업 안에 반차가 두 번 이상 있으면 하루를 더합니다.
- 담당자가 다른 프로젝트를 겸임하면 하루 8시간 중 4시간만 이 프로젝트에 쓰는 셈이므로, 공수 5일이 영업일 10일이 됩니다. 이 경우가 개인 휴가보다 일정에 훨씬 큰 영향을 줍니다.
연말·설·추석 주간의 함정
명절과 연말은 공휴일 자체보다 그 앞뒤로 실제 생산성이 떨어지는 날이 더 큰 문제입니다. 실제로 일정을 관리해 보면 다음 패턴이 반복됩니다.
- 연휴 앞뒤 하루는 반나절만 일합니다. 연휴 전날 오후와 연휴 다음 날 오전은 회의도 잡히지 않습니다. 영업일로는 2일이지만 실제로는 1일로 잡는 것이 현실적입니다.
- 연휴에 걸친 작업은 흐름이 끊깁니다. 연휴 전에 절반, 후에 절반을 하는 작업은 다시 시작할 때 하루 정도를 되짚는 데 씁니다. 가능하면 연휴 전에 끝나거나 연휴 후에 시작하도록 작업 경계를 옮기세요.
- 거래처·외주도 쉽니다. 우리 회사 영업일로는 정상인 날에 상대가 쉬면 회신·검수·납품이 멈춥니다. 외부 의존이 있는 작업은 상대의 휴무도 확인해야 합니다.
- 12월 말~1월 초는 휴가가 몰립니다. 공휴일은 12월 25일과 1월 1일뿐이지만 팀원 절반이 연차를 쓰는 주간이라, 실제 가용 인력으로 다시 계산해야 합니다.
- 설·추석은 해마다 날짜가 다릅니다. 작년 일정을 복사해 쓰면 연휴 위치가 달라져 있습니다. 새해 일정을 짤 때 그 해의 공휴일부터 다시 확인하세요.
WBS·간트차트 도구의 공휴일 달력으로 자동 계산하기
엑셀 함수도 좋지만, 작업이 수십 개가 되면 행마다 함수를 관리하는 것이 부담입니다. 이 사이트의 WBS·간트차트 도구는 작업의 시작일과 종료일을 넣으면 주말과 공휴일을 뺀 영업일 수가 자동으로 계산되고, 공휴일 달력에서 그 해의 공휴일·대체공휴일·회사 휴무일을 추가하거나 빼면 모든 작업의 기간이 함께 다시 계산됩니다. 임시공휴일이 발표됐을 때 날짜 하나만 추가하면 되는 셈입니다. 쓸 때 알아 둘 점이 있습니다.
- 공휴일은 미리 들어 있지 않습니다. 새 프로젝트를 만들면 공휴일 목록이 비어 있어 토·일만 빠집니다. 일정을 짜기 전에 ⋯ 메뉴의 [📅 공휴일 관리]에서 그해 공휴일을 날짜와 이름으로 하나씩 등록하세요. 달력에서 날짜를 누르면 입력 칸에 채워집니다.
- 등록한 날은 모든 작업에서 빠집니다. 위의 개인 휴가 원칙처럼, 한 사람만 쉬는 날은 등록하지 말고 그 사람의 작업 기간을 늘리세요.
- 공휴일은 일정 파일과 함께 저장됩니다. [💾 저장]으로 받은 JSON과 엑셀 다운로드의 '공휴일' 시트에 목록이 같이 들어가므로, 한 번 정리한 그해 공휴일 목록은 다음 프로젝트에서 그 파일을 불러와 작업 행만 지우는 식으로 재사용할 수 있습니다.
- 일 보기에서 확인합니다. 간트차트를 일 단위로 보면 주말과 등록한 공휴일 칸이 음영으로 표시되어, 빠뜨린 공휴일이 없는지 눈으로 점검할 수 있습니다.
확정된 일정은 엑셀로 내려받아 공유할 수 있습니다.
자주 묻는 질문
'3영업일 이내 회신'이라고 하면 받은 날도 포함되나요?
관행상 받은 당일은 포함하지 않고 다음 영업일부터 1일로 셉니다. 목요일에 받았다면 금·월·화가 1·2·3일이 되어 화요일까지입니다. 다만 계약서나 약관에 '당일 포함' 또는 '접수일로부터'처럼 기산일을 따로 정해 두었다면 그 문구가 우선하므로, 중요한 기한이라면 상대방에게 날짜로 확인하는 것이 가장 안전합니다.
토요일이 공휴일과 겹치면 영업일 계산에서 어떻게 되나요?
토요일은 어차피 비영업일이므로 그날 자체는 계산에 변화가 없습니다. 대신 그 공휴일이 대체공휴일 대상이면 다음 평일(보통 월요일)이 쉬는 날이 되어 영업일이 하루 줄어듭니다. 예를 들어 2026년 개천절(10월 3일, 토)은 10월 5일(월)이 대체공휴일입니다. 단, 설·추석 연휴는 토요일과 겹치는 것만으로는 대체공휴일이 생기지 않습니다. 대체공휴일 대상 여부와 실제 지정일은 해당 연도의 정부 발표와 달력으로 확인하세요.
엑셀 NETWORKDAYS 결과가 하루 많게 나옵니다. 왜 그런가요?
NETWORKDAYS는 시작일과 종료일을 모두 포함해 셉니다. 월요일부터 금요일까지면 5가 나옵니다. '시작일 다음 날부터'로 세고 싶다면 결과에서 1을 빼거나 시작일에 1을 더해 넣으면 됩니다. 반대로 WORKDAY는 시작일을 세지 않고 n영업일 뒤의 날짜를 돌려주므로 두 함수의 기준이 다르다는 점을 기억하세요.
프로젝트 일정에서 반차나 개인 휴가는 어떻게 반영하나요?
회사 전체가 쉬는 날(창립기념일, 전사 휴무)은 공휴일 달력에 추가해 모든 작업에서 빠지게 합니다. 개인 휴가는 그 담당자의 작업에만 영향을 주므로 해당 작업의 기간을 휴가 일수만큼 늘리거나, 휴가 앞뒤로 작업을 나누는 방식으로 반영합니다. 반차는 0.5일로 두고 반차가 두 번 모이면 하루를 더하는 정도면 충분합니다.
정리
영업일은 토·일요일과 법정 공휴일(대체·임시공휴일 포함)을 뺀 날이며, 기한을 셀 때는 관행상 당일을 빼고 다음 영업일부터 세되 문서에 기산일이 명시되어 있으면 그것을 따릅니다. 작업 기간을 셀 때는 반대로 시작일 당일을 1일째로 셉니다. 엑셀에서는 NETWORKDAYS(양 끝 포함)와 WORKDAY(시작일 제외)의 기준 차이를 기억하고, 공휴일 범위를 반드시 넣으세요. 프로젝트 일정은 공수와 같은 단위인 영업일로 잡아야 기간진행율과 핵심경로가 맞고, 개인 휴가는 작업 기간에, 전사 휴무는 공휴일 달력에 반영합니다. 명절·연말 주간은 공휴일 수보다 실제 생산성 저하가 더 크므로 작업 경계를 연휴 밖으로 옮기는 것이 안전합니다.
시작일·종료일만 넣으면 주말·공휴일을 뺀 영업일이 자동 계산되고, 공휴일 달력에 날짜를 추가하면 모든 작업의 기간이 함께 갱신됩니다. 설치·가입 없이 무료입니다.
WBS·간트차트 도구 열기 디데이 계산기 열기