User-Agent 파서 및 브라우저·기기 식별기

HOT

브라우저 User-Agent 문자열을 분석해 OS, 브라우저 버전, 기기 종류, 인앱 웹뷰 및 봇 감지

ADVERTISEMENT · TOP BANNER

Responsive 728x90 / 320x100 Ad Slot

(CLS Prevention Active · Zero Shift)
100% 브라우저 연산 (서버 전송 없음, 개인정보 안전)
Interactive Client Mode
User-Agent 파서 & 브라우저/기기 식별기
User-Agent 헤더 문자열
웹 브라우저
Google Chrome
버전: 128.0.0.0
운영체제 (OS)
macOS
버전: 10.15.7
디바이스 폼팩터
desktop
엔진: Blink (WebKit fork)
봇 / 웹뷰 식별
일반 브라우저 (Human)
정상 사용자 브라우저 클라이언트
ADVERTISEMENT · HIGH CTR IN-FEED

Native In-Feed / High Viewability Ad Slot

(CLS Prevention Active · Zero Shift)

User-Agent 문자열 파싱과 클라이언트 환경 식별 원리

User-Agent(사용자 에이전트 헤더)는 웹 브라우저나 모바일 앱, 웹 크롤러 등의 클라이언트 소프트웨어가 HTTP/HTTPS 요청을 보낼 때 자신을 식별하기 위해 웹 서버로 전송하는 핵심 요청 헤더(`User-Agent: ...`)입니다. 이 문자열에는 사용자의 브라우저 제품군(Chrome, Safari, Firefox 등) 및 버전, 렌더링 엔진(Blink, WebKit, Gecko), 운영체제(Windows, macOS, iOS, Android, Linux) 및 기기 폼팩터(Desktop, Mobile, Tablet, Bot)에 대한 정보가 압축되어 있습니다.

그러나 1990년대 초기 웹 브라우저 전쟁(Browser Wars)의 호환성 레거시로 인해, 현대의 거의 모든 브라우저는 헤더의 맨 처음에 여전히 `Mozilla/5.0`을 달고 있으며 뒤이어 `AppleWebKit`, `Chrome`, `Safari`라는 서로 상반된 브라우저 이름을 한꺼번에 나열합니다. 예를 들어 최신 구글 크롬 브라우저의 User-Agent에도 `Safari/537.36`이라는 문자열이 포함되어 있기 때문에, 단순한 문자열 포함(`str.includes('Safari')`) 검사를 수행하면 크롬 사용자를 사파리 사용자로 오판하는 심각한 로직 오류가 발생합니다. 정밀한 우선순위 기반 정규식 매칭과 토큰 분해가 필수적입니다.

오르보킷 User-Agent 파서는 복잡하게 얽힌 헤더 토큰을 분해하여 브라우저, OS, 렌더링 엔진, 하드웨어 기기 정보를 직관적으로 시각화합니다. 특히 카카오톡, 인스타그램, 페이스북 등의 인앱 브라우저(WebView) 감지뿐만 아니라 구글봇(Googlebot), 네이버 예티(Yeti) 등 검색엔진 크롤러를 정확히 식별하며, 최신 크롬의 User-Agent 축소(Reduction) 정책 및 Client Hints(`Sec-CH-UA`) 생태계에 대응하는 기술 인사이트를 제공합니다.

우선순위 토큰화 및 클라이언트 식별 알고리즘

레거시 호환성 토큰을 우회하고 최신 식별자를 추출하기 위한 계층적 정규표현식 파싱 규칙입니다.

브라우저 엔진 식별 결정 파이프라인Mathematical Formulation
Browser = if (UA.includes('Edg/')) 'Edge'; else if (UA.includes('Chrome/') && !UA.includes('Edg/')) 'Chrome'; else if (UA.includes('Safari/') && !UA.includes('Chrome/')) 'Safari';

하위 호환성 문자열(Safari)보다 파생 브라우저 고유 토큰(Edg, Chrome)을 먼저 평가하는 우선순위 체계입니다.

Windows 11 환경의 Edge 브라우저 User-Agent 파싱
원본 UA 수신Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ... Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0복합 토큰 문자열
OS 매핑'Windows NT 10.0' ➔ Windows 10/11 x64Windows 11 Desktop
엔진 판별'AppleWebKit/537.36' ➔ Blink 엔진Blink (Chromium 기반)
브라우저 우선순위 평가'Edg/122.0' 토큰 검출 ➔ Chrome이나 Safari가 아닌 Edge로 판정Microsoft Edge 122.0

👉 Safari와 Chrome 토큰이 포함되어 있음에도 최종 제품군을 Microsoft Edge로 완벽히 식별합니다.

  • 브라우저 식별 우선순위: Edge(Edg/) ➔ Chrome/Chromium ➔ Safari 순으로 검사하여 엔진 호환성 표기 토큰으로 인한 오판을 차단합니다.
  • 인앱 웹뷰(WebView) 탐지: `KAKAOTALK`, `NAVER`, `FBAN/FBAV`, `Instagram` 등 모바일 앱 내부 임베디드 웹뷰 시그니처를 우선 추출합니다.
  • 운영체제 및 아키텍처 매핑: `Windows NT 10.0`(Windows 10/11), `Mac OS X 10_15_7`, `Android 14`, `iPhone; CPU iPhone OS 17_4` 등을 파싱합니다.
  • 검색엔진 크롤러 및 봇 식별: `Googlebot`, `bingbot`, `Yeti`, `Baiduspider` 등 인덱싱 봇을 일반 사용자와 구분하여 렌더링 분기를 지원합니다.

대표 User-Agent 문자열 패턴 및 파싱 결과 비교표

플랫폼 및 브라우저전형적인 User-Agent 패턴판별된 브라우저판별된 OS디바이스 분류
Chrome (Windows)Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ... Chrome/122.0 ... Safari/537.36ChromeWindows 10/11Desktop
Safari (macOS)Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 ... Version/17.3 Safari/605.1.15SafarimacOSDesktop
Mobile Safari (iPhone)Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 ... Mobile/15E148 Safari/604.1Mobile SafariiOSMobile
Chrome (Android)Mozilla/5.0 (Linux; Android 14; SM-S918N) AppleWebKit/537.36 ... Chrome/122.0 ... Mobile Safari/537.36Chrome MobileAndroid 14Mobile
카카오톡 인앱 (iOS)... iPhone OS 17_4 ... Mobile/15E148 KAKAOTALK 10.5.0KakaoTalk In-AppiOSMobile (WebView)
Googlebot (SEO 봇)Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)GooglebotLinux (Bot)Search Bot
네이버 검색 봇 (Yeti)Mozilla/5.0 (compatible; Yeti/1.1; +http://naver.me/bot)Naver YetiUnknownSearch Bot
Microsoft Edge (Mac)Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ... Chrome/122.0 ... Safari/537.36 Edg/122.0EdgemacOSDesktop
ADVERTISEMENT · IN-ARTICLE CONTENT

High-Engagement In-Article Native Ad Slot

(CLS Prevention Active · Zero Shift)

사용 방법

11. User-Agent 문자열 입력 또는 [내 브라우저 정보 가져오기]

분석하고자 하는 서버 로그의 User-Agent를 입력창에 붙여넣거나, [내 브라우저 감지] 버튼을 클릭해 현재 접속 중인 기기의 헤더를 1초 만에 불러옵니다.

22. 실시간 구조 분해 및 카드 정보 확인

브라우저 이름과 메이저 버전, 운영체제(OS), 렌더링 엔진, 하드웨어 폼팩터(데스크톱, 모바일, 태블릿, 봇)가 시각적 배지로 펼쳐집니다.

33. 웹뷰 및 크롤러 감지 진단

해당 요청이 일반 브라우저인지, SNS 인앱 브라우저(카카오톡, 인스타그램 등)인지, 아니면 검색엔진 인덱싱 크롤러인지 확인합니다.

44. 정규화된 JSON 데이터 복사

[JSON 복사] 버튼을 눌러 Node.js, Python, 백엔드 로깅 시스템에 바로 매핑할 수 있는 정형화된 JSON 객체를 클립보드에 담습니다.

실무에서의 User-Agent 파싱 및 활용 사례

반응형 웹 분기부터 마케팅 인앱 브라우저 탈출 스크립트까지 다양하게 활용됩니다.

카카오톡/인스타그램 인앱 브라우저 외부 탈출 유도

결제나 파일 다운로드가 차단되는 인앱 브라우저를 감지하여 'kakaotalk://web/openExternalApp' 스킴으로 사파리나 크롬을 강제 호출합니다.

웹 서버 접속 로그의 비정상 크롤러 트래픽 감사

Nginx access.log에서 악성 스크래핑 봇이나 위장된 Googlebot 요청을 식별하여 WAF 방화벽 차단 목록에 등록합니다.

플랫폼별 스마트 앱 다운로드 분기 처리

웹사이트 방문자의 OS를 분석하여 iOS 사용자는 애플 앱스토어로, 안드로이드 사용자는 구글 플레이스토어로 자동 리다이렉트합니다.

구형 레거시 브라우저(IE, 구형 Safari) 지원 중단 안내

최신 웹 표준 기술(WebP, CSS Grid)을 지원하지 못하는 구버전 브라우저 접속자에게 브라우저 업데이트 권장 배너를 노출합니다.

💡 User-Agent 처리 전문가 팁 & 최신 웹 트렌드

✓ User-Agent Reduction(축소 정책) 인지

개인정보 보호 강화를 위해 최신 크롬/사파리는 OS 빌드 번호나 디바이스 상세 모델명을 고정된 더미 값으로 축소하여 전송합니다.

✓ Client Hints(Sec-CH-UA) 헤더 병행 활용

정밀한 CPU 아키텍처나 모델명이 필요한 경우 최신 모던 규격인 `Sec-CH-UA-Model`, `Sec-CH-UA-Platform-Version` 헤더를 활용하세요.

✓ iPadOS의 데스크톱 모드 기본 설정 주의

iPadOS의 Safari는 기본적으로 데스크톱 웹을 요청하기 위해 Mac과 동일한 `Macintosh` UA를 전송하므로 터치 지원 여부(`maxTouchPoints > 0`)를 함께 검사해야 합니다.

✓ User-Agent 위조(Spoofing) 가능성 고려

클라이언트는 cURL이나 브라우저 개발자 도구를 통해 UA를 손쉽게 조작할 수 있으므로 절대 보안 인증이나 결제 인가 수단으로 단독 사용하지 마세요.

⚠️ 흔히 하는 실수 & 예방법

❌ 단순 includes('Safari')로 브라우저 판별
✅ 크롬, 엣지 등 모든 웹킷 기반 브라우저가 'Safari' 단어를 포함하고 있으므로 우선순위 기반 파서를 사용해야 합니다.
❌ 단일 정규식으로 복잡한 변종 UA 파싱 시도
✅ 신규 출시되는 브라우저나 인앱 웹뷰의 변종 패턴에 대비하여 모듈화된 파싱 라이브러리를 채택하세요.
❌ 봇(Bot) 트래픽을 일반 모바일 사용자로 오인
✅ 구글봇 스마트폰 크롤러는 'Mobile'과 'Android'를 포함하므로 봇 토큰 검사를 먼저 수행해야 분석 통계가 왜곡되지 않습니다.
❌ 반응형 레이아웃 분기를 UA에만 의존
✅ 기기 판별보다 CSS 미디어 쿼리(`@media (max-width: 768px)`)를 우선시하여 태블릿과 폴더블폰의 다양한 해상도에 유연하게 대응하세요.

자주 묻는 질문 (FAQ)

사용자 및 전문가들이 가장 자주 묻는 핵심 질문과 명확한 해답입니다.

6 Q&As

1990년대 초 넷스케이프(코드명 Mozilla)가 최초로 프레임(Frame) 등 혁신 기능을 지원하자, 많은 웹 서버들이 오직 Mozilla 브라우저에만 해당 페이지를 전송하도록 설정했습니다. 이후 등장한 인터넷 익스플로러와 다른 브라우저들이 동일한 웹페이지를 제공받기 위해 '우리도 모질라와 호환된다'는 의미로 Mozilla/5.0을 헤더 맨 앞에 붙이기 시작했고, 이것이 굳어져 오늘날까지 유지되고 있는 역사적 레거시입니다.

ADVERTISEMENT · FOOTER BANNER

Wide Responsive Banner

(CLS Prevention Active · Zero Shift)