본문으로 건너뛰기

합의(Agreements) 도메인 비즈니스 규칙

1. 약관(Term) 관리 규칙

1.1 약관 생성 규칙

  1. 기본 요구사항

    • 약관은 고유 식별자를 가져야 함
    • 버전 번호는 major.minor.patch 형식 사용
    • 생성자 정보 기록 필수
    • 생성 시간은 TimeMachine 사용
  2. 콘텐츠 요구사항

    • 약관은 최소 한 개 이상의 언어로 작성되어야 함
    • 기본 언어(독일어)는 필수
    • 약관 타입(필수/선택)을 명시해야 함
    • 약관 텍스트는 마크다운 형식 지원
  3. 상태 관리

    • 생성 시 초기 상태는 '초안(Draft)'
    • '초안' 상태에서만 내용 수정 가능
    • 최대 저장 가능한 초안 버전 수는 10개
    • 초안 상태의 약관은 운영 환경에 노출되지 않음

1.2 약관 버전 관리 규칙

  1. 버전 규칙

    • 주요 변경은 major 버전 증가
    • 기능 추가는 minor 버전 증가
    • 오탈자 수정은 patch 버전 증가
    • 버전 변경 이력 기록 필수
  2. 버전 활성화

    • 한 시점에 약관 종류별 하나의 버전만 활성화 가능
    • 활성화 시 기존 활성 버전은 자동 비활성화
    • 활성화 전 법무팀 승인 필요
    • 활성화 일정 설정 가능
  3. 버전 비활성화

    • 활성 버전의 비활성화는 신규 버전 활성화 또는 명시적 비활성화로만 가능
    • 비활성화 시 기존 동의 기록 유지
    • 비활성화 사유 기록 필수
    • 비활성화 알림 대상자 설정 가능

1.3 약관 번역 관리 규칙

  1. 번역 요구사항

    • 지원 언어: 독일어(기본), 영어, 한국어
    • 하나의 약관 버전에 언어당 하나의 번역만 허용
    • 번역본은 원본과 의미적으로 동일해야 함
    • 번역 검수 프로세스 필요
  2. 번역 업데이트

    • 번역 추가는 '초안' 또는 '활성' 상태에서 가능
    • 번역 수정은 '초안' 상태에서만 가능
    • 활성 상태의 약관에 번역 추가 시 즉시 반영
    • 번역 변경 이력 기록 필수

1.4 약관 표시 규칙

  1. UI 요구사항

    • 약관은 사용자가 쉽게 읽을 수 있는 형식으로 표시
    • 글자 크기는 최소 12pt 이상
    • 주요 변경 사항은 하이라이트 처리
    • 약관 간 구분이 명확해야 함
  2. 접근성

    • 모든 약관은 스크린 리더 접근 가능해야 함
    • 색상만으로 정보를 구분하지 않음
    • 모바일 기기에서 가독성 보장
    • 다운로드 가능한 형식(PDF) 제공
  3. 이력 표시

    • 사용자는 자신의 약관 동의 이력 조회 가능
    • 현재 적용 중인 약관 버전 표시
    • 약관 변경 예정 시 사전 공지
    • 약관 비교 기능 제공

2. 동의(Consent) 관리 규칙

2.1 동의 데이터 관리 규칙

  1. 사용자 식별

    • 사용자 ID는 필수이며 유효해야 함
    • 사용자는 활성 상태여야 함
  2. 동의 범위

    • 최소 하나 이상의 scope가 지정되어야 함
    • scope는 미리 정의된 값만 사용 가능
    • scope 조합의 유효성 검증 필요
  3. 동의 목적

    • 목적(purpose)은 명확하게 지정되어야 함
    • 목적은 미리 정의된 카테고리에 속해야 함
    • 다국어 지원을 위한 키 값 사용
  4. 유효 기간

    • 만료 시간은 현재 시간보다 미래여야 함
    • 최대 유효 기간은 정책으로 제한
    • 갱신 가능 여부는 목적별로 설정
  5. 메타데이터

    • 메타데이터는 선택사항
    • 제공 시 유효한 JSON 형식이어야 함
    • 민감 정보 포함 불가

