AI 활용

Google OAuth "테스트 중"이면 리프레시 토큰 7일 만료: 프로덕션 게시 절차와 Gmail 제한된 범위 검토

Google OAuth "테스트 중"이면 리프레시 토큰 7일 만료: 프로덕션 게시 절차와 Gmail 제한된 범위 검토

Photo: Google for Developers (紹介目的で使用) via developers.google.com

안녕하세요, まさきん입니다.

Google OAuth 게시 상태가 “테스트 중”이면 리프레시 토큰은 7일 만에 만료됩니다. 저도 건강 데이터를 가져오는 개인용 도구에서 이 기한을 알게 됐습니다. Gmail 제한된 범위 검토까지 포함해, 프로덕션으로 게시하는 절차를 공식 자료로 정리해 둡니다.

※글 작성 시점의 정보입니다. 최신 조건은 공식 사이트에서 확인해 주세요.

POINT
  • 게시 상태가 “테스트 중”인 외부용 앱은 리프레시 토큰이 7일 만에 만료됩니다
  • 개인 도구라도 “프로덕션”으로 게시하면 7일 기한이 적용되지 않습니다
  • 게시하려면 홈페이지와 개인정보처리방침 URL이 필요합니다. 연락처 이메일만으로는 부족합니다
  • 민감한 범위나 제한된 범위는 프로덕션이라도 검토 전에는 미확인 앱 경고가 뜹니다
  • 6개월 미사용이나 토큰 개수 상한 등, 7일 외에도 만료되는 조건이 있습니다

7일 만에 만료되는 구조

결론부터 말하면, Google 공식 문서에 다음과 같은 취지의 내용이 있습니다.

외부 사용자용이면서 게시 상태가 “테스트 중”인 프로젝트. 여기서 발급된 리프레시 토큰은 7일 만에 만료됩니다.

예외도 있습니다. 요청하는 범위가 이름, 이메일 주소, 프로필뿐인 경우입니다. 구체적으로는 userinfo.email, userinfo.profile, openid 범위 안에 들어갈 때입니다. Google 로그인만 하는 앱이라면 7일 기한은 적용되지 않습니다.

반대로 말하면 Gmail이나 캘린더 데이터를 읽는 앱은 대상입니다. 건강 관련 데이터도 마찬가지입니다. 개인용 스크립트라도 사용자 유형이 외부라면 똑같이 취급됩니다.

”테스트 중”과 “프로덕션”의 차이

게시 상태는 Google Auth Platform의 “대상” 화면에서 확인할 수 있습니다. 예전의 “OAuth 동의 화면”에 해당하는 곳입니다. 두 상태의 차이를 정리하면 다음과 같습니다.

항목테스트 중(Testing)프로덕션(In production)
사용할 수 있는 사람등록한 테스트 사용자만Google 계정이 있는 모든 사람
테스트 사용자 상한최대 100명없음
동의 유효 기간동의 후 7일에 만료7일 기한 없음
리프레시 토큰7일에 만료다른 만료 조건에 걸릴 때까지 유효
동의 전 경고테스트 액세스 경고 표시민감한 범위는 검토 전 경고
검토대상 아님범위에 따라 필요

테스트 중은 어디까지나 개발용 상태라는 위치입니다. 테스트 사용자로 추가한 사람만 동의할 수 있고, 그 동의도 7일이면 끝납니다.

반면 프로덕션은 누구나 동의할 수 있는 상태입니다. 매일 자동으로 돌리는 개인 도구라면 프로덕션 쪽이 운영에 더 맞을 수 있습니다.

제 도구에서 일어난 일

제 도구는 Google의 Health 계열 API를 쓰고 있었습니다. 프로젝트 게시 상태는 “테스트 중” 그대로였습니다.

그래서 갖고 있던 리프레시 토큰은 발급 후 7일이면 만료될 예정이었습니다. 만료되면 자동 가져오기가 멈춰 버립니다. 그래서 브랜딩 항목을 채우고 “프로덕션”으로 게시하기로 했습니다.

프로덕션으로 게시하는 절차

