• Feed
  • Explore
  • Ranking
/
/
    실무 아카이브

    채용공고 자동 마감 로직 이슈와 데이터 불일치 해결

    자동 마감 로직으로 게재기간과 유료기간 종료 시각이 어긋난 사례와 데이터 불일치 원인을 정리했다.
    QA검수운영데이터이슈서비스구조
    김
    김무명
    2026.03.17
    ·
    5 min read

    1. 문제 상황

    채용공고 데이터 확인 중
    게재기간 종료일과 유료상품 종료일이 서로 다른 값으로 저장된 사례가 발견되었다.

    정상 구조에서는 다음과 같이 두 값이 동일해야 한다.

    • 유료기간 종료일 = 게재기간 종료일

    하지만 실제 데이터는 다음과 같았다.

    구분

    값

    게재기간 종료일

    2026-03-13 00:00:06.107

    유료기간 종료일

    2026-03-12 23:59:59.000

    약 수 초 정도의 차이가 발생하며 게재기간이 더 늦게 기록되고 있었다.

    2. 원인 분석

    조사 결과 상시채용 공고의 자동 마감 로직에서 문제가 발견되었다.

    마감 처리 과정에서 다음 로직이 존재했다.

    • 공고 자동 마감 시

    • 게재 종료일을 마감 처리 시점의 현재 시간으로 업데이트

    즉 실제 흐름은 다음과 같다.

    1. 유료상품 종료 시점
      → 23:59:59 저장

    2. 자동 마감 프로세스 실행

    3. 마감 로직에서
      → 현재 시각으로 게재 종료일 업데이트

    그 결과 게재 종료일이 다음과 같이 기록된다.

    2026-03-13 00:00:06

    즉 유료기간 종료 이후 몇 초 뒤의 시간이 저장되면서
    두 값이 서로 달라지는 현상이 발생했다.

    3. 서비스에는 왜 문제가 없었을까

    채용공고 노출 여부는 게재기간이 아니라 상태값으로 제어되고 있었다.

    즉 실제 서비스 로직은 다음과 같다.

    • 공고 노출 여부 → 상태값으로 판단

    • 게재기간 → 데이터 기록용 필드

    따라서 게재기간이 몇 초 차이로 달라도
    서비스 노출이나 마감 처리에는 영향이 발생하지 않았다.

    4. 문제의 발생 시점

    해당 로직은 2025년 5월 개편 당시 추가된 자동 마감 로직에서 발생한 것으로 보였다.

    개편 과정에서 자동 마감 시 게재 종료일을 현재 시간으로 갱신하는 로직이 추가되었고
    이 로직이 유료기간 종료 시간과 충돌하면서 데이터 불일치가 발생했다.

    5. 조치 사항

    데이터 일관성을 위해 다음과 같이 수정하였다.

    • 자동 마감 시 게재 종료일을 재설정하는 로직 제거

    이후에는

    • 유료기간 종료일

    • 게재기간 종료일

    두 값이 동일하게 유지되도록 수정되었다.

    6. 실무 인사이트

    이번 사례는 서비스 로직과 데이터 저장 로직이 서로 다른 방식으로 동작할 때 발생할 수 있는 문제였다.

    서비스는 정상적으로 동작하고 있었지만
    데이터 기록 방식에서 불필요한 로직이 남아있어 값의 불일치가 발생했다.

    실무에서는 다음과 같은 상황이 종종 발생한다.

    • 서비스 동작은 정상이다.

    • 그러나 데이터 값은 정확하지 않다.

    이럴 때는 기능 오류가 아니라
    데이터 저장 로직을 점검해야 하는 경우도 있다.







    - 컬렉션 아티클