1. 문제 현상
경력 합산 결과가 실제보다 1개월 과대 계산되는 현상이 발생했다.
A 경력: 2019.01 ~ 2020.01 → 13개월
B 경력: 2020.01 ~ 2021.11 → 23개월
단순 합산 시 총 36개월(3년)로 계산되었으나,
실제 경력은 35개월(2년 11개월)이 맞는 상태였다.
2. 원인 분석
문제의 핵심은 중복 월 처리 누락이다.
두 경력 모두에 2020년 1월이 포함되어 있었고,
시스템은 이를 별도의 기간으로 인식하여 중복 계산했다.
하지만 시간은 연속적으로 흐르기 때문에,
동일한 월은 한 번만 포함되어야 한다.
정상적인 계산은 다음과 같다.
총합 36개월 − 중복 1개월 = 35개월
즉, 단순 합산 로직에는 문제가 없었지만
기간 간 중첩을 제거하는 로직이 부재한 상태였다.
3. 영향 범위
이 문제는 단순 계산 오류를 넘어
채용 시스템의 신뢰도에 직접적인 영향을 미친다.
1) 경력 기준 필터 왜곡
채용 조건이 ‘3년 이상’일 경우,
실제 기준에 미달하는 지원자가 필터를 통과하게 된다.
이는 기업 입장에서 잘못된 후보군을 받아보게 되는 문제로 이어진다.
2) 사용자 책임 전가 가능성
사용자는 시스템에서 계산된 경력을 신뢰하고 지원하게 된다.
그러나 이후 경력 증빙 과정에서
1개월 부족한 사실이 드러날 경우,
그 책임이 사용자에게 전가될 수 있다.
즉, 시스템 오류가 사용자 리스크로 전환되는 구조다.
4. 이슈의 본질
해당 문제는 단순 버그가 아니라
데이터 경계 조건(Edge Case) 처리 실패에 해당한다.
기간의 시작과 끝이 맞닿아 있는 경우
동일 월이 양쪽에 포함되는 경우
이처럼 일반적인 흐름에서는 드러나지 않지만,
경계 지점에서 발생하는 케이스다.
5. 유사 패턴
이와 유사한 구조의 오류는 다른 영역에서도 반복된다.
예를 들어,
마감 시간이 수 초 단위로 지연되며 날짜가 넘어가는 문제
기간 계산 시 경계 포함 여부에 따라 값이 달라지는 문제
공통점은 모두 ‘경계에서의 처리 방식’에 의해 발생한다는 점이다.
6. 정리
기능은 정상적으로 동작하고 있었다.
하지만 결과는 틀렸다.
이 차이는 다음에서 발생한다.
“계산은 했지만, 해석하지는 않았다.”
데이터를 단순히 더하는 것과,
의미 있게 계산하는 것은 다른 문제다.
7. 결론
경력 계산은 단순 합산 문제가 아니다.
시간의 연속성과 중첩 여부를 함께 고려해야 하는 영역이다.
작은 1개월 차이지만,
그 결과는 채용 판단과 사용자 경험 모두에 영향을 준다.