공식 도움말의 흐름과 제가 실제로 거친 순서를 정리합니다.

  1. Google Cloud 콘솔을 열고 화면 상단의 프로젝트 선택을 확인한다
  2. Google Auth Platform의 “브랜딩”을 연다
  3. 앱 이름과 사용자 지원 이메일을 확인한다
  4. 앱 홈페이지와 개인정보처리방침 URL을 입력한다
  5. 승인된 도메인에 해당 URL의 도메인을 추가한다
  6. 개발자 연락처 이메일을 입력하고 저장한다
  7. “대상” 화면에서 “앱 게시”를 누르고 확인 화면에서 진행한다
  8. 게시 상태가 “프로덕션”이 되었는지 확인한다
  9. 도구 쪽에서 다시 동의하고 리프레시 토큰을 새로 받는다

공식 도움말에서는 승인된 도메인을 먼저 등록하라고 안내합니다. 홈페이지 등의 URL보다 먼저 넣어 두면 되돌아가는 일이 줄어들 겁니다.

도중에 막혔던 두 가지

프로젝트를 착각하고 있었다

첫 번째로 막힌 곳은 사소한 부분이었습니다. 열어 둔 Google Cloud 콘솔이 다른 프로젝트였던 겁니다. 블로그 접속 분석용으로 만든 프로젝트였습니다.

Google Cloud 콘솔은 마지막으로 연 프로젝트를 기억합니다. 그래서 별생각 없이 열면 엉뚱한 곳에 있을 수 있습니다. 작업 전에 화면 상단의 프로젝트 이름을 한 번 본다. 이것만으로 막을 수 있는 일이었습니다.

개인적으로 프로젝트를 여러 개 갖고 있으면 이름이 비슷해지기 마련입니다. 용도를 알 수 있는 이름을 붙여 두는 것도 은근히 효과적인 대책일 수 있습니다.

연락처 이메일만으로는 게시할 수 없다

두 번째는 게시 버튼이 활성화되지 않았던 일입니다. 처음에는 연락처 이메일만 입력해 두었습니다.

게시하려면 앱 홈페이지와 개인정보처리방침 URL이 필요했습니다. 공식 도움말에도 외부용 프로덕션 앱에는 이 링크들이 필수라고 나와 있습니다. 링크가 빠져 있으면 검토를 신청할 수도 없다고 합니다.

게시에 필요했던 것

브랜딩 화면에서 요구하는 항목을 공식 도움말을 바탕으로 정리합니다.

항목내용공식 도움말상의 취급
앱 이름동의 화면에 표시되는 이름Google 상표와 혼동되는 이름은 불가
사용자 지원 이메일사용자 문의처본인 주소 또는 본인이 관리하는 그룹
앱 홈페이지앱을 설명하는 페이지외부용 프로덕션 앱에서는 필수
개인정보처리방침데이터 취급을 적은 페이지외부용 프로덕션 앱에서는 필수
서비스 약관앱의 약관 페이지선택
승인된 도메인위 URL들의 도메인URL을 넣기 전에 등록
개발자 연락처Google의 알림 수신처최신 상태로 유지하라는 안내 있음
로고동의 화면 아이콘프로덕션에서는 검토 후 표시

로고는 선택입니다. 다만 외부용 프로덕션 앱에 로고를 올리면 검토가 필요해집니다. 개인 도구라면 비워 두는 쪽이 손이 덜 갈 거라고 생각합니다.

홈페이지와 방침 페이지로 무엇을 쓸까

저는 홈페이지와 개인정보처리방침에 제 블로그 페이지를 썼습니다. 승인된 도메인에는 otokuken.com을 추가했습니다.

공식 도움말에는 검토를 받을 때의 요건도 적혀 있습니다. 홈페이지는 본인이 소유한 확인된 도메인에 둘 것. 개인정보처리방침은 홈페이지와 같은 도메인에 두고, 홈페이지에서 링크할 것. 방침에는 Google 사용자 데이터를 어떻게 다루는지 적을 것 등입니다.

검토를 받지 않는다면 여기까지 엄격하지 않아도 게시는 가능할지 모릅니다. 하지만 나중에 검토가 필요해질 가능성도 있습니다. 처음부터 요건에 맞춰 두면 안심입니다.

범위에 따라 검토가 필요하다

프로덕션으로 게시해도 모든 게 자유로워지는 건 아닙니다. 핵심은 범위(scope)의 구분입니다.

범위 구분검토검토 전 동작
민감하지 않음불필요(이름과 로고를 표시하려면 브랜드 검토)경고 없이 동의 가능
민감함필요미확인 앱 경고 표시
제한됨필요. 추가로 연 1회 보안 평가미확인 앱 경고 표시

