Skip to content

등록 한도 도달 시 구독 유도·구매 후 복귀를 PM에게 확인한다 #470

Closed as not planned

Description

@OnlyReadOneBook

작업 유형

enhancement — 신규 기능·기존 기능 개선

주 담당 모듈

afternote — 애프터노트

개요

기존 회의의 무료 3개·구독 정책 기록과 두 시안은 결정 자료로 보존한다. 특정 팝업·문구·트리거·구매 후 등록 재시도를 구현 완료 조건으로 고정하지 않는다.

PM 확인이 필요한 결정

적용할 시안과 출시 상품 정책, 한도 도달 시 노출 조건, 나중에 하기·구독 버튼 목적지, 구매 성공·대기·실패·취소 뒤 기록 입력과 등록 재개 흐름을 PM에게 확인한다. #881의 계약 확인과 함께 대조한다.

완료 기준

PM의 명시적인 답변과 적용 범위·근거 링크를 기록한다. 답변 전에는 구현·재개·테스트 완료 체크리스트를 예약하지 않는다. 결정 후 최신 코드와 계약을 대조해 실제 필요한 작업만 정의한다. 디자이너에게 질문하거나 태그하지 않으며, 미답변이나 과거 FE 재량 위임을 승인으로 해석하지 않는다.

정리 근거

2026-09-13 사용자 요청에 따라 미확정 구현 예약을 제거했다. 기능 구현 완료를 의미하지 않는다. 기존 댓글의 실측은 참고 자료이며, 상충하는 옛 구현 지시는 현재 범위를 대체하지 않는다.

