블로그로 돌아가기

모바일 핑거프린트 시뮬레이션: 데스크톱과의 파라미터 차이

모바일 핑거프린트 시뮬레이션은 데스크톱 브라우저가 모바일 기기로 보이도록 구성하는 작업입니다. 화면, 기기 모델, 센서와 터치, 네트워크와 통신사, UA/App 식별자가 서로 일관되어야 환경이 점검에서 자연스럽게 보입니다.

Facebook, Instagram, TikTok 같은 플랫폼에서 광고와 계정 운영을 하다 보면 같은 작업도 모바일과 데스크톱에서 다르게 동작하는 경우가 많습니다. 페이지 레이아웃이 다르고, 사용할 수 있는 기능의 진입점이 다르며, 플랫폼이 모바일 트래픽을 처리하는 방식도 달라질 수 있습니다. 여러 대의 실제 스마트폰을 준비하지 않고 이런 상황을 검증하려면 데스크톱 브라우저가 모바일 기기처럼 보이도록 해야 합니다.

말로는 간단하지만 실제로는 전체 파라미터 세트를 맞춰야 합니다. 모바일 환경의 신뢰성은 각 파라미터가 서로 모순 없이 설명되는지에 달려 있습니다.

모바일과 데스크톱은 무엇이 다른가

가장 먼저 떠올릴 수 있는 것은 화면입니다. 모바일 기기의 논리 해상도와 viewport 너비는 데스크톱과 크게 다르고, 같은 모델이라도 OS 버전에 따라 사용 가능한 viewport가 달라질 수 있습니다. 화면 값이 맞지 않으면 다른 항목을 조정해도 전체 환경이 어색해집니다.

두 번째는 기기 모델과 하드웨어 등급입니다. 플랫폼은 기기 모델을 참고해 기기의 성능 등급을 추정하고, 그에 따라 어떤 페이지 버전이나 소재를 제공할지 결정할 수 있습니다. 모델, pixel ratio, 메모리, 그래픽 파라미터는 서로 대응해야 합니다. 고급 기기 모델명에 저사양 기기의 하드웨어 특성을 조합하면 그 자체로 모순입니다.

센서와 터치 특성은 가장 쉽게 놓치는 부분입니다. 실제 스마트폰에는 자이로스코프와 가속도계가 있고, touch event에는 압력, 접촉 면적, 멀티터치 같은 특성이 포함될 수 있지만 데스크톱 브라우저에는 기본적으로 이런 특성이 없습니다. UA만 스마트폰용으로 바꾸면 touch event를 확인하는 것만으로도 불일치가 드러날 수 있습니다. 이 부분은 몇 개의 스위치를 켜는 것이 아니라 센서 반환값과 touch event 형태까지 일관되게 맞춰야 합니다.

네트워크 유형과 통신사도 핑거프린트의 일부입니다. 모바일 기기는 보통 셀룰러 네트워크를 사용하며, 페이지에서 통신사 이름, 연결 유형, 경우에 따라 신호 관련 정보까지 읽을 수 있습니다. 특정 국가의 특정 통신사를 사용한다고 설정했는데 외부 연결이 데이터센터 IP라면 실제 기기에서는 흔하지 않은 조합이므로 별도로 확인할 필요가 있습니다.

마지막은 user agent와 기기 식별자입니다. 많은 경우 이 부분만 바꾸기도 합니다. UA는 기기 모델, OS 버전, 브라우저 버전과 같은 계열로 맞아야 합니다. App 내부의 WebView 식별자와 일반 브라우저 식별자도 서로 다른데, 플랫폼은 이를 이용해 방문이 App에서 열린 것인지 브라우저에서 직접 열린 것인지 판단할 수 있습니다. 두 종류를 섞으면 환경을 조합한 흔적이 드러나기 쉽습니다.

일관성은 어떻게 확인할까

파라미터를 설정한 뒤에는 정해진 순서로 한 번 점검하는 것이 좋습니다. 앞 단계의 문제가 뒤 단계 문제처럼 보이는 경우가 많기 때문에 순서가 중요합니다.

먼저 기기 identity 그룹을 봅니다. 검사 페이지가 읽은 운영체제, 기기 모델, 해상도, pixel ratio가 설정과 같은지 확인하고, UA 안의 모델과 OS 버전도 앞선 값들과 맞는지 봅니다. 다음으로 시간대와 언어를 확인합니다. 두 항목은 계정의 목표 시장과 맞아야 하고, 지리적 위치와 외부 연결 지역도 같은 권역에 있어야 자연스럽습니다. 이 셋이 서로 충돌하는 것은 흔한 불일치입니다. 이어서 네트워크 그룹을 봅니다. 외부 IP가 주거용인지 데이터센터인지, 통신사 정보와 IP 귀속이 일치하는지, WebRTC가 현재 환경과 전혀 어울리지 않는 주소를 노출하는지 확인합니다. 마지막으로 touch event, 센서 값, 폰트 집합이 모바일 기기다운 형태인지 확인합니다.

몇 가지 항목이 맞지 않는다면 환경을 반복해서 새로 만드는 대신 전체 구성과 충돌하는 파라미터가 무엇인지 먼저 찾는 편이 낫습니다. 다시 만들어도 파라미터 내부의 모순은 해결되지 않습니다.

또 한 가지, 제3자 검사 페이지에서 이상이 표시된다고 해서 반드시 환경 자체에 문제가 있다는 뜻은 아닙니다. 검사 사이트마다 데이터를 수집하는 방식이 다릅니다. 어떤 곳은 스크립트로 브라우저 특성을 읽고, 어떤 곳은 request header를 보기 때문에 같은 환경에서도 사이트별 결과가 달라질 수 있습니다. 브라우저 확장 프로그램이 페이지가 읽는 정보를 바꿀 수도 있고, IP 데이터베이스가 오래되면 주거용 IP를 다른 지역으로 잘못 판단할 수 있습니다. 여러 사이트의 결과를 계속 비교하기보다 업데이트가 자주 되고 평판이 안정적인 검사 사이트 하나를 기준으로 삼는 편이 더 의미 있습니다.

모바일 시뮬레이션이 실제 기기를 대체할 수는 없다

일부 상황에서는 여전히 실제 기기가 필요합니다. 실제 센서 데이터, 카메라, 자이로스코프의 전체 기능이 필요한 테스트, 플랫폼이 기기 진위성을 매우 엄격하게 확인하고 App 내부에서 검증하는 리스크 관리 단계, 실제 결제나 실제 통신사 네트워크가 필요한 검증 등이 그렇습니다. 또한 일부 플랫폼 기능은 네이티브 클라이언트에서만 제공되고 웹에서는 사용할 수 없으므로 이런 작업도 시뮬레이션 환경으로 해결할 수 없습니다.

역할을 나누면 이해하기 쉽습니다. 웹에서 처리할 수 있는 모바일 시나리오는 시뮬레이션 환경에 맡기고, 하드웨어와 App 계층 검증은 실제 기기에서 수행합니다. 둘은 서로를 대체하는 관계가 아니라 보완하는 관계입니다.

자주 묻는 질문

UA만 바꾸면 검사를 통과할 수 있나 대체로 어렵습니다. UA는 단독으로 바꾸기 가장 쉬운 파라미터 중 하나이면서 교차 검증도 쉬운 항목입니다. 해상도, 폰트, 언어, 시간대, 터치 기능이 맞지 않으면 불일치가 쉽게 드러납니다.

한 계정은 모바일이나 데스크톱 중 하나로 고정해야 하나 일관되게 유지하는 편이 좋습니다. 같은 계정이 두 기기 유형 사이를 반복해서 오가는 것 자체가 이상 신호가 될 수 있습니다. 환경의 기기 유형을 그 계정의 평소 사용 방식과 맞추는 것이 좋습니다.

컴플라이언스 측면에서 주의할 점은 무엇인가 직접 운영하는 계정과 자체 비즈니스의 테스트에만 사용해야 합니다. 플랫폼 검증을 우회하기 위해 기기 identity를 위조하거나 사기성 활동에 사용해서는 안 됩니다.

마무리

모바일 핑거프린트 시뮬레이션은 특정 파라미터 하나를 바꾸는 작업이 아니라 전체 파라미터 세트가 기기 identity와 목표 시장에 맞게 일관되도록 만드는 작업입니다. 화면, 모델, 센서, 네트워크, UA가 각각 자연스러워야 하고 서로 충돌해서도 안 됩니다. 모바일과 데스크톱 환경을 분리해서 관리하고, 한 계정은 장기간 하나의 안정된 기기 형태로 유지하며, 지역과 일치하는 독립된 외부 연결을 사용하면 모바일 운영의 안정성을 높일 기반이 됩니다. PurpleMark 같은 환경 관리 도구는 환경 생성 시 기기 및 시스템 파라미터, 프록시, 시작 페이지를 함께 묶고 실행할 때마다 같은 설정을 복원할 수 있어 매번 다시 구성하는 번거로움을 줄일 수 있습니다.