구분은 Cloud 콘솔에서 범위를 추가할 때 자동으로 표시됩니다. 내 앱이 어디에 해당하는지는 거기서 확인할 수 있습니다.

한편 개인용 앱에는 예외가 있습니다. 공식 도움말에 따르면 사용자가 100명 미만인 개인용 앱은 검토 없이 계속 쓸 수 있습니다. 이 경우 사용자는 로그인할 때 미확인 앱 경고를 넘기고 진행하는 방식입니다.

미확인 앱 경고와 사용자 상한

검토 전에 민감한 범위를 요청하면 동의 화면 앞에 경고가 뜹니다. “Google에서 확인하지 않은 앱입니다”라는 취지의 화면입니다.

사용자 수 상한도 있습니다. 미확인 앱 화면을 띄우는 앱은 신규 사용자가 합계 100명까지입니다. 이 상한은 프로젝트 전체 기간에 적용되며 초기화할 수 없다고 적혀 있습니다.

혼자 쓰는 도구라면 이 상한이 문제될 일은 거의 없을 겁니다. 다만 가족이나 지인에게도 쓰게 할 생각이라면 인원수를 의식해 두는 게 좋겠습니다.

주기적으로 만료되거나 갱신이 필요한 것들을 정리하는 김에, 매달 나가는 통신비도 함께 다시 보면 어떨까요. 고정비 전체가 조금 가벼워질 수도 있습니다.

가입하지 않아도 100포인트를 받는 요금 시뮬레이션 라쿠텐 모바일로 휴대폰 요금 다시 보기

누르면 라쿠텐 로그인 페이지가 열립니다. 로그인하면 캠페인 내용이 표시됩니다.

7일 외에 토큰이 만료되는 조건

프로덕션으로 바꿔도 리프레시 토큰이 영원하지는 않습니다. 공식 문서에 나온 만료 조건을 정리합니다.

조건내용
사용자가 액세스를 취소함Google 계정 쪽에서 앱 연결을 해제한 경우
6개월간 사용하지 않음리프레시 토큰을 6개월 동안 쓰지 않은 경우
비밀번호를 변경함Gmail 범위가 포함된 토큰인 경우
토큰 개수 상한계정 1개·클라이언트 ID 1개당 최대 100개
시간 제한이 있는 허용기간을 정해 허용했고 그 기간이 지난 경우
관리자 제한Workspace 관리자가 서비스를 제한한 경우
세션 제어Google Cloud 조직에서 세션 길이가 정해져 있는 경우

특히 조심할 것은 토큰 개수 상한입니다. 상한에 도달하면 가장 오래된 토큰이 경고 없이 무효화됩니다. 시험 삼아 여러 번 다시 동의하다 보면, 실제로 쓰던 토큰이 사라질 수도 있습니다.

전체 상한도 있어서, 공식 문서에서는 허용하는 클라이언트를 계정 1개당 15~20개 정도로 줄이는 우회책을 소개하고 있습니다.

토큰 다시 받기

프로덕션으로 게시했다면 다음은 토큰을 다시 받는 일입니다. 테스트 중에 받은 동의는 동의 후 7일이면 만료된다고 공식적으로 적혀 있습니다. 그래서 게시 후에 본인이 다시 동의하는 조작이 필요합니다.

저도 토큰은 아직 다시 받지 않았습니다. 도구의 인증 흐름을 돌려서 브라우저에서 다시 동의할 예정입니다.

새로 받았다면 옛 토큰은 쓰지 않도록 해 두는 게 좋겠습니다. 새 토큰으로 저장 위치를 덮어쓰고 옛 토큰은 지운다. 보관 장소가 여러 곳이면 어느 게 살아 있는지 모르게 될 수 있습니다.

흔한 실수와 함정

지금까지의 내용을 흔한 실수 형태로 정리해 둡니다.

실수일어나는 일예방법
다른 프로젝트에서 작업함설정이 반영되지 않음작업 전에 프로젝트 이름 확인
URL 없이 게시하려 함게시 버튼을 누를 수 없음홈페이지와 방침 페이지를 먼저 준비
승인된 도메인을 뒤로 미룸URL 등록 단계에서 막힘도메인을 먼저 추가
게시만 하고 안심함옛 토큰이 7일 만에 만료게시 후 동의를 다시 받기
여러 번 다시 동의함옛 토큰이 경고 없이 무효화다시 받기는 필요할 때만
반년 동안 돌리지 않음토큰이 만료됨정기적으로 동작하는 구조로 만들기

