세그먼트 날짜 필터가 오전 9시를 경계로 자르는 문제 수정

ID: 8ca13637-e468-4263-9369-63db0d0612ff

높음 완료

마케팅 세그먼트의 날짜 필터가 한국 날짜 0시 대신 오전 9시(UTC 0시)를 경계로 삼아, 고른 날짜 0~9시 대상자가 빠진다.

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: claude
생성일: 2026년 11월 05일 03:05

활동 로그

  • C
    claude-code 운영 배포 확인: f904de54에 포함(11/5 13:35, 다른 세션 배포)

    2026년 11월 05일 04:49:33

    상세 보기

    ## 운영에서 확인한 것
    - 회원: `Marketing::SegmentQuery`의 `created_after` 2026-03-01이 `created_at >= '2026-02-28 15:00:00'`으로 나온다
    - 리드: `Marketing::LeadRecipients#apply_created_after`에 `in_time_zone`이 들어가 있다(코드 확인, 실행은 안 함)
    - `/up` 200, 컨테이너 시작 후 500 · FATAL 로그 0건

  • 팀
    팀리드 상태 변경: 리뷰 → 완료

    2026년 11월 05일 04:37:30

  • 팀
    팀리드 배포 완료 - 세그먼트 날짜 필터 수정(62d468cc, 브랜딩 배포 f904de54에 함께 나감)

    2026년 11월 05일 04:37:29

    상세 보기

    ## 배포 정보
    - 배포 시각: 2026-11-05 13:35
    - 배포 환경: production (f904de54)

    ## 포함된 커밋
    - 62d468cc fix(marketing): 세그먼트 날짜 필터를 한국 날짜로 자른다

    ## 확인 사항
    - 대표님 확인을 받고 브랜딩 수정과 같이 배포했다
    - 전체 테스트에 이 커밋을 포함해 돌렸다. 운영 세그먼트 화면은 직접 열어 보지 않았다

  • C
    claude 커밋 62d468cc, 배포 대기(다른 세션 작업 종료 후)

    2026년 11월 05일 03:30:48

    상세 보기

    ## 상태
    - main 커밋 62d468cc, 운영 미반영
    - 전체 테스트 6,694개: 실패 0, 오류 0, 건너뜀 51
    - Rubocop(바꾼 Ruby 파일), Brakeman 통과

    ## 배포 대기 이유
    main에 다른 세션의 미배포 커밋 ab78bc87, cd04021b가 있다. 대표님이 그 세션이 끝날 때까지 기다리기로 결정했다.

    ## 배포할 때 할 일
    - `bin/rails test:pdf` 실행(cd04021b가 PDF 레이아웃을 고침)
    - 운영 SHA 대조 후 main 전체 배포

  • C
    claude 상태 변경: 할 일 → 리뷰

    2026년 11월 05일 03:11:17

  • C
    claude 세그먼트 날짜 필터 수정 완료, 커밋·배포 전

    2026년 11월 05일 03:11:16

    상세 보기

    ## 원인
    `where(column => date..)`가 `>= '2026-10-30'`로 나가 UTC 0시(한국 오전 9시)부터 잘렸다.

    ## 고친 곳
    - `app/services/marketing/segment_query.rb` `apply_date_after`
    - `app/services/marketing/lead_recipients.rb` `apply_created_after`
    - 둘 다 `in_time_zone`으로 한국 날짜 0시부터 포함

    ## 확인
    - 새 테스트 3개가 수정 전 실패, 수정 후 통과
    - 기존 `first_diagnosis_after` 테스트: 0:30, 8:30, 9:30, 12:30, 23:30 모두 통과
    - 전체 테스트 6,689개: 실패 1, 건너뜀 46
    - 실패 1개 `StrengthNextStepsTest#test_강의를_볼_수_있으면_STEP_5_는_내_강의로_보낸다`: 단독 3회 통과, 전체 실행에서만 1회 실패, 원인 미확인

    ## 운영 영향(수정 전 코드 기준 읽기 전용 조회)
    - 세그먼트 67개 중 날짜 필터 사용 1개: 「무료 진단 (3개월, W미소속)」(created_after 2026-03-01)
    - 회원 6,250명 중 빠진 사람 8명, 연결 캠페인 1개는 failed 상태
    - 리드 수는 세지 않음