2.2 동의 검증 규칙

  1. 형식 검증

    • 동의 데이터가 유효한 형식이어야 함
    • Access Token 내 agreements 클레임이 유효해야 함
    • 필수 속성이 모두 존재해야 함
  2. 상태 검증

    • 동의가 만료되지 않았어야 함
    • 동의가 취소되지 않았어야 함
    • 사용자가 활성 상태여야 함
  3. 범위 검증

    • 요청된 모든 scope가 사용자의 동의 scope에 포함되어야 함
    • scope의 계층 구조 고려
    • scope 조합의 유효성 검증

2.3 동의 취소 규칙

  1. 취소 조건

    • 활성 상태의 동의만 취소 가능
    • 취소 사유는 필수
    • 취소된 동의는 복구 불가
  2. 연관 처리

    • 동의 취소 시 Access Token의 agreements 클레임에서 해당 동의 제거
    • 관련 시스템에 취소 이벤트 발행
    • 사용자에게 취소 알림
    • 취소 이력 기록

2.4 이력 관리 규칙

  1. 이력 기록

    • 모든 동의 작업은 이력 기록
    • 작업자 정보 포함
    • 타임스탬프는 TimeMachine 사용
  2. 감사 요구사항

    • GDPR 요구사항에 따른 이력 보관
    • 이력 데이터 암호화
    • 접근 권한 제한

3. 통합 사용자 동의 관리 규칙

3.1 동의 기록

  • 사용자 동의는 불변 이벤트로 기록
  • 기록에는 사용자 ID, 약관/동의 ID, 버전, 동의 시간, IP 주소 포함
  • 동의 기록은 사용자 계정 삭제 후에도 보관
  • 동의 기록 보관 기간은 법적 요구사항에 따름

3.2 동의 요구사항

  • 필수 약관 및 동의에 대한 동의 없이는 서비스 사용 불가
  • 선택 약관 및 동의는 동의 없이도 기본 서비스 이용 가능
  • 약관/동의 변경 시 주요 변경의 경우 재동의 필요
  • 재동의 요청은 로그인 시 또는 푸시 알림으로 제공

3.3 동의 철회

  • 선택 약관 및 동의에 대한 동의는 철회 가능
  • 필수 약관 및 동의 철회는 서비스 이용 중단으로 처리
  • 동의 철회 시 관련 기능 즉시 비활성화
  • 동의 철회 기록 유지

3.4 통합 UI 표시 규칙

  • 모바일 회원가입 및 약관 변경 시 약관(TERMS)과 동의(CONSENT) 항목을 하나의 통합된 화면에 표시해야 함
  • 통합 화면에서는 타입별로 그룹화하여 사용자의 이해를 돕는 UI 구성 필요
  • 통합 화면에서 필수 항목은 모두 동의해야 다음 단계로 진행 가능
  • 통합 화면에서 모든 항목(TERMS, CONSENT)에 대한 일괄 동의 옵션 제공 필요
  • 일괄 동의 후 개별 항목 철회 시 일괄 동의 상태도 자동 해제
  • 약관 본문 내용과 동의 항목 설명은 통합 화면에서 모달 또는 팝업으로 표시
  • 통합 화면에서의 사용자 동의는 단일 API 호출로 일괄 처리

4. 데이터 모델 규칙

4.1 통합 저장소 관리

  • 약관(Term)과 동의(Consent)는 단일 통합 테이블에 저장한다.
  • 각 레코드는 type 필드로 구분한다. 사용 가능한 타입:
    • TERMS: 서비스 이용 약관
    • CONSENT: 일반 동의 (기존 호환성 유지)
    • CONSENT_AGE_VERIFICATION: 만 14세 이상 확인 동의
    • CONSENT_PERSONAL_DATA: 개인정보 수집·이용 동의
    • CONSENT_SENSITIVE_DATA: 민감정보 수집·이용 동의
    • CONSENT_SENSITIVE_DATA_HEALTH: 건강정보(민감정보) 수집·이용 동의
    • PRIVACY_POLICY: 개인정보 처리방침
  • 공통 속성은 기본 필드로, 타입별 특수 속성은 확장 필드나 JSON 속성으로 관리한다.
  • 약관과 동의 레코드를 동일한 ID 체계로 관리하여 참조 일관성을 유지한다.
  • 인덱싱 전략은 type 필드를 포함하여 성능을 최적화한다.

5. 변경 이력

버전날짜작성자변경 내용
0.1.02025-05-08bok@weltcorp.com최초 작성 (약관 및 동의 비즈니스 규칙 통합)