User-Agent 파서
UA 문자열에서 브라우저·엔진·OS·기기 식별
로컬 실행
loading…
이 도구에 대해
로그 한 줄, 버그 리포트, 분석 도구 내보내기에서 가져온 User-Agent 문자열을 붙여넣으면 해독됩니다. 브라우저와 버전, 렌더링 엔진, 운영 체제, 기기 유형, CPU 아키텍처까지. 파서는 수많은 분석 파이프라인 뒤에 있는 바로 그 라이브러리인 ua-parser-js이며, 여러분의 문자열을 로컬에서 처리합니다.
User-Agent 문자열은 고고학 유적지입니다. 모든 문자열이 여전히 Mozilla/5.0을 자칭하고, Chrome은 Safari를 자칭하고, Safari는 KHTML을 자칭하며, 진짜 정체는 뒤쪽 토큰들에 숨어 있습니다. 파서가 눈을 찡그리고 들여다보는 것보다 낫습니다. "CriOS"가 iOS의 Chrome을 뜻하고 Edge가 "Edg/" 뒤에 숨어 있다는 것을 알고 있으니까요.
흐름의 방향에 주목하세요. 브라우저들은 UA 문자열을 동결하고 축소하는 중이며(Chromium은 대신 UA Client Hints를 제공), UA만으로 얻는 버전 정보는 갈수록 거칠어집니다. 로그 포렌식과 버그 분류에는 여전히 필수불가결하지만, 기능 결정에는 기능 감지를 쓰세요.
자주 묻는 질문
- 왜 모든 User-Agent가 Mozilla/5.0으로 시작하나요?
- 끝나지 않은 1990년대 호환성 연극입니다. 서버들이 "Mozilla"를 탐지해 최신 페이지를 제공했기 때문에 모든 새 브라우저가 그것을 자칭했고, 이후의 브라우저들도 차례로 전임자들을 흉내 냈습니다. 이 접두사는 이제 의미 없는 전통일 뿐입니다.
- UA 문자열의 OS 버전을 믿을 수 있나요?
- 해가 갈수록 덜 믿을 수 있습니다. macOS는 UA 버전을 10_15_7에 동결했고, Windows 11은 Windows NT 10.0으로 보고하며, 축소 UA 브라우저들은 버전을 의도적으로 뭉뚱그립니다. UA에서 얻은 OS 버전은 근사치로 취급하고, 클라이언트를 통제할 수 있다면 UA Client Hints를 쓰세요.
- "like Gecko"나 "KHTML, like Gecko"는 무슨 뜻인가요?
- 흉내의 층이 더 쌓인 것입니다. WebKit은 KHTML의 후손인데, Gecko(Firefox의 엔진)를 특별 취급하는 페이지들이 제대로 동작하길 바라서 "like Gecko"를 덧붙였습니다. 모든 WebKit/Blink 브라우저가 오늘날까지 이 문구를 달고 다닙니다.
- 기능 감지에 UA 파싱을 써야 하나요?
- 아니요. 새 브라우저 버전이 출시되는 순간 스니핑은 깨집니다. 기능 자체를 감지하세요(if ("clipboard" in navigator)). UA 파싱은 분석, 로그 분석, 사용자가 신고한 버그의 재현에 쓰는 것입니다. 환경을 아는 것 자체가 목적인 곳들이죠.