본문으로 건너뛰기

네이버 크롤러

네이버 스마트플레이스 예약을 자동으로 동기화하는 시스템입니다.

동작 주기

  • 실행 간격: 30초 (fixedDelay) + 랜덤 0~10초 지연
  • 분산 락: ShedLock (lockAtLeastFor 5s, lockAtMostFor 15s)
  • 조회 범위: 어제 ~ 4주 후

전체 흐름

예약 상태 처리

네이버 상태처리
신청가상계좌 발급 → 입금 대기
확정/완료이미 처리됨, SKIP
취소취소 주체에 따라 분기 처리

가상계좌 발급 우선순위

복수 신청 건이 있을 때 다음 순서로 처리합니다:

  1. 이용 시간이 긴 순서
  2. 시작 시간이 빠른 순서

네이버 세션 관리

  • 네이버 API 인증: 쿠키 기반 (NID_AUT, NID_SES)
  • Redis에 쿠키 저장
  • 매시간 세션 유효성 체크
  • 만료 시 Slack 알림 → 수동 쿠키 갱신 필요
  • 오전 9시, 오후 11시 사전 갱신 알림

알려진 이슈

Brotli 인코딩 문제

네이버가 Brotli 압축 응답을 보내는 경우 JSON 파싱 실패 발생. Accept-Encoding: gzip만 허용하도록 설정하여 해결.

자정 경계 처리

네이버 종료시간 23:59 → 시스템 내부에서 적절히 변환 (endDateTime = 실제종료 - 10분)

주요 파일

파일역할
CrawlerService.java크롤링 메인 로직, 예약 상태 분기
NaverSmartPlaceService.java네이버 API 호출 (예약 확정, 취소)