GDPR 정책
최종 업데이트: 2026년 10월 17일 · v3.4 · v3.4 변경 사항: 제4.3조 및 제5조 — 계약 종료 시 고객에게 감사 추적의 완전한 내보내기가 삭제 전에 제공됩니다. 단, 고객이 서면으로 수령을 거부하거나 합리적인 시도 후에도 연락이 되지 않는 경우는 제외됩니다. 이후 YARDtwin은 고객의 서면 지시가 있는 경우에만 감사 기록을 보유하며, 만료 전 백업 및 인수인계에 관한 자체 기록은 제외됩니다.
적용 규정: EU 일반 데이터 보호 규정(2016/679), 아일랜드 데이터 보호법 2018
1. 당사의 약속
YARDtwin Ltd는 일반 데이터 보호 규정(GDPR)을 완전히 준수할 것을 약속합니다. 당사는 자체 고객 데이터에 대한 데이터 컨트롤러이자 고객을 대신하여 운영 데이터를 처리하는 데이터 처리자로서, 모든 단계에서 개인 데이터를 보호하기 위한 적절한 기술적·조직적 조치를 시행합니다.
2. 역할 및 책임
3. 데이터 처리 계약 (DPA)
모든 고객은 다음 셀프서비스 페이지에서 당사의 데이터 처리 계약을 검토하고 동의할 수 있습니다: DPA 페이지. 유료 플랜 고객은 데이터 처리 계약의 검토용 사본을 다음 주소로 요청할 수 있습니다: dpo@yardtwin.com. 상호 서명된 버전은 회사 등록이 완료된 후 발급됩니다.
4. 기술적 조치 (GDPR 제32조)
전송 중인 모든 데이터는 암호화됩니다(TLS 1.2+). 비밀번호는 bcrypt(12 라운드)로 해시 처리됩니다. PostgreSQL Flexible Server는 저장 데이터에 대해 투명한 데이터 암호화를 사용합니다. Azure Blob Storage는 저장 시 암호화됩니다. 운전면허증 이미지와 서명은 Azure Storage 및 Azure Database for PostgreSQL에 의해 저장 시 AES-256으로 암호화되며(Microsoft 관리 키), 이에 대한 액세스는 역할과 조직에 따라 제한됩니다. JWT 토큰은 암호학적으로 서명됩니다(HS256). 시크릿은 App Service 관리 ID를 통해 액세스되는 Azure Key Vault로 관리되며, 코드·환경 파일·컨테이너 이미지에는 시크릿이 포함되지 않습니다.
인증된 라우트에 역할 기반 접근 제어(RBAC)를 적용하며, 테넌트 범위 지정은 서버 측에서 강제됩니다. 테넌트 격리는 모든 릴리스 전에 자동으로 테스트됩니다. 릴리스 게이트의 크로스 테넌트 검사는 한 조직의 자격으로 다른 조직의 레코드 ID를 사용하여 API를 호출하며, 해당 조직의 데이터를 읽거나 변경할 수 있는 경우 릴리스가 차단됩니다. 단일 로그인(SAML 2.0, Google, Microsoft), 시간 기반 일회용 비밀번호 MFA(플랫폼 관리자에게 필수, 모든 사용자에게 제공).
사용자 동작에 대한 완전한 감사 로깅: 사용자 신원, 타임스탬프, IP 주소, 동작 유형, 영향을 받은 엔티티, 변경 전후 값. GMP 관련 동작은 별도로 표시됩니다(is_gmp_relevant=1). 변조 탐지 가능하며 추가 전용으로, 해시 체인을 통해 데이터베이스에서 적용됩니다. GMP 관련 항목은 서비스 계약 존속 기간 동안 최소 7년간 보존되며, 그 밖의 감사 항목은 365일간 보존됩니다. Art. 17에 따른 삭제 요청 시 삭제되지 않고 가명처리됩니다(Art. 17(3)(b) 법적 의무 우선 적용). 계약 종료 시 고객에게 감사 추적의 완전한 내보내기가 삭제 전에 제공됩니다. 단, 고객이 서면으로 수령을 거부하거나 합리적인 시도 후에도 연락이 되지 않는 경우는 제외됩니다. YARDtwin은 고객의 서면 지시가 있는 경우에만 더 오래 보존하며, 만료 전 백업 및 인수인계에 관한 자체 기록은 제외됩니다.
Microsoft Azure(스웨덴 중부 + 노르웨이 동부, EEA) 호스팅. Azure Container Registry를 통해 스테이징 슬롯 교체 방식으로 배포되는 컨테이너화된 App Service. 트래픽은 방지 모드(Prevention mode)의 웹 애플리케이션 방화벽(WAF)이 적용된 Azure Front Door를 통해 애플리케이션에 도달하며, 데이터베이스는 Azure 서비스 및 관리자 IP 허용 목록에서만 접속을 허용합니다. Application Insights는 Postgres "column / relation does not exist" 오류(15분 윈도우)에 대한 스키마 드리프트 경보를 제공합니다. 종단 간 /health/db-write 프로브가 모든 배포 시 애플리케이션의 데이터베이스 쓰기+읽기 가능 여부를 검증합니다.
당사는 서비스 제공에 필요한 데이터만 수집합니다. 고객 프로세스에서 허용하는 경우 선택적 운전기사 필드(전화번호, 이메일)는 공란으로 둘 수 있습니다. 게이트 직원은 게이트 증빙을 위해 운전기사의 얼굴 사진을 촬영할 수 있습니다. 사이트에서 AI 얼굴 비교를 활성화한 경우, 당사의 AI 제공업체(Anthropic)가 해당 사진을 면허 사진 또는 저장된 운전기사 사진과 1:1로 비교하여 직원이 운전기사 신원을 확인하는 데 도움을 줍니다. 결과는 참고 정보이며, 게이트 직원이 최종 결정을 내리고 확인되지 않은 운전기사도 사유를 입력하여 입장을 허가할 수 있습니다. 각 비교 결과는 당사 서버에 기록됩니다. 얼굴 비교가 비활성화된 경우(기본값), AI 제공업체에 얼굴 사진이 전송되지 않으며 직원이 직접 면허 사진과 비교합니다. AI 판독이 활성화된 경우 면허 이미지는 여전히 AI로 판독됩니다. YARDtwin은 얼굴 템플릿을 저장하지 않으며 1:다(多) 식별을 수행하지 않습니다. 뉴스레터는 이메일과 선택적 회사명만 수집합니다.
모든 풀 리퀘스트는 병합 전에 npm audit(의존성 취약점), Semgrep(정적 분석), gitleaks(시크릿 스캔)를 통과해야 하며, Trivy 컨테이너 이미지 스캔은 권고 검사로 실행됩니다. 이러한 검사는 master 브랜치에 대한 모든 푸시 및 야간에도 실행되며, 프로덕션 사이트에 대한 OWASP ZAP 기준 스캔(동적 테스트)도 권고 검사로 함께 실행됩니다. Dependabot 알림은 의존성에서 새로 공개된 취약점을 보고합니다.
5. 정보주체 권리 (GDPR 제3장)
당사는 모든 정보주체 권리 행사를 지원합니다:
POST /api/v1/dsar/erase/by-email 검증된 요청에 따라, 선택된 고객 계정 내 해당 인물의 사용자 계정을 익명 처리하고, 해당 인물의 세션, 토큰, 알림, 대기 중인 초대, 뉴스레터 및 가입 기록, 본인 아바타를 삭제함. 고객이 보유한 운영 기록(예약, 게이트 및 방문 기록, 드라이버 명단, 연락처)은 컨트롤러로서 고객의 기록이며, 고객이 조치할 수 있도록 목록으로 제공됨. 감사 추적은 GMP 무결성을 위해 익명화된 행위자 참조를 유지하며, GMP 관련 감사 데이터는 서비스 계약이 유효한 동안 Art. 17(3)(b) 법적 의무 우선 적용에 따라 최소 7년간 보유되고, 계약 종료 시 고객에게 내보내기가 제공된 후(고객이 서면으로 거부하거나 합리적인 시도 후에도 연락이 되지 않는 경우 제외) 삭제됨.6. 동의 관리
뉴스레터: 명시적 옵트인 동의가 필요합니다. 동의 타임스탬프와 IP가 기록됩니다. 모든 커뮤니케이션에 수신 거부 링크가 포함됩니다. 서비스 이용에 영향 없이 언제든지 동의를 철회할 수 있습니다.
서비스 약관: 계정 생성은 서비스 이용약관에 대한 동의로 간주됩니다(계약 근거). 회원가입 시 데이터 처리에 관한 안내가 제공됩니다.
쿠키: ePrivacy 지침에 따라 첫 방문 시 쿠키 동의 배너가 표시됩니다. 사용자는 필수 쿠키만 선택하거나 모든 쿠키를 허용할 수 있습니다. 설정은 로컬에 저장되며 언제든지 변경할 수 있습니다.
7. 데이터 침해 절차 (제33~34조)
자동화된 탐지: 침해 모니터 워커는 5분마다 감사 로그를 확인하여 아래 세 가지 이상 징후를 잠재적 인시던트로 기록하며, 나머지 세 가지는 별도의 Azure 모니터링 알림으로 처리됩니다:
- 1시간 내 동일 이메일 주소에 대해 로그인 실패 10회 이상
- 24시간 내 동일 이메일을 대상으로 하는 서로 다른 소스 IP 5개 이상
- 해당 사용자에 대해 최근 30일 내 확인된 적 없는 소스 IP에서의 로그인 성공
- 5분 내에 서버 오류(HTTP 5xx)가 10건을 초과하는 경우
- Postgres "column / relation does not exist" 오류(스키마 드리프트, App Insights)
- 웹사이트 가용성 테스트(10분마다 실행)가 실패하거나 응답이 느린 경우
침해 등록부: 탐지된 모든 이상 징후는 breach_register 테이블에 상태 머신(탐지됨 → 조사 중 → 확인됨 → 통보됨 → 종료됨), 심각도, 범위, 영향받은 정보주체, DPC 기한 카운트다운, 감사 이력과 함께 기록됩니다. SuperAdmin "침해 등록부" 패널에서 확인할 수 있습니다.
알림 라우팅: 탐지 이벤트는 Azure Monitor 작업 그룹 yardtwin-breach-actions으로 전달되어 창업자 연락처(admin@yardtwin.com)로 이메일이 발송됩니다. 스키마 드리프트 이벤트는 기존 yardtwin-schema-drift-actions 그룹을 사용합니다.
평가: 탐지 후 24시간 이내에 기술팀이 침해 등록부 패널에서 인시던트를 분류합니다: 범위, 영향받은 정보주체, 심각도(제33조(1) '권리 및 자유에 대한 위험' 기준), 근본 원인.
DPC 통보 (제33조): 위험을 수반하는 침해를 인지한 후 72시간 이내. 침해 등록부 패널은 인시던트가 다음 상태로 표시되면 72시간 실시간 카운트다운 타이머를 표시합니다: 확인됨.
정보주체 통보 (제34조): 침해가 정보주체의 권리 및 자유에 높은 위험을 초래하는 경우 부당한 지체 없이 통보합니다.
고객 통지: 영향받은 테넌트 관리자에게는 부당한 지체 없이, 어떠한 경우에도 해당 테넌트 데이터에 영향을 미치는 개인정보 침해를 인지한 후 48시간 이내에 통보되며, 해당 데이터에 영향을 미치는 확인된 보안 사고에 대해서는 24시간 이내에 최초 통지가 이루어집니다.
문서화: 위반 등록부의 모든 항목은 외부 통보 필요 여부와 관계없이 자동 삭제 없이 보관됩니다.
8. 하위 처리자
| 하위 처리자 | 목적 | 위치 | 안전 조치 |
|---|---|---|---|
| Microsoft Azure | 호스팅, 데이터베이스 및 파일 스토리지 | EEA — 스웨덴 중부 및 노르웨이 동부(업로드 파일의 지리적 이중화 사본: 노르웨이 서부) | Microsoft 제품 및 서비스 DPA; 데이터는 EEA 내에 보관됨 |
| Anthropic | 운전면허증 및 문서의 AI 판독(기본적으로 활성화되어 있으며, 사이트 관리자가 비활성화할 수 있음), 운전자의 게이트 사진과 면허증 또는 저장된 운전자 사진의 1:1 대조(기본적으로 비활성화되어 있으며, 사이트 관리자가 활성화 또는 비활성화할 수 있음), 및 인앱 어시스턴트 | 미국 | 표준 계약 조항 및 이전 영향 평가(EU-미국 데이터 프라이버시 프레임워크 미인증); API 데이터는 모델 학습에 사용되지 않으며 Anthropic의 표준 상업 약관에 따라 30일 이내에 삭제됩니다 |
| Resend | 트랜잭션 이메일 | 미국 | 표준 계약 조항(EU-미국 데이터 프라이버시 프레임워크 재인증 검토 중) |
| Stripe | 청구 연락처 및 결제 데이터(YARDtwin은 카드 번호를 저장하지 않음) | EU / 미국 | Standard Contractual Clauses; PCI DSS Level 1 |
| Twilio | SMS 및 WhatsApp 알림(고객이 활성화한 경우에만) | 미국 | Standard Contractual Clauses |
| Google 및 Microsoft | 로그인 ID 데이터(고객이 해당 로그인 옵션을 사용하는 경우에만) | EU / 미국 | Standard Contractual Clauses / EU-US Data Privacy Framework |
| ElevenLabs | 선택적 텍스트 음성 변환: 차량 번호 등 운영 세부 정보가 포함될 수 있는 인앱 어시스턴트 답변 및 공개 페이지의 음성을 제공합니다 | 미국 | EU-미국 데이터 프라이버시 프레임워크 + 표준 계약 조항 |
고객은 위에 나열된 하위 처리자에 대한 일반 서면 승인을 제공합니다. 새로운 하위 처리자에 대해서는 최소 30일 전에 통보합니다. 고객은 합리적인 사유로 이의를 제기할 수 있으며, 이의가 해결되지 않을 경우 위약금 없이 해당 서비스를 해지할 수 있습니다.
웹사이트 전용 서비스(고객 운영 데이터 없음)
이 서비스들은 공개 웹사이트에서만 실행됩니다. 고객 운영 데이터를 수신하지 않으며 해당 데이터의 하위 처리자가 아닙니다. 쿠키를 설정하는 서비스는 동의 후에만 로드됩니다.
| 제공업체 | 목적 | 위치 | 이전 안전장치 |
|---|---|---|---|
| LinkedIn Insight Tag | 공개 페이지의 마케팅 측정 — 마케팅 쿠키 동의 후에만 로드되며, 애플리케이션 내부 또는 로그인한 사용자에게는 절대 사용되지 않음 | EU / 미국 | 동의; Standard Contractual Clauses가 포함된 LinkedIn DPA |
9. 데이터 보호 영향 평가 (DPIA)
컨트롤러로서 고객은 YARDtwin에서의 처리 활동에 DPIA가 필요한지 여부를 결정합니다. 고객의 자체 DPIA를 위한 DPIA 입력 패키지가 제공됩니다. YARDtwin은 민감한 개인정보보다는 주로 비즈니스 운영 데이터(도크 일정, 운송사 이름, 차량 번호)를 처리합니다.
10. 설계 및 기본 설정에 의한 데이터 보호 (제25조)
설계에 의한 보호: 필수 테넌트 격리를 적용한 멀티테넌트 아키텍처. 모든 API 엔드포인트에 RBAC 내장. 비밀번호 평문 저장 금지. 모든 단계에서 최소한의 데이터 수집.
기본 설정에 의한 보호: 신규 계정은 최소 권한으로 시작. 선택 항목은 실제로 선택 사항으로 유지. 뉴스레터는 능동적 수신 동의 필요. 데이터 가시성은 역할에 따라 제한.
11. 규정 준수 현황 및 지속적 개선
해결 완료 (2026년 5월 기준)
- ✓ PostgreSQL Flexible Server로 마이그레이션 (Azure 관리형, 저장 데이터 투명 암호화, 7일 특정 시점 복구)
- ✓ Microsoft Azure로 마이그레이션 (스웨덴 중부 + 노르웨이 동부, EEA), App Service + ACR + Key Vault 포함
- ✓ Azure Key Vault를 통한 시크릿 관리 (.env 또는 컨테이너 이미지에 시크릿 미포함, 관리 ID 방식 접근)
- ✓ DSAR 자동 내보내기 (POST /api/v1/dsar/export/by-email — 제15조 / 제20조)
- ✓ DSAR 자동 삭제 (POST /api/v1/dsar/erase/by-email — 제17조, 감사 보존 기간 준수)
- ✓ 쿠키 배너 v2 필수 / 기능 / 분석 / 마케팅 4개 카테고리 및 거부 / 맞춤 설정 / 전체 동의 옵션 포함
- ✓ 테넌트 간 격리 감사 모든 릴리스 전 릴리스 게이트에서 자동 크로스 테넌트 검사 실행: 한 조직의 자격으로 다른 조직의 레코드 ID를 사용하여 API를 호출하며, 해당 조직의 데이터를 읽거나 변경할 수 있는 경우 릴리스가 차단됩니다
- ✓ CI/CD 보안 파이프라인: npm audit + Trivy + Semgrep + gitleaks + ZAP DAST
- ✓ 스키마 드리프트 알림 Application Insights 기반 (15분 윈도우)
- ✓ 종단간 /health/db-write 프로브 모든 배포 시 쓰기 가능한 DB 검증
- ✓ App Insights 스키마 드리프트 Action Group Postgres "column / relation does not exist" 오류 발생 시 창업자 연락처(admin@yardtwin.com)로 이메일 발송
- ✓ 운전면허증 이미지 및 서명(signature_data) 보호 Azure Storage 및 Azure Database for PostgreSQL의 저장 시 AES-256 암호화(Microsoft 관리 키)와 역할 및 조직에 따른 액세스 제한
- ✓ 자동 데이터 보존 삭제 (사이트별 설정 가능; pii-cleanup 워커)
- ✓ 30일 체험 기간 전체 통일 (회원가입, 마케팅 사이트, 약관, 이메일)
- ✓ 5,000대 트럭 종단간 회귀 테스트 모든 Site Admin 엔드포인트를 대상으로 모든 전환 단계에서 야드 뷰 충실도 검증 수행 (53,650/53,651 = 100%)
- ✓ 데이터 인벤토리 및 처리 활동 기록 (Art. 30) 게시 완료
- ✓ 하위 처리자 등록부 유지 관리 및 연간 검토
- ✓ 설계 및 기본값에 의한 개인정보 보호 문서화 완료 (Art. 25)
- ✓ 웹 애플리케이션 방화벽(Azure Front Door WAF, 방지(Prevention) 모드) 인증 및 계정 복구 엔드포인트에 대한 사용자 지정 속도 제한 규칙과 플랫폼 수준의 L7 DDoS 완화로 yardtwin.com을 보호합니다. 관리형 OWASP 규칙 세트는 적용되어 있지 않습니다(Front Door Premium 티어가 필요함)
- ✓ 자동 침해 탐지 — 침해 모니터 워커(로그인 실패 급증, 단일 계정에 대한 다수 IP에서의 로그인 시도, 30일간 해당 사용자에게 확인되지 않은 IP에서의 성공적 로그인), 5xx 급증 알림, 스키마 드리프트 알림 및 웹사이트 가용성 테스트
- ✓ 침해 등록부 전체 상태 머신 및 DPC 기한 카운트다운을 포함하는 영구 테이블, SuperAdmin 패널에서 확인 가능
- ✓ Action Group
yardtwin-breach-actions탐지 시마다 창업자 연락처(admin@yardtwin.com)로 이메일 발송
잔여 개선 사항
제3자 침투 테스트는 아직 수행되지 않았으며, 첫 번째 엔터프라이즈 서비스 개시 전에 독립적인 테스트가 계획되어 있습니다. 내부 화이트박스 코드 감사는 2026년 10월에 완료되었으며, 모든 심각(Critical) 발견 사항이 수정되었습니다. 우선순위: 높음. 목표: 첫 번째 엔터프라이즈 서비스 개시 전.
YARDtwin Ltd는 법정 개인정보 보호 책임자(DPO)를 지정하지 않았습니다. 제37조 제1항의 조건(공공기관, 대규모의 정기적·체계적 모니터링을 핵심 활동으로 하는 경우, 대규모 특별 범주 처리를 핵심 활동으로 하는 경우) 중 어느 것도 당사의 처리 활동에 해당하지 않습니다. 개인정보 보호에 대한 책임은 YARDtwin Ltd 내부의 지정된 담당자가 맡고 있으며, 역할 사서함 dpo@yardtwin.com을 통해 연락하실 수 있습니다. 이 주소는 본 정책, 개인정보 처리방침, DPA 및 Trust Center에 공개되어 있습니다. 개인 이름 대신 담당 연락처 주소를 공개합니다. 고객 계약이나 처리 활동의 변경으로 인해 필요한 경우, 아일랜드 데이터 보호 위원회(DPC)에 대한 통보를 포함한 공식 지정이 이루어질 것입니다. 상태: 2026년 9월 26일 결정. 각 ISMS 경영 검토 시 재검토.
인증 프로그램 진행 중; 인증 감사는 2027년 1분기 예정; 인증서 취득 목표 2027년 1분기. 우선순위: 중간. 목표: 2027년 1분기.
미보유. ISO 27001 인증 후 요청 시 제공 가능합니다. 우선순위: 낮음. 목표: ISO 27001 인증 후 고객 요청 시.
업로드된 파일은 2026년 10월부터 지리적 이중화(노르웨이 동부 → 노르웨이 서부)가 적용됩니다. 데이터베이스 고가용성은 첫 번째 엔터프라이즈 서비스 시작 전에 계획되어 있습니다. 그 전까지 데이터베이스 장애 발생 시 특정 시점 복원(7일 보존 기간)으로 복구됩니다. 우선순위: 중간. 목표: 첫 번째 엔터프라이즈 서비스 시작 전.
EEA 외부로의 모든 데이터 이전에는 표준 계약 조항(SCC)이 적용되며, 이전 영향 평가가 진행 중입니다(목표: 2026년 11월). 우선순위: 중간. 목표: 2026년 11월.
두 번째 클린 외부 침투 테스트 이후 비공개 버그 바운티 프로그램(HackerOne / Intigriti) 운영을 계획하고 있으며, 연간 테스트 사이에 지속적인 외부 커버리지를 제공합니다. 우선순위: 낮음. 목표: 2027년.
12. 연락처 및 개인정보 보호
개인정보 보호 담당자: dpo@yardtwin.com — YARDtwin Ltd에서 개인정보 보호 업무를 담당하는 사람이 모니터링하는 역할 사서함입니다(11.2 참조). 개인 이름 대신 담당 연락처 주소를 공개합니다.
일반 문의: admin@yardtwin.com
정보주체 권리 요청(DSAR): DSAR 포털을 통해 제출
데이터 처리 계약(DPA): /dpa에서 검토 및 동의
감독 기관: 아일랜드 개인정보보호위원회(DPC) · www.dataprotection.ie · +353 (0)761 104 800