개인 도구는 멈춰도 아무도 알려 주지 않습니다. 그러니 만료됐을 때 에러로 알아챌 수 있게 만들어 두는 것도 중요하다고 생각합니다.

무료 한도에 걸려 멈춘 이야기는 Cloudflare Workers 무료 플랜의 Cron Triggers 상한에 걸렸을 때의 대처법에도 정리해 두었습니다. 개인 자동화는 이렇게 “조용히 멈추는” 부분이 가장 큰 약점일지도 모릅니다.

시작하기 전에 확인할 것

주의

테스트 중에 받은 동의는 동의 후 7일이면 만료된다고 공식적으로 나와 있습니다. 프로덕션으로 게시해도 연장되지 않는다고 생각하는 편이 안전합니다. 게시 후에는 다시 동의해서 토큰을 새로 받아 주세요.

자동화의 전체 그림은 아침 준비하는 동안 AI에게 한 장짜리 ‘오늘의 브리핑’을 만들게 하는 이야기에도 썼습니다. 이런 구조도 뒤에서는 토큰이 받쳐 주고 있는 셈입니다.

자주 묻는 질문

Q. 테스트 중인 채로 두면 토큰은 얼마 만에 만료되나요?

외부 사용자용이면서 테스트 중인 프로젝트에서는 7일 만에 만료됩니다. 동의한 시점부터 7일입니다. 이름·이메일·프로필 범위만 쓴다면 이 기한은 적용되지 않습니다.

Q. 개인적으로만 써도 프로덕션으로 게시해도 되나요?

게시할 수 있습니다. 공식 도움말에서도 사용자가 100명 미만인 개인용 앱은 검토 없이 계속 쓸 수 있다고 합니다. 다만 민감한 범위에서는 미확인 앱 경고가 뜹니다.

Q. 게시 버튼이 눌리지 않는 이유는 무엇인가요?

브랜딩의 필수 항목이 빠져 있을 가능성이 있습니다. 외부용 프로덕션 앱에는 홈페이지와 개인정보처리방침 URL이 필요합니다. 승인된 도메인 등록도 확인해 주세요.

Q. 게시하면 지금 토큰을 그대로 쓸 수 있나요?

테스트 중에 받은 동의는 동의 후 7일이면 만료된다고 공식적으로 나와 있습니다. 그러니 게시 후에 다시 동의해서 토큰을 새로 받는 것이 확실합니다. 다시 받으려면 본인의 조작이 필요합니다.

Q. 검토는 반드시 받아야 하나요?

민감한 범위나 제한된 범위를 일반 사용자 대상으로 쓴다면 검토가 필요합니다. 개인용이고 100명 미만이라면 검토 없이 계속 쓸 수 있는 예외가 있습니다. 제한된 범위는 연 1회 보안 평가도 요구됩니다.

Q. 테스트 사용자는 몇 명까지 등록할 수 있나요?

테스트 중인 프로젝트에서 테스트 사용자는 최대 100명입니다. 한 번 추가하면 그 인원만큼 자리를 쓰는 것으로 취급됩니다.

Q. 프로덕션이면 토큰을 계속 쓸 수 있나요?

계속은 아닙니다. 6개월 동안 쓰지 않았거나 사용자가 액세스를 취소했을 때 만료됩니다. 계정 1개·클라이언트 ID 1개당 100개라는 상한도 있습니다.

Q. 로고나 앱 이름은 동의 화면에 표시되나요?

앱 이름이나 로고를 표시하려면 검토가 필요하다고 공식 도움말에 나와 있습니다. 검토 전에는 앱의 도메인이 표시되는 형태입니다. 개인 도구라면 로고를 올리지 않는 쪽이 손이 덜 갈 수 있습니다.

참고한 공식 자료

마무리

리프레시 토큰이 7일 만에 만료되는 원인은 게시 상태의 “테스트 중”이었습니다. 개인 도구라도 프로덕션으로 게시하면 이 기한은 사라집니다.

