JavaScript

JavaScript navigator object method

lshjju 2026. 6. 1. 12:25

자바스크립트의 navigator 객체는 현재 사용자가 사용 중인 브라우저(웹 애플리케이션)의 정보와 운영체제, 그리고 기기의 하드웨어 기능에 접근할 수 있는 다양한 정보를 담고 있습니다.


개인정보 보호와 보안 기준이 강화되면서 단순 정보 조회 기능 외에도 유저의 기기 권한을 제어하는 강력한 API들이 이 navigator 객체를 통해 제공됩니다.

실무에서 가장 유용하게 쓰이는 navigator 객체의 중요 메소드와 핵심 프로퍼티를 4가지 카테고리로 나누어 정리해 드리겠습니다.



1. 클립보드 제어 (복사 및 붙여넣기)

사용자가 웹 페이지에서 '링크 복사' 버튼을 눌렀을 때, 글자를 클립보드에 자동으로 복사해 주는 현대 웹의 필수 기능입니다.

(보안 상 비동기 Promise 기반으로 작동합니다.)

  • navigator.clipboard.writeText(text): 텍스트 복사
    • 인자로 전달한 문자열을 사용자의 클립보드에 저장합니다.
  • navigator.clipboard.readText(): 텍스트 붙여넣기
    • 사용자의 클립보드에 있는 텍스트를 읽어옵니다. (사용자의 승인 권한이 필요합니다.)
// '링크 복사' 기능 구현 예시
const copyLink = async () => {
  try {
    await navigator.clipboard.writeText("https://example.com/share-link");
    alert("링크가 클립보드에 복사되었습니다!");
  } catch (err) {
    console.error("복사 실패:", err);
  }
};

2. 위치 정보 제공 (Geolocation)

사용자의 현재 지리적 위치(위도와 경도)를 파악할 수 있는 서비스입니다.

지도 서비스나 날씨 앱에서 단골로 사용됩니다.

  • navigator.geolocation.getCurrentPosition(success, error): 현재 위치 가져오기
    • 사용자가 위치 정보 제공에 동의하면, 현재 기기의 GPS나 네트워크 기반 위도·경도 좌표를 반환합니다.
// 현재 위도, 경도 구하기
navigator.geolocation.getCurrentPosition(
  (position) => {
    const lat = position.coords.latitude;  // 위도
    const lon = position.coords.longitude; // 경도
    console.log(`위도: ${lat}, 경도: ${lon}`);
  },
  (error) => {
    console.log("위치 정보를 가져올 수 없습니다.", error.message);
  }
);

3. 모바일 기기 기능 및 공유 (Web Share API)

스마트폰 브라우저에서 실행했을 때, 모바일 OS 고유의 공유 창을 띄우거나 기기 진동을 제어할 수 있는 친-모바일 메소드입니다.

  • navigator.share(data): 모바일 공유 창 띄우기
    • 기기 네이티브의 공유 UI(카카오톡, 문자, 이메일 등 선택창)를 호출합니다.
  • navigator.vibrate(pattern): 기기 진동 깨우기
    • 밀리초 단위로 기기에 진동 알림을 줍니다. (예: 200은 0.2초 진동)
JavaScript
 
// 스마트폰 하단 공유하기 버튼 구현 시 활용
if (navigator.share) {
  navigator.share({
    title: '꿀팁 발견',
    text: '이 유용한 개발 가이드를 읽어보세요.',
    url: window.location.href
  })
  .then(() => console.log('공유 성공'))
  .catch((error) => console.log('공유 실패', error));
} else {
  alert('이 브라우저에서는 공유 기능을 지원하지 않습니다.');
}

4. 네트워크 및 브라우저 상태 조회 (중요 프로퍼티)

메소드는 아니지만 navigator 객체에서 실무 활용도가 가장 높은 핵심 속성들입니다.

  • navigator.onLine: 현재 인터넷 연결 여부를 true / false로 알려줍니다.
  • navigator.userAgent: 현재 브라우저의 정보, 버전, 운영체제(OS) 정보가 담긴 문자열을 반환합니다. (과거 브라우저 구별 및 기기 판별용으로 자주 쓰였으나, 최근에는 보안/개인정보 보호로 점차 축소되는 추세입니다.)
  • navigator.language: 사용자의 브라우저 기본 설정 언어(예: "ko", "en-US")를 반환하여 다국어 페이지 구현 시 유용합니다.
// 인터넷 연결이 끊겼을 때 경고 메시지 띄우기
window.addEventListener('offline', () => {
  alert('인터넷 연결이 원활하지 않습니다. 오프라인 모드로 전환합니다.');
});

console.log(`현재 연결 상태: ${navigator.onLine ? '온라인' : '오프라인'}`);
console.log(`사용자 브라우저 언어: ${navigator.language}`);

📋 navigator 객체 중요 기능 요약표

종류 이름 기능 및 역할 특징
메소드 clipboard.writeText() 클립보드에 문자열 복사 비동기(Promise) 방식으로 처리됨
메소드 geolocation.getCurrentPosition() 사용자의 GPS 위도/경도 조회 최초 호출 시 브라우저 권한 팝업창 발생
메소드 share() 모바일 네이티브 공유 UI 호출 HTTPS 환경과 모바일 기기 환경 위주로 작동
프로퍼티 onLine 현재 인터넷 연결 상태 실시간 파악 true 또는 false 값을 반환
프로퍼티 language 사용자의 시스템 설정 언어 파악 글로벌 서비스 웹 사이트 구축 시 필수 확인

학습 정리

  • navigator 객체가 제공하는 하드웨어 및 개인정보 관련 기능들(clipboard, geolocation, share 등)은 사용자의 보안을 위해 **보안 연결 환경(HTTPS)**이 구축된 곳에서만 정상 작동하도록 제한되어 있습니다.
  • 따라서 로컬 환경(localhost)이 아닌 외부 도메인에서 실습할 때는 HTTPS 인증서가 적용되어 있는지 꼭 확인해야 합니다.

브라우저 너머 유저의 기기 환경까지 제어할 수 있는 navigator 객체의 핵심 기능들을 완벽히 파악하셨습니다!


'JavaScript' 카테고리의 다른 글

JavaScript history object method  (0) 2026.06.01
JavaScript location object method  (0) 2026.06.01
JavaScript window object method  (0) 2026.06.01
JavaScript and LocalStorage and JSON  (0) 2026.06.01
JavaScript JSON object method  (0) 2026.06.01