콘텐츠로 이동

명시적 플로우

명시적(explicit) 동의 플로우는 사용자가 각 약관 항목에 대해 체크박스를 직접 선택하여 동의하는 방식이에요. 법적 요구사항이 엄격한 환경이나, 선택적 동의 항목(마케팅 수신 등)을 제공하고 싶을 때 적합해요.


terms 섹션에서 consent_modeexplicit으로 설정해요 (기본값이므로 생략할 수도 있어요).

config.yaml
terms:
- id: tos
required: true
consent_mode: explicit
version: "1.0.0"
content:
ko:
title: 이용약관
type: link
content: https://example.com/ko/terms
en:
title: Terms of Service
type: link
content: https://example.com/en/terms
- id: privacy
required: true
consent_mode: explicit
version: "1.0.0"
content:
ko:
title: 개인정보 처리방침
type: link
content: https://example.com/ko/privacy
en:
title: Privacy Policy
type: link
content: https://example.com/en/privacy
- id: marketing
required: false
consent_mode: explicit
version: "1.0.0"
content:
ko:
title: 마케팅 수신 동의
type: text
content: 마케팅 이메일 및 프로모션 알림을 수신하시겠어요?
en:
title: Marketing Communications
type: text
content: Would you like to receive marketing emails and promotional notifications?

항목필수기본값설명
idO-약관의 고유 식별자예요. 소문자 영숫자, -, _만 사용할 수 있어요.
requiredXtrue동의 필수 여부예요. true이면 체크하지 않으면 가입할 수 없어요.
consent_modeXexplicitexplicit으로 설정하면 체크박스가 표시돼요.
versionO-약관의 버전 문자열이에요.

약관 내용(content)은 언어별로 두 가지 유형을 지원해요.

외부 URL로 약관 전문을 연결해요. 체크박스 옆에 약관 이름이 링크로 표시돼요.

content:
ko:
title: 이용약관
type: link
content: https://example.com/ko/terms

약관 내용을 인라인으로 표시해요. 체크박스 옆의 약관 이름을 클릭하면 내용이 모달 창으로 표시돼요.

content:
ko:
title: 마케팅 수신 동의
type: text
content: 마케팅 이메일 및 프로모션 알림을 수신하시겠어요?

비밀번호 기반 회원가입 화면에서 명시적 약관 항목이 체크박스로 표시돼요.

  • required: true인 약관은 반드시 체크해야 가입이 가능해요.
  • required: false인 약관은 선택 사항이에요.

명시적 약관이 하나라도 존재하는 경우, 새로운 사용자의 소셜 로그인 시 별도의 약관 동의 페이지(/terms)로 이동해요. 사용자가 필수 약관에 동의한 후에야 계정 생성이 완료돼요.


약관의 version 값을 변경하면, 해당 약관에 이미 동의한 기존 사용자에게 재동의를 요청할 수 있어요.

# 기존
- id: tos
version: "1.0.0"
# 변경 후
- id: tos
version: "2.0.0"

버전이 변경되면:

  1. 기존 사용자가 다음 로그인 시 약관 동의 페이지(/terms)로 이동해요.
  2. 업데이트된 약관 옆에 버전이 변경되었다는 안내가 표시돼요.
  3. 사용자가 재동의하면 새 버전으로 동의 기록이 갱신돼요.