Activity

  1. OnlyReadOneBook commented on Jul 28, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    2026-07-28 15:42 런타임 실측 — 타임레터 쪽도 같은 상태라 참고로 남깁니다.

    타임레터를 4건째 등록하려 하면 플랜 제한 팝업이 정상적으로 뜹니다.

    현재 플랜은 타임레터를 3건까지만 등록할 수 있습니다.
    구독 시, 더 많은 타임레터를 제한 없이 남기고 관리할 수 있습니다.
    [나중에 하기]  [구독 후 기록하기]
    

    그런데 "구독 후 기록하기" 를 누르면 팝업만 닫히고 아무 일도 일어나지 않습니다(네트워크 요청 0건, 화면 그대로). 코드상 TimeLetterNavGraph.kt:73 에 // TODO: 구독 화면 및 관련 플로우 구현 시 구독 화면 이동으로 변경 이 남아 있습니다.

    즉 구독 화면이 생기면 애프터노트(이 이슈)와 타임레터 양쪽 진입점을 함께 연결해야 합니다. 1차 QA 의 O5 항목이 이것이고, 기획·BE 구독 API 대기 상태는 이 이슈와 동일합니다.

  2. OnlyReadOneBook commented on Aug 23, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    PM BM 문서에 게이팅 범위가 명시됐습니다 — 팝업 트리거 설계 시 기준:

    • 결제 상태로 게이팅하는 건 두 카운터뿐: 타임레터 등록 건수(무료 월 3건) · 애프터노트 등록 개수(무료 3개). 그 외 기능(마음의 기록·주간감정 AI·기억 노트)은 무료·유료 동일 전체 오픈.
    • 결제 상태 확인 지점도 두 곳만: 타임레터 작성 시도 시 · 애프터노트 신규 등록 시. → 이 범위 밖으로 게이트를 넓히지 말 것.
    • 구독은 990원/월 단일 유료 플랜, 결제 시 즉시 무제한 (본문의 06-21 확정 정책과 일치).

    단 08-23 회의에서 "BM 요청 - 추가할거 많음"(PM이 BM 보강 예정) + 결제 경로 재검토(#881 코멘트 참조)가 언급됐으니, 착수 시점에 BM 문서 최신본 재확인 필요.

  3. changed the title [-]feat(afternote): 등록 건수 제한 구독 유도 팝업 — BE 구독 API·시안 정본 확정 선행[/-] [+]등록 건수 제한 구독 유도 팝업 — BE 구독 API·시안 정본 확정 선행[/+] on Aug 28, 2026
  4. OnlyReadOneBook commented on Aug 30, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    게이트 재실측 (2026-08-31) — 게이트가 하나 더 있습니다

    착수 가능 여부를 다시 재다가, 본문에 안 적힌 게이트를 발견했습니다.

    본문에 적힌 게이트 — 둘 다 유효

    1. BE 구독 API — Afternote-BE origin/main(= 실서버 배포 브랜치)에 subscription·plan·entitlement·billing 관련 파일이 0건입니다. [feat] 구독·플랜 조회 및 타임레터 등록 한도 서버 계약 추가 Afternote-BE#223 은 열려 있고, 유일한 구현은 미머지 브랜치에 엔티티·이벤트만 있는 상태로 컨트롤러가 없습니다.
    2. 시안 1안/2안 정본 확정 — 정본 페이지에 4327:66610(1안)·4327:66687(2안)이 둘 다 살아 있습니다. 어느 쪽이 정본인지 아직 안 갈렸습니다.

    새로 확인한 게이트 — 목적지 화면이 시안에 없습니다

    정본 페이지 4327:43064 의 TEXT 노드 6,482건을 전수로 훑었습니다.

    검색어 건수
    구독 7 (전부 유도 팝업 안의 문구)
    플랜 5 (같은 팝업)
    990 · 무제한 · 결제 · 프리미엄 · 요금 · premium · subscription · billing 각 0건

    즉 유도 팝업(「현재 플랜은 최대 3건까지만…」 + 「구독 후 기록하기」)은 그려져 있지만, 그 버튼이 갈 구독/결제 화면 자체가 설계돼 있지 않습니다.

    이게 실무적으로 중요한 이유는, 지금 본문의 게이트만 보면 「BE#223 이 오면 착수 가능」으로 읽히는데 실제로는 그때도 착수가 안 되기 때문입니다. #881(Google Play Billing 연동)도 같은 벽에 막혀 있습니다 — 그쪽 완료 조건이 「실제 Play 상품과 현지 가격을 조회하고 구매할 수 있음」인데 그 화면이 없습니다.

    정리

    게이트 상태
    BE 구독 API (Afternote/Afternote-BE#223) 막힘
    시안 1안/2안 정본 확정 막힘
    구독/결제 화면 시안 자체 미설계 — 디자이너 요청 필요

    세 번째는 디자이너에게 요청해야 풀립니다. BE 작업과 병렬로 진행할 수 있으니 먼저 여는 편이 낫다고 봅니다.

  5. changed the title [-]등록 건수 제한 구독 유도 팝업 — BE 구독 API·시안 정본 확정 선행[/-] [+]등록 한도 도달 시 구독 유도·구매 후 복귀를 PM에게 확인한다[/+] on Sep 12, 2026
  6. OnlyReadOneBook commented on Sep 13, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    착수 가능성 재실측 (2026-09-13)

    PM 답변이 아직 없어 완료 기준은 채우지 못합니다. 다음 착수자가 낡은 전제로 시작하지 않도록, origin/develop 7d87aa3f4 기준 실측만 남깁니다. 구현·체크리스트·디자이너 요청은 적지 않습니다.

    1. 애프터노트 쪽에는 한도 게이트가 아예 없습니다

    07-28 코멘트의 "타임레터 쪽도 같은 상태" 라는 표현은 애프터노트에도 팝업이 있고 버튼만 죽은 것으로 읽히는데, 실제로는 애프터노트에 팝업도 판정도 없습니다. 그 부분을 정정합니다.

    • AfternoteHomeEntry.kt:86 onFabClick = { navigateToAdd(selectedType ?: AfternoteType.SOCIAL_NETWORK) }. 아무 조건 없이 에디터로 갑니다.
    • 신규 등록 진입점은 이 하나뿐입니다. AfternoteHomeRoute.kt:9 → AfternoteLocalNavActions.kt:29-30 → AfternoteNavHost.kt:71, 90. 같은 파일 :37 은 기존 항목 편집 경로라 별개입니다.
    • FREE_PLAN·FreePlanLimit 심볼은 저장소 전체에서 feature/timeletter 의 5개 파일에만 있고 feature/afternote/** 에는 0건입니다. subscription·entitlement·billing 은 *.kt 전체에서 0건입니다. feature/afternote 에 걸리는 "한도" 문자열은 Crashlytics 보관 한도(최근 8건) 주석이라 플랜과 무관합니다.

    즉 무료 3개 한도는 현재 FE 에서 전혀 강제되지 않습니다. 결정이 오면 애프터노트 쪽 작업은 버튼 목적지 연결이 아니라 게이트 신설입니다.

    2. 현행 타임레터 게이트는 클라이언트 카운트입니다 (서버 계약 아님)

    • TimeLetterWriteViewModel.kt:174 getTimeLetters().totalCount, :182 registeredCount >= FREE_PLAN_REGISTER_LIMIT, :708 const val FREE_PLAN_REGISTER_LIMIT = 3.
    • TimeLetterApiService.kt:19-20 의 @GET("time-letters") 에는 기간 파라미터가 없습니다. 따라서 totalCount 는 누적 SCHEDULED 건수이고, 월 경계 개념이 코드에 없습니다.
    • 팝업 문구(TimeLetterWriteScreen.kt:459)도 "3건까지만" 이라 월 표현이 없습니다.

    08-23 코멘트가 인용한 BM 문서의 "타임레터 등록 건수(무료 월 3건)" 과 코드가 어긋납니다. PM 확인 항목 "한도 도달 시 노출 조건" 에 "누적 3건인가 월 3건인가" 를 명시 질문으로 넣어야 답변이 구현 가능한 형태로 돌아옵니다.

    3. 유도 팝업의 확인 버튼은 여전히 죽어 있고, 줄 번호가 옮겨졌습니다

    • 07-28 코멘트가 가리킨 TimeLetterNavGraph.kt:73 은 현재 :89-92 입니다.
    onFreePlanLimitConfirm = {
        // TODO: 구독 화면 및 관련 플로우 구현 시 구독 화면 이동으로 변경
        viewModel.dismissFreePlanLimitPopup()
    },
    • 팝업 자체는 TimeLetterWriteScreen.kt:456-463, 상태 플래그는 TimeLetterWriteUiState.kt:29 입니다.

    4. 게이트 재실측: 08-31 판정 그대로 유효

    • Afternote-BE main 트리 677개 경로 중 subscription·plan·entitlement·billing·purchase 에 걸리는 파일 0건입니다. [feat] 구독·플랜 조회 및 타임레터 등록 한도 서버 계약 추가 Afternote-BE#223 은 OPEN 이고 최종 갱신은 2026-08-22 입니다.
    • 이 저장소 PR 전수 960건(열린 62건 포함)의 제목·본문에서 #470 참조가 0건입니다. 라벨이 아니라 본문 직접 검색이며, 이 이슈 범위를 물고 있는 PR 은 없습니다.
    • 시안 게이트 두 건(1안·2안 정본 미확정, 구독·결제 화면 미설계)은 이번에 재확인하지 못했습니다. 브라우저와 Figma REST 를 쓸 수 없는 조건이었습니다. 마지막 확인 시점은 08-31 코멘트 그대로입니다.

    붙일 자리

    결정이 나면 작업이 두 모듈로 갈립니다. 애프터노트 진입점은 이 이슈(1hyok), 타임레터 진입점은 #1692(koongmai)가 등록 게이트를 SaveTimeLetterUseCase 로 수렴할 예정이라 그 위에 붙습니다.

    본문은 고치지 않았습니다. 위 정정은 전부 본문이 아니라 과거 코멘트의 전제와 줄 번호에 대한 것이고, 본문의 완료 기준(PM 답변과 근거 링크 기록)은 그대로 유효하기 때문입니다.

  7. OnlyReadOneBook commented on Sep 18, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    PM 결정 대기 항목은 깃허브 이슈로 두지 않고 피그마 질문 한 자리에만 둔다(2026-09-18 결정). 이 이슈의 질문은 피그마 스레드에 걸려 있다: https://www.figma.com/design/UP9ZR186jHvRBicjA2SOea/?node-id=4823-17385#1932508350 답이 오면 그 답을 근거로 구현 이슈를 새로 만든다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:afternote애프터노트 기능 영역enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions