앱 개발 견적서를 받아 보면 로그인, 푸시 알림, 결제 연동 같은 기능이 줄지어 있습니다. 그런데 카메라와 위치를 쓰는 앱인데도 '접근권한 고지 및 동의 화면'이라는 줄은 거의 보이지 않습니다.
이 항목이 빠진 채로 계약하면 개발 후반에 추가 비용 다툼이 생깁니다. 더 큰 문제는 이 화면을 빠뜨렸을 때 과태료를 맞는 쪽이 개발사가 아니라 앱을 내놓은 발주사라는 점입니다.
권한 팝업은 개발사가 알아서 만들어 주는 기능이 아닙니다
안드로이드와 iOS는 앱이 카메라나 위치에 처음 접근할 때 운영체제가 만든 권한 요청 창을 띄웁니다. 개발사가 코드를 넣으면 자동으로 뜨는 화면이라, 발주사 눈에는 원래 나오는 것으로 보입니다.
그런데 정보통신망법이 요구하는 것은 그 창이 아닙니다. 법 제22조의2 제1항은 접근권한을 필수와 그 외로 나누어 항목과 필요한 이유를 알리고 동의를 받으라고 정합니다. 운영체제 창에는 이유도, 필수와 선택의 구분도 없습니다.
운영체제가 띄우는 권한 요청 창은 법이 요구하는 고지 화면을 대신하지 못합니다. 그 앞에 별도 화면이 하나 더 필요합니다.
필요한 것은 팝업 하나가 아니라 화면 세 벌입니다
정리하면 고지 화면, 동의 선택, 철회 경로 세 가지가 있어야 합니다. 시행령 제9조의2 제2항은 권한을 개별로 켜고 끌 수 있는 운영체제라면 필수와 선택을 구분해 알린 뒤 해당 권한에 처음 접근할 때 동의를 받도록 정하고 있습니다.
개별 선택이 안 되는 운영체제라면 필수 권한만 설정해 설치 시점에 동의를 받습니다. 선택 권한에는 동의하지 않을 수 있다는 사실까지 화면에 적어야 합니다. 개발 공수보다 기획과 문구 공수가 더 드는 작업입니다.
필수와 선택을 가르는 결정은 발주사 몫입니다
개발사는 어떤 기능이 어떤 권한을 요구하는지 압니다. 그러나 그 권한이 서비스 제공에 반드시 필요한지는 기술 판단이 아니라 사업 판단입니다.
중고거래 앱을 예로 들면 상품 사진을 올려야 거래가 성립하니 카메라는 필수로 볼 여지가 있습니다. 반면 주소록은 지인 추천 기능용이라 선택입니다. 이 구분을 개발사가 임의로 정해 버리면 나중에 근거를 대지 못합니다.
선택 권한을 거부해도 서비스는 돌아가야 합니다
법 제22조의2 제2항은 반드시 필요하지 않은 접근권한에 동의하지 않는다는 이유로 서비스 제공을 거부해서는 안 된다고 못 박고 있습니다. 문구가 아니라 앱의 동작에 관한 조항입니다.
주소록 권한을 거부했을 때 앱이 멈추거나 로그인 화면으로 되돌아가면 위반입니다. 그래서 견적에는 선택 권한을 모두 끈 상태의 대체 동작과 그 상태를 확인하는 테스트가 들어가야 합니다. 권한 개수만큼 확인할 경로가 늘어납니다.
3천만 원 과태료가 어디에 붙는지 정확히 보세요
법 제76조 제1항 제1호는 제22조의2 제2항을 위반해 서비스 제공을 거부한 자에게 3천만 원 이하의 과태료를 부과하도록 합니다. 선택 권한을 거부한 이용자를 앱 입구에서 막아 세우는 순간이 바로 그 지점입니다.
같은 항 제1호의2는 제22조의2 제3항을 위반해 접근권한에 대한 동의 및 철회 방법을 마련하는 등 필요한 조치를 하지 않은 자에게도 3천만 원 이하를 부과합니다. 돈이 걸린 두 지점이 모두 견적에서 빠지기 쉬운 항목입니다.
철회 화면을 휴대폰 설정으로 떠넘기면 안 됩니다
시행령 제9조의2 제4항은 소프트웨어를 제작해 공급하는 자에게 해당 운영체제에 맞는 동의 및 철회 방법을 구현하라고 요구합니다. 운영체제 제작자와 단말기 제조사의 의무와는 별도로 적힌 항목입니다.
실무에서 가장 흔한 처리가 안내 문구 한 줄로 휴대폰 설정에 넘기는 것입니다. 여기에 더해 철회한 뒤 이미 받아 둔 데이터를 어떻게 할지도 정해야 합니다. 앱 화면이 아니라 서버 작업이라 공수가 더 큽니다.
데이터 보안 섹션은 콘솔 계정 명의자가 책임집니다
구글 플레이 콘솔 도움말은 앱 스토어 등록정보에 완전하고 정확하게 선언할 책임이 전적으로 개발자에게 있다고 적고 있습니다. 앱에 붙인 서드파티 라이브러리나 SDK가 수집하는 데이터까지 포함해서입니다.
여기서 말하는 개발자는 외주 개발사가 아닙니다. 구글 개발자 배포 계약은 개발자를 구글 플레이를 통해 배포할 상품을 제공하는 개인 또는 회사로 정의합니다. 콘솔 계정 명의자, 보통은 발주사입니다.
허위로 신고한 사실이 확인되면 구글은 시정을 요구하고, 따르지 않는 앱에는 업데이트 차단과 삭제까지 적용합니다.
견적서에는 이 여섯 줄을 따로 적어 두세요
기능 목록에 섞지 말고 별도 항목으로 뽑아야 공수와 책임이 드러납니다. 줄마다 만드는 쪽이 개발사인지, 정하는 쪽이 발주사인지 함께 적으세요.
- 접근권한 목록과 필수·선택 구분표를 작성하고 확정할 주체
- 고지 화면의 문구와 디자인, 선택 권한을 거부할 수 있다는 안내
- 선택 권한을 거부한 상태의 대체 동작과 테스트 시나리오
- 앱 안에서 들어가는 철회 화면과 철회 이후 데이터 처리 방식
- 서드파티 SDK가 수집하는 데이터 목록 정리와 발주사 전달
- 개인정보처리방침과 데이터 보안 섹션 내용의 일치 확인
이 여섯 줄이 없는 견적서는 싼 견적이 아니라, 그 일을 누가 할지 정하지 않은 견적입니다. 정하지 않은 일은 대부분 출시 직전에 발주사에게 돌아옵니다.
모든 앱에 이 항목이 다 필요하지는 않습니다
단말기에 저장된 정보나 단말기 기능에 전혀 접근하지 않는 앱이라면 고지와 동의 화면은 필요 없습니다. 웹 화면만 띄워 공지를 읽히는 사내 앱이 여기에 해당합니다.
시행령이 정한 대상은 연락처, 일정, 영상, 위치정보, 통신기록, 고유정보와 촬영이나 음성인식 같은 입출력 기능입니다. 단말기 제조와 공급 과정에서 설치된 소프트웨어가 통신이나 재생 같은 본질적 기능을 위해 접근하는 경우는 제외됩니다.
다만 접근권한을 쓰지 않아도 구글 플레이에 올리는 이상 데이터 보안 섹션은 채워야 합니다. 두 규제는 적용 범위가 다르니 한 덩어리로 묶어 생각하지 마세요. 조문은 국가법령정보센터, 데이터 보안 섹션 요건은 플레이 콘솔 도움말에서 확인하시고, 발주 점검표는 실무 가이드와 Codeforest에서 이어 보세요.
결론: 접근권한은 기능이 아니라 계약 조건으로 적으세요
권한 팝업 자체는 개발사가 코드로 띄워 줍니다. 그러나 필수와 선택을 어떻게 나눌지, 선택을 거부한 이용자에게 무엇을 보여줄지, 철회를 어디서 받을지는 서비스를 운영하는 발주사가 정할 내용입니다. 정하지 않으면 개발사가 임의로 정하고 책임만 발주사에게 남습니다.
견적서에 접근권한 항목이 한 줄도 없다면 그 작업을 빼먹은 견적입니다. 구분표, 고지 화면, 거부 시 대체 동작, 철회 경로, 데이터 보안 섹션 자료까지 다섯 가지를 누가 맡을지 적어 달라고 요청하세요. 3천만 원 이하 과태료가 걸린 항목을 구두 합의로 넘기지 마세요.