외주 개발이 끝나고 앱을 올리는 날, 발주사 담당자가 처음 보는 화면이 있습니다. 구글 플레이 콘솔의 '데이터 보안' 양식과 앱스토어 커넥트의 '개인정보 보호 정보' 설문입니다. 개발사는 이건 발주사가 쓰셔야 한다고 하고, 발주사는 코드를 모르는데 어떻게 쓰냐고 합니다.

이 실랑이는 대개 둘 중 급한 쪽이 대충 체크하는 것으로 끝납니다. 문제는 이 양식이 안내문이 아니라 스토어와 맺는 선언이라는 점입니다. 내용이 실제 동작과 다르면 업데이트가 막히고, 심하면 앱이 내려갑니다.

양식을 채우는 손과 책임지는 이름은 다릅니다

구글 플레이 공식 안내는 한 문장으로 못 박습니다. 스토어 등록정보에 완전하고 정확한 선언을 할 책임은 전적으로 개발자 본인에게 있다는 문장입니다. 애플도 같습니다. 답변을 정확하고 최신으로 유지할 책임은 제출자에게 있다고 적어 두었습니다.

여기서 말하는 개발자는 코드를 짠 사람이 아니라 개발자 계정 명의자입니다. 계약서에 누가 작성한다고 적혀 있든, 스토어는 계정 주인 한 명만 상대합니다.

양식의 초안은 개발사가 만드는 것이 맞고, 제출과 책임은 계정 명의자가 지는 것이 맞습니다. 이 둘을 한쪽에 몰아 두면 사고가 났을 때 할 말이 없어집니다.

계정을 누구 이름으로 여느냐가 첫 번째 갈림길입니다

개발사 계정으로 앱을 올리면 제재도 개발사 계정에 쌓입니다. 구글은 계정이 해지되면 관련된 다른 개발자 계정도 영구 정지된다고 밝히고 있습니다. 한 앱의 신고 오류가 같은 개발사의 다른 고객 앱까지 끌고 내려갈 수 있다는 뜻입니다.

발주사 명의로 계정을 만들고 개발사를 사용자로 초대하는 구조를 권합니다. 개발은 개발사가 하고 최종 확인 버튼은 명의자가 누르는 분리가 자연스럽게 생깁니다. 계약 초기에 정하지 않으면 출시 직전에 계정을 옮기느라 일정이 밀립니다.

광고·분석 SDK는 붙이는 순간 기본값으로 수집을 시작합니다

구글 모바일 광고 SDK의 공식 데이터 공시 문서를 보면, 이 SDK는 IP 주소, 앱 내 상호작용(실행·탭·동영상 시청), 진단 정보(실행 시간, 응답 없음 비율, 전력 사용량), 광고 ID와 앱 세트 ID 같은 식별자를 수집하고 외부에 공유합니다. 목적은 광고, 분석, 사기 방지입니다.

개발사가 광고만 붙였다고 말해도 신고서에는 대략적 위치 추정에 쓰일 수 있는 IP와 식별자가 들어가야 합니다. 구글은 앱 안에서 SDK가 수집한 데이터를 개발자가 직접 수집한 것처럼 취급하라고 요구합니다.

SDK가 가져가는 항목은 세 곳에서 확인합니다

첫째는 SDK 제공사의 공식 데이터 공시 문서입니다. 광고·분석 SDK 상당수가 플레이 양식에 그대로 옮길 수 있는 표를 제공합니다. 둘째는 구글 플레이 SDK 색인(play.google.com/sdks)입니다. SDK별 최신 버전, 최소 API 수준, 최근 버전이 요구하는 안드로이드 권한 목록을 볼 수 있습니다.

셋째는 애플 쪽 도구입니다. Xcode는 앱에 포함된 서드파티 SDK들의 개인정보 매니페스트를 모아 하나의 보고서로 만들어 줍니다. 다만 구글도 색인이 모든 권한을 탐지하지는 못한다고 밝혀 두었고, 매니페스트 역시 SDK 제공사의 자기 신고입니다. 두 곳을 교차 확인하세요.

애플은 목록에 오른 SDK에 매니페스트와 서명을 요구합니다

애플은 자주 쓰이는 서드파티 SDK 80여 개의 목록을 공개하고 있습니다. Firebase 계열, 페이스북 SDK, Alamofire, Flutter, React Native처럼 외주 앱에 흔히 들어가는 것들입니다.

이 목록에 있는 SDK를 포함한 신규 앱을 제출하거나 업데이트에서 해당 SDK를 새로 추가할 때는 그 SDK의 개인정보 매니페스트가 반드시 있어야 합니다. 바이너리 의존성으로 넣었다면 서명도 필요합니다. 버전을 가리지 않고 적용되고, 목록의 SDK를 재포장한 것도 포함됩니다.

신고와 실제가 다르면 거절에서 계정 해지까지 갑니다

플레이 콘솔은 양식에 미해결 항목이 있으면 신규 앱 제출과 업데이트를 거부합니다. 이미 올라간 앱이라도 구글이 허위 신고라고 판단하면 수정을 요구하고, 고치지 않으면 업데이트 차단이나 스토어 삭제로 이어집니다.

제재에는 단계가 있습니다. 거부는 계정 상태에 영향을 주지 않지만, 삭제가 여러 번 쌓이면 정지로 올라가고 정지가 반복되면 계정 해지입니다. 해지되면 관련 계정까지 영구 정지됩니다.