필요했던 것은 홈페이지와 개인정보처리방침 URL, 그리고 승인된 도메인 등록이었습니다. 그 밖에는 프로젝트를 착각하지 않도록 주의하는 것. 저는 이제 토큰을 다시 받는 단계로 넘어갑니다.

자동으로 돌아가는 구조가 있다면, 한 번쯤 게시 상태만이라도 확인해 보세요.

가입하지 않아도 100포인트를 받는 요금 시뮬레이션 라쿠텐 모바일 요금제 확인하기

누르면 라쿠텐 로그인 페이지가 열립니다. 로그인하면 캠페인 내용이 표시됩니다.

이 글에는 제휴 광고가 포함되어 있습니다. 이 사이트의 링크를 통해 상품·서비스에 신청하시면 제휴사로부터 보상을 받을 수 있습니다. 또한 운영자는 라쿠텐 그룹 소속 직원으로, 사원 추천 프로그램을 통해 보상을 받는 경우가 있습니다. 기사 내용과 평가는 광고 유무와 관계없이 운영자의 실제 경험과 조사를 바탕으로 작성했지만, 위 관계를 이해하신 후 읽어 주시기 바랍니다. 자세한 내용은 면책조항·제휴 링크 안내를 참고해 주세요. 면책조항·제휴 링크 안내

이 글에는 기계 번역이 포함되어 있습니다. 정확한 조건은 라쿠텐 모바일 공식 사이트의 다국어 페이지에서 확인해 주세요.

라쿠텐 모바일의 통신 지역·전파 상황이 궁금하신 분은, 공식 전파 개선·조사 요청 양식 을 통해 문의하실 수 있습니다.

ABOUT THE AUTHOR
まさきん

라쿠텐 그룹 근무·디지털 마케터(FP 자격 보유)

40대 초반, 맞벌이·네 자녀의 아빠. 라쿠텐 그룹에서 디지털 마케터로 근무하면서, 재무설계사(FP) 자격을 활용해 가계 관리와 자산 형성에도 힘쓰고 있다.

프로필 보기

관련 글

RELATED
Gemini(Google AI Pro) 패밀리 공유는 가족 5명까지. 설정 절차와 범위 AI 활용

Gemini(Google AI Pro) 패밀리 공유는 가족 5명까지. 설정 절차와 범위

Google AI Pro는 관리자 외에 가족 5명까지 공유할 수 있습니다. Gemini 앱과 저장용량은 공유되고 YouTube Premium Lite는 관리자만. Flow 한도는 가족이 나눠 씁니다. 설정 절차와 자녀 계정 처리를 공식 도움말로 정리했습니다.

2026.10.13 · 읽는 시간 약 13분
AI 구독 청구일과 가계부가 어긋나는 3가지 이유|Claude는 업그레이드하면 청구일이 바뀐다 AI 활용

AI 구독 청구일과 가계부가 어긋나는 3가지 이유|Claude는 업그레이드하면 청구일이 바뀐다

Claude는 월 중간에 Max로 올리면 청구 주기가 리셋되어 그날이 새로운 청구일이 됩니다. 달러 결제의 엔화 환산은 카드사에 데이터가 도착한 시점에 정해지고, 명세와 가계부 반영은 며칠 늦습니다. 영수증 메일을 기준으로 월을 정하는 5단계를 정리했습니다.

2026.10.13 · 읽는 시간 약 14분
freee 회계의 미처리 내역을 월 1회 대사 작업으로. 매월 5일 7:30·3구분·상한 15건으로 사람에게 넘기는 설계 AI 활용

freee 회계의 미처리 내역을 월 1회 대사 작업으로. 매월 5일 7:30·3구분·상한 15건으로 사람에게 넘기는 설계

freee 회계의 미처리 내역이 18건 정도, 주간 확인 6번 동안 움직이지 않은 채 남아 있었습니다. 매월 5일 아침 7:30에 집 Mac에서 돌리는 대사 작업의 설계와, 확정할 수 있는 분은 월 1건, 망설여지는 내역은 1건씩 상한 15건으로 사람에게 넘기는 기준을 정리합니다.

2026.10.12 · 읽는 시간 약 15분
라쿠텐 모바일로 전환 시 최대 14,000포인트 가입하지 않아도 100포인트를 받는 요금 시뮬레이션 →
지금 신청하기 →