피드로 돌아가기
Dev.toFrontend
원문 읽기
JavaScript 기반 비즈니스 영업일 계산 로직 및 공휴일 필터링 구현
How to Calculate Business Days Between Two Dates in JavaScript
AI 요약
Context
단순 날짜 차이 계산을 수행하는 JavaScript 기본 API의 한계로 인한 비즈니스 요구사항 반영 불가 상황. 주말 및 공휴일을 제외한 실제 영업일 산출을 위한 커스텀 로직 설계 필요성 대두.
Technical Solution
- Date 객체의 getDay() 메서드를 활용한 주말(토요일, 일요일) 식별 및 필터링 로직 구현
- while 루프 기반의 날짜 순회 방식을 통해 시작일과 종료일 사이의 모든 유효 날짜 검증
- 공휴일 목록을 Set 자료구조로 관리하여 조회 시간 복잡도를 O(1)로 최적화한 필터링 체계 구축
- ISO 8601 표준 형식인 YYYY-MM-DD 문자열 비교를 통한 날짜 데이터 정규화 및 정확한 매칭 수행
- 시작일 포함 여부에 따른 Inclusive/Exclusive 카운팅 옵션 적용 가능한 구조 설계
실천 포인트
- 대량의 공휴일 데이터 처리 시 Array 대신 Set을 사용하여 조회 성능 최적화 - 날짜 비교 시 시분초 데이터를 제거한 YYYY-MM-DD 형식의 문자열로 정규화하여 비교 - 비즈니스 로직에 따라 시작일/종료일 포함 여부를 결정하는 파라미터화 설계 검토