애플은 더 짧게 적어 두었습니다. 사용자 동의 없이 데이터를 공유하거나 개인정보 법령을 지키지 않은 앱은 판매가 중단될 수 있고, 개발자 프로그램에서 제외될 수 있다는 문장입니다.

한국 법은 배상 책임을 발주사 쪽에 먼저 붙입니다

개인정보 보호법 제26조는 위탁자에게 두 가지 의무를 지웁니다. 위탁 업무 내용과 수탁자를 정보주체가 언제든 확인할 수 있게 공개할 의무(제2항), 그리고 수탁자 교육과 처리 현황 점검 등 관리·감독 의무(제4항)입니다.

결정적인 것은 제7항입니다. 수탁자가 위탁 업무를 하며 이 법을 위반해 발생한 손해배상책임에 대해서는 수탁자를 개인정보처리자의 소속 직원으로 본다고 규정합니다. 개발사가 SDK를 잘못 붙여 생긴 피해라도 이용자 앞에는 발주사가 먼저 섭니다.

스토어는 계정 명의자를 보고, 한국 법은 위탁자를 봅니다. 두 방향 모두 발주사를 가리키기 때문에 개발사에 되물을 근거는 계약서에만 남습니다.

계약서에는 이 다섯 줄을 넣으세요

문구가 없으면 무상 재작업도 구상도 요구하기 어렵습니다. 검수 조건 항목으로 다음을 넣어 두세요.

  1. 앱에 포함된 모든 서드파티 SDK의 이름·버전·용도·수집 항목을 표로 제출하고, 발주사의 사전 서면 승인 없이 SDK를 추가하지 않습니다.
  2. 데이터 보안 섹션과 개인정보 보호 정보의 답변 초안을 개발사가 작성하고, 항목마다 근거가 된 공식 문서 주소를 함께 제출합니다.
  3. 스토어가 신고 내용과 실제 동작의 불일치를 이유로 거부·삭제·정지 조치를 하면 정해진 기한 안에 무상으로 수정합니다.
  4. 허위 또는 누락 신고로 발생한 스토어 제재와 행정 처분에 대한 책임 범위와 구상 절차를 정합니다.
  5. 하자보수 기간이 끝난 뒤라도 SDK 버전 변경으로 수집 항목이 달라지면 개발사가 발주사에 알립니다.

마지막 줄을 빠뜨리는 경우가 많습니다. 수집 항목은 코드를 한 줄도 고치지 않아도 SDK 버전이 올라가면서 바뀝니다.

검수 때 받아야 할 것은 코드가 아니라 표입니다

발주사 담당자가 소스를 읽을 필요는 없습니다. 대신 다음 네 가지를 문서로 받으세요.

  • SDK 목록표 — 이름, 버전, 도입 이유, 수집 항목, 수집인지 공유인지
  • 항목별 근거 — 각 수집 항목이 어느 공식 문서에서 나왔는지
  • 안드로이드 권한 목록과 그 권한을 요구한 SDK
  • iOS 빌드에서 뽑은 개인정보 보호 보고서

이 네 가지가 있으면 플레이 양식이 데이터 유형마다 묻는 여섯 항목에 근거를 대고 답할 수 있습니다. 수집인지 공유인지, 필수인지 선택인지, 사용 목적, 공유 목적, 전송 중 암호화 여부, 삭제 요청 수단 제공 여부입니다.

이럴 때는 이 구조가 맞지 않습니다

사내 배포용 앱처럼 스토어에 올리지 않는다면 이 양식 자체가 없습니다. 그래도 위탁 사실 공개와 관리·감독 의무는 그대로 남습니다.

초저가 외주에서 개발사가 자기 계정으로 여러 고객 앱을 운영하는 구조라면 계정 분리를 요구하기 어렵습니다. 그때는 다른 고객의 위반이 우리 앱을 끌고 내려갈 수 있다는 위험을 알고 선택하는 것입니다.

스토어 라벨을 채웠다고 개인정보처리방침을 대신할 수는 없습니다. 플레이는 양식 답변이 개인정보처리방침과 일치해야 한다고 요구하므로, 둘 중 하나만 고치면 그 자체가 불일치가 됩니다.

외주 검수와 계약 문구를 다루는 글은 실무 가이드에 모여 있습니다. 양식 항목의 원문은 구글 플레이 데이터 보안 섹션 안내애플 App Privacy Details에서 확인하세요. 계약 단계에서 점검표를 짜야 한다면 Codeforest에 문의하셔도 됩니다.

결론: 초안은 개발사에 맡기고 최종 확인은 발주사가 하세요

스토어에 내는 개인정보 수집 신고서는 개발사가 채우고 발주사가 책임지는 문서입니다. 구글과 애플 모두 정확성의 책임을 계정 명의자에게 두었고, 한국 개인정보 보호법은 손해배상 국면에서 수탁자를 위탁자의 소속 직원으로 봅니다. 양쪽 다 발주사를 가리킵니다.

그래서 할 일은 세 가지입니다. 계정을 발주사 명의로 열고, SDK 목록표와 항목별 근거를 검수 산출물로 못 박고, 신고 불일치로 제재를 받았을 때의 수정 기한과 구상 절차를 계약서에 적어 두세요. 이 세 줄이 앱이 내려간 뒤에 할 수 있는 말의 전부를 결정합니다.