자바스크립트의 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 |