콘텐츠로 이동

온보딩

app.engram.page에 처음 로그인하면 Engram이 보관함을 열기 전에 짧은 온보딩 마법사를 안내합니다. 보관함 엔드포인트에 접근하려면 약관 동의와 활성 구독 상태가 필요하기 때문에 이 마법사가 있습니다.

마법사는 두 단계입니다.

  1. 동의. 서비스 이용약관과 개인정보 처리방침에 동의합니다. 현재 유효한 약관 버전을 기준으로 서버 측 user_agreements 테이블에 기록됩니다. 유효 버전은 컴파일 시점 상수가 아니라 terms_versions 테이블에서 동적으로 확인됩니다(Engram.Legal.VersionCache가 메모이제이션).
  2. 결제. 요금제를 고르고 Paddle로 결제를 마칩니다(또는 Paddle을 완전히 건너뛰는 Free를 선택). 각 요금제의 내용은 결제 → 요금제를 참고하세요.

두 단계가 모두 끝나면 보관함 브라우저로 넘어갑니다.

백엔드는 /api/notes, /api/search, /api/folders를 RequireOnboarding 플러그로 감싸 다음을 확인합니다.

  • 이 사용자가 최신 약관에 동의했는지
  • 구독이 정상 상태인지(셀프 호스팅은 이 확인을 완전히 건너뜀)

둘 중 하나라도 실패하면 API가 403을 반환하고 웹 앱이 마법사로 되돌려 보냅니다. 따라서 반쯤 끝난 온보딩의 고장난 상태에 실수로 들어갈 일이 없습니다. 이 관문은 통과시켜 주거나, 빠진 단계를 해결하는 화면을 보여 줍니다.

셀프 호스팅에서는 결제가 기본적으로 꺼져 있습니다(PADDLE_API_KEY가 없으면 config :engram, :billing_enabled가 false). 마법사는 요금제 선택 단계를 건너뜁니다. 약관 동의는 한 번 해야 합니다.

직접 다시 실행할 수는 없습니다. 한 번 동의하면 통과한 것입니다. 약관이 바뀌면 Engram이 서버에서 버전을 올리고, 다음 API 호출이 403을 반환하며, 앱은 약관 동의 단계만 다시 표시합니다. 요금제 변경은 마법사가 아니라 결제 페이지에서 합니다.