Programing/javascript

자바스크립트 실무 유틸 함수 시리즈 23 - 브라우저 환경 감지 및 대응 유틸

2025. 5. 1. 14:57
반응형

이번 23편에서는 사용자의 브라우저 환경에 따라 조건부 처리를 하거나 기능을 제한하는 데 필요한 유틸 함수들을 소개합니다. 디바이스, 브라우저, 운영체제 감지 등 프론트엔드 대응에 중요한 역할을 하는 함수들입니다.


✅ 1. isMobileDevice (모바일 디바이스 감지)

📌 User Agent를 기반으로 모바일 기기 여부 반환

function isMobileDevice() {
  return /Mobi|Android|iPhone/i.test(navigator.userAgent);
}

📌 활용 예시

if (isMobileDevice()) {
  alert('모바일 최적화 모드로 전환됩니다.');
}

✅ 2. getBrowserInfo (브라우저 이름 감지)

📌 User Agent 문자열로부터 브라우저 정보 추출

function getBrowserInfo() {
  const ua = navigator.userAgent;
  if (/chrome|crios/i.test(ua)) return 'Chrome';
  if (/firefox/i.test(ua)) return 'Firefox';
  if (/safari/i.test(ua) && !/chrome/i.test(ua)) return 'Safari';
  if (/edg/i.test(ua)) return 'Edge';
  return 'Unknown';
}

📌 활용 예시

console.log(`현재 브라우저: ${getBrowserInfo()}`);

✅ 3. isDarkMode (다크 모드 감지)

📌 사용자의 시스템 색상 모드 여부 반환

function isDarkMode() {
  return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
}

📌 활용 예시

if (isDarkMode()) {
  document.body.classList.add('dark');
}

✅ 4. getOS (운영체제 정보 반환)

📌 플랫폼 기반으로 OS 명칭 반환

function getOS() {
  const platform = navigator.platform.toLowerCase();
  if (platform.includes('mac')) return 'MacOS';
  if (platform.includes('win')) return 'Windows';
  if (/linux/.test(platform)) return 'Linux';
  return 'Unknown';
}

📌 활용 예시

console.log(`운영체제: ${getOS()}`);

✅ 5. isTouchDevice (터치 디바이스 여부 확인)

📌 터치 스크린 지원 여부 확인

function isTouchDevice() {
  return 'ontouchstart' in window || navigator.maxTouchPoints > 0;
}

📌 활용 예시

if (isTouchDevice()) {
  document.body.classList.add('touch-enabled');
}

✅ 결론

사용자의 환경에 따라 적절한 UI/UX를 제공하는 것은 웹 개발의 기본입니다. 이번 시리즈에서 다룬 브라우저 감지 유틸 함수들은 조건부 렌더링, 접근성 대응, 성능 최적화에 효과적으로 활용할 수 있습니다.

반응형

'Programing > javascript' 카테고리의 다른 글

함정에 빠지기 쉬운 자바스크립트 문법3  (0) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법2  (0) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법  (0) 2025.05.05
자바스크립트 실무 유틸 함수 시리즈 24 - 접근성 향상을 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 22 - URL 및 쿼리 파라미터 처리 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 21 - 정규 표현식을 활용한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 20 - 배열 비교 및 동기화를 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 19 - 로컬 스토리지 / 세션 스토리지를 위한 유틸  (0) 2025.05.01
'Programing/javascript' 카테고리의 다른 글
  • 함정에 빠지기 쉬운 자바스크립트 문법
  • 자바스크립트 실무 유틸 함수 시리즈 24 - 접근성 향상을 위한 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 22 - URL 및 쿼리 파라미터 처리 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 21 - 정규 표현식을 활용한 유틸
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    Java
    It
    자바스크립트유틸
    IT·컴퓨터
    jsp
    자바
    iT's MY LiFE
    디자인패턴
    읽고 싶은 책
    IT 관련
    JavaScript
    위시리스트
    IT블로그
    php
    SQL
    자바스크립트
    블로그
    사고 싶은 책
    js패턴
    기초
Dongkkase
자바스크립트 실무 유틸 함수 시리즈 23 - 브라우저 환경 감지 및 대응 유틸
상단으로

티스토리툴바