브라우저나 기기 환경에 따라 기능을 다르게 제공할 때, User-Agent Sniffing과 Feature Detection이 대표적 접근 방식이다. User-Agent 문자열을 분석해 기기나 브라우저를 식별하는 방식이다. 기능 자체의 지원 여부를 검사해 조건 분기하는 방식이다. Modernizr는 Feature Detection을 편하게 도와주는 라이브러리로, 원하는 기능만 포함해 빌드할 수 있다. User-Agent와 Feature Detection을 결합해 보다 정교한 환경 감지도 가능하다. 구글은 User-Agent 문자열을 축소 중이며, 이에 대응해 User-Agent Client Hints API 사용이 권장된다.개요
최근에는 유지보수성, 보안성 측면에서 Feature Detection을 우선 적용하는 것이 권장된다.
1. User-Agent Sniffing
기기 모델 식별에는 유용하지만, 업데이트에 민감하고 개인정보 보호 정책 강화로 사용이 점차 제한되고 있다.
2. Feature Detection
브라우저나 기기 종류에 상관없이 안전하고 유연하게 적용할 수 있다.
3. 라이브러리: Modernizr & Sniffr
Sniffr는 User-Agent 기반의 정보를 쉽게 파싱해주는 라이브러리이다.
4. 플랫폼별 감지 가능성
5. 기타 감지 가능 정보
6. 혼합 접근 예시
예: 노치 모델 감지, Apple Silicon 여부, 기능 지원 여부를 모두 판단
7. 미래 대응: Privacy Sandbox와 User-Agent Reduction
이 API는 보다 구조화되고 개인정보 친화적인 방식으로 사용자 정보를 제공한다.
결론