웹 사용자 에이전트

W3C 그룹 노트 초안,

이 문서에 대한 추가 정보
이 버전:
https://www.w3.org/TR/2026/DNOTE-web-user-agents-20260319/
최신 공개 버전:
https://www.w3.org/TR/web-user-agents/
에디터 초안:
https://w3ctag.github.io/user-agents
이전 버전:
기록:
https://www.w3.org/standards/history/web-user-agents/
피드백:
GitHub
에디터:
(Google)
사르벤 카파디슬리 (초청 전문가)

초록

웹 사용자 에이전트에는 웹 브라우저뿐만 아니라 최종 사용자와 웹 사이의 기타 중개자들도 포함됩니다. 각 사용자 에이전트는 다른 집단이 아니라 자신의 사용자를 위해 봉사합니다. 사용자 에이전트는 사용자에게 다양한 의무를 지니며, 이러한 의무는 집단적인 논의를 통해 정립되어야 하며 사용자 에이전트가 구현하는 다양한 표준에 반영되어야 합니다.

이 문서의 상태

이 섹션은 이 문서가 출간될 당시의 상태를 설명합니다. 현재 W3C 발행 목록과 이 기술 보고서의 최신 개정판은 W3C 표준 및 초안 색인에서 확인할 수 있습니다.

이 문서는 기술 아키텍처 그룹에서 Note 트랙을 사용하여 그룹 노트 초안으로 발행되었습니다. 이 문서는 초안이며, 언제든지 다른 문서에 의해 업데이트, 대체 또는 폐기될 수 있습니다. 이 문서를 진행 중인 작업 이외의 것으로 인용하는 것은 부적절합니다. 그룹 노트 초안은 W3C 또는 그 회원에 의해 승인된 것이 아닙니다.

이 문서에 대한 피드백과 의견을 환영합니다. 이슈를 등록해주시거나 이 문서의 GitHub 저장소에 남겨주세요.

W3C 특허 정책은 이 문서에 대해 어떠한 라이선스 요건이나 의무도 적용하지 않습니다.

이 문서는 2025년 8월 18일 W3C 프로세스 문서의 적용을 받습니다.

1. 대상 독자

이 문서는 다음을 대상으로 합니다:

2. 웹 사용자 에이전트란?

일반적으로 사용자 에이전트는 사용자를 대신하여 다른 엔티티와 상호 작용하는 모든 소프트웨어 엔티티입니다. 사용자 에이전트에는 많은 운영 체제; 이메일 클라이언트; PDF, 전자책, 이미지 뷰어; 자격 증명 관리자(디지털 지갑 포함); 그리고 다양한 종류의 소프트웨어가 포함됩니다.

웹 사용자 에이전트는 사용자 자신 외부에서 웹사이트와 상호작용하는 모든 소프트웨어 엔터티를 의미하며, 웹사이트의 콘텐츠를 단순히 렌더링하거나 사용자가 요청하거나 인가한 동작을 수행하는 것도 포함된다. 웹 명세와 본 문서의 나머지 부분에서는, 웹 사용자 에이전트를 보통 "사용자 에이전트"로 지칭한다. 혼란의 여지가 있을 경우에는 완전히 명확한 용어를 사용할 수 있다. 한 사람은 일상에서 여러 종류의 사용자 에이전트를 사용할 수 있다.

가장 일반적인 웹 사용자 에이전트는 웹 브라우저이며, 교차 사이트 링크를 따라갈 수 있는 앱 내 브라우저도 포함된다. 하지만 사용자 에이전트에는 검색 엔진, 음성 기반 어시스턴트, 생성형 AI 시스템 등 웹사이트 콘텐츠의 일부나 요약을 보여주거나, 사람들이 웹사이트를 탐색하고 상호작용하는 것을 도와주거나, 사용자 대신 자동화된 동작을 수행하는 다양한 도구들도 포함된다.

사용자 에이전트의 동작은 웹 표준이나 기술 명세서만으로 완전히 정의되지 않습니다. 특히, 사용자 에이전트는 사용자에게 가장 적합하도록 어떤 명세를 구현할지 선택하며, 구현한 명세 주변에 독자적인 사용자 인터페이스와 기타 동작을 추가합니다.

2.1. 소프트웨어 구성요소로서의 사용자 에이전트

소프트웨어 구성요소로서 사용자 에이전트는 더 큰 애플리케이션의 일부가 될 수 있고, 웹 플랫폼 또는 그 일부를 구현하는 라이브러리를 호출할 수 있습니다.

애플리케이션이 그 구성요소 중 사용자 에이전트와 아닌 것을 명확히 구분할 경우, 외부 콘텐츠를 탐색하는 사용자 에이전트부분만 사용자 에이전트의 의무를 따라야 합니다. 오직 애플리케이션 고유의 콘텐츠만을 보여주는 부분은 독립적으로 동작할 수 있으나, 각 부분별 예상 동작을 사용자에게 명확히 안내해야 합니다. 내부와 외부 콘텐츠의 구분이 너무 모호하다면—예를 들어 외부 콘텐츠 브라우징 시 주소 표시줄 등 출처 표시가 없다면— 자체 콘텐츠를 보여줄 때도 사용자 에이전트의 의무를 따라야 합니다.

웹 플랫폼을 구현하는 라이브러리 역시 반드시 완전한 사용자 에이전트일 필요는 없습니다. SFSafariViewControllerAndroid Custom Tabs 등 일부는 사용자 에이전트의 의무를 수행하며 탐색하는 외부 콘텐츠와 임베디드 애플리케이션이 제어하는 콘텐츠를 명확히 구분합니다. 이러한 라이브러리는 사용자 에이전트입니다.

Android, iOS, Windows WebView 라이브러리와 같이 다양한 종류의 애플리케이션 지원을 위해 설계된 것들도 있습니다. 일부 애플리케이션은 자체 콘텐츠만 포함하므로, WebView 라이브러리는 단독으로 사용자 에이전트가 아니며, 사용자 에이전트의 의무를 구현하지 않습니다.

결국, 애플리케이션이 사용자 에이전트로 동작하거나, 그 일부가 동작한다면, 사용자 에이전트의 의무를 따라야 할 책임이 있습니다. 사용자 에이전트 라이브러리를 사용해 외부 콘텐츠만 탐색한다면 이는 비교적 단순합니다. 개발자는 사용자 에이전트의 의무를 비-사용자 에이전트 WebView로 인앱 브라우저를 구현할 때 더욱 신중히 준수해야 합니다.

3. 사용자 에이전트의 의무

각 사용자 에이전트는 사용자(인터넷은 최종 사용자를 위해) 를 위해 봉사하며, 다른 집단을 위한 것이 아닙니다. 사용자 에이전트는 사용자에게 다양한 의무를 지니며, 이는 집단 논의를 통해 정립되고 사용자 에이전트가 구현하는 여러 표준에 반영되어야 합니다.

3.1. 보호

웹 페이지 방문은 안전해야 합니다. 페이지를 방문했다고 해서 자동으로 사용자의 컴퓨터나 환경이 변경되어서는 안 됩니다. (예: 소프트웨어 설치, 하드웨어 접근)

사이트나 제3자가 볼 수 있는 데이터는 사용자의 선호에 맞아야 하며, 데이터 최소화 원칙을 따라야 합니다. 특히 사용자 에이전트는 사이트가 사용자 활동을 추적할 가능성을 제한해야 합니다 [unsanctioned-tracking].

사용자는 더 많은 정보를 공유하기로 선택할 수 있습니다. (예: 폼 작성, 권한 부여 등) 이 경우에도 사용자 에이전트는 사용자가 속지 않도록 돕고, 페이지가 권한 상승을 시도할 때 명확히 표시해 주어야 합니다.

로컬 파일이나 기타 민감 리소스에 대한 접근은 명확하면서도 의도적인 사용자 행동(예: 경고 표시)이 있을 때에만 허용되어야 합니다.

예시: 공격

사용자 에이전트는 사이트의 악성 코드가 사용자 에이전트 밖으로 탈출하여 사용자의 컴퓨터를 수정하거나 다른 origin 에 접근하지 못하도록 막아야 합니다. 샌드박스 사용, 메모리 안전 언어 사용, 보안 팀을 운영하여 취약점 대응 등으로 보호 의무를 이행할 수 있습니다. 이러한 방어는 새로운 위협에 맞춰 지속적으로 진화해야 합니다.

예시: 추적

서로 관련 없는 웹사이트를 사용자가 방문할 때, iframe에 공유 식별 쿠키를 보내지 않는 것이 가능합니다. 이러한 쿠키를 보내는 브라우저는 보호 의무를 위반한 것입니다. 단, 고정 IP 주소 노출은 현재로서는 피할 수 없으므로 위반이 아닙니다.

예시: 로컬 파일

사용자 에이전트는 사용자가 직접 선택하거나 열지 않는 한, 페이지가 로컬 파일에 접근하지 못하도록 해야 합니다. 이에 따라 아래와 같은 동작이 유도됩니다:

단, 파일 업로드/다운로드 등을 통해 사용자가 파일을 공유하는 것은 여전히 가능합니다. File System Access 같은 API도 사용자가 주체적으로 결정할 수 있는 도구만 있다면 보호 의무를 위반하는 것이 아닙니다.

3.2. 정직

사용자 에이전트는 웹과 사용자 사이를 중재해야 하며, 사용자가 이해할 수 있는 형태로 무슨 일이 일어나고 있는지 설명해야 한다. 사용자 에이전트가 자동으로 또는 사용자를 대신해 동작을 수행할 때, 반드시 그 행동과 그 결과를 명확히 전달해야 한다.

사용자 에이전트는 설명을 위해 텍스트, 권한 요청 알림, 표시기, 미리보기, 기타 인터페이스 요소 등 여러 방식을 사용할 수 있다. 이 요소들의 위치와 무엇에 강조가 필요한지 고려해야 한다.

대표적인 예로, 사용자 에이전트는 웹사이트가 암호화된 연결로 제공되는지 여부를 표시한다. 예전에는 안전하지 않은 사이트에 깨진 자물쇠 아이콘을 보여줬지만, 지금은 일부 사용자 에이전트가 주소창에 "보안되지 않음"이라는 문구를 명시적으로 포함한다.

Media Capture and Streams와 같은 명세에는 프라이버시 표시 요건이 포함되어 사용자 에이전트가 웹사이트의 특정 동작을 설명하도록 요구하지만, 사용자 에이전트는 명세에서 명시적으로 요구하지 않은 행동에 대해서도 사용자가 그 사실을 알아야 할 때 동일한 기법을 활용해야 한다.

정직한 사용자 에이전트는 사용자의 진실 파악을 적극적으로 돕는다. 단순히 거짓을 피하는 것에 그치지 않는다. 그 설명은 현재 상태와 예상 결과를 명확히 나타내야 하며, 완곡어법이나 모호함을 피하고, 민감한 활동이 일어날 때 분명하게 드러나도록 해야 한다.

사용자 에이전트는 언제, 얼마나 자주 이런 설명을 보여줄지 선택해야 하며, 설명이 적절한 시점에 제공되어 사용자를 방해하지 않고 정보를 제공해야 한다. 또 사용자가 언제, 어떻게 결정을 내릴지 스스로 제어할 수 있도록 해야 한다.

예를 들어, 웹사이트가 위치 정보나 오디오 녹음과 같이 장기간 권한을 사용하는 경우, 사용자 에이전트는 주소창에 아이콘을 표시해 현재 상황을 설명할 수 있다.

3.3. 충성

사용자 에이전트는 구현자, 타인의 이익보다 사용자의 이익에 봉사해야 합니다.

공정한 지불이 사전에 합의된 경우, 사용자 에이전트는 사용자에게 충실하면서도 서비스 대가를 받을 수 있습니다.

사용자 에이전트는 사용자가 서비스를 받기 위해 페이지와 신뢰할 만한 약속을 하도록 도울 수 있으며, 서비스를 받은 뒤에도 그 약속을 유지하는 것은 충성 위반이 아닙니다.

사용자 에이전트는 사용자가 다른 사용자 에이전트로 전환하는 것을 막아서는 안 됩니다. 예를 들어, 사용자 데이터에 대한 접근을 차단하거나, 데이터를 내보내거나, 데이터를 휴대 불가능하게 저장해서는 안 됩니다. 여기에는 신원 정보, 북마크, 기록, 비밀번호, 패스키 등 자격 증명이 포함됩니다. 만약 사용자 에이전트가 기반 OS에 자격 증명을 저장한다면, 사용자가 다른 사용자 에이전트가 해당 정보를 접근할 수 있도록 허용하는 방법이 제공되어야 합니다.

4. 감사의 글

Infra Standard 에 사용자 에이전트의 초기 정의를 제공해 준 점과, Privacy Principles 에 이 의무의 초기 버전을 제공해 준 점에 감사드립니다.

색인

이 명세에서 정의된 용어

참조에 의해 정의된 용어

참고 문헌

규범적 참고 문헌

[CREDENTIAL-MANAGEMENT-1]
니나 사트라뇨; 마르코스 카세레스. Credential Management Level 1. 2026년 2월 13일. WD. URL: https://www.w3.org/TR/credential-management-1/
[DESIGN-PRINCIPLES]
마틴 톰슨; 제프리 야스킨. Web Platform Design Principles. 2026년 2월 24일. NOTE. URL: https://www.w3.org/TR/design-principles/
[MEDIACAPTURE-STREAMS]
컬렌 제닝스; 외. Media Capture and Streams. 2025년 10월 9일. CRD. URL: https://www.w3.org/TR/mediacapture-streams/
[RFC8890]
M. 노팅엄. The Internet is for End Users. 2020년 8월. Informational. URL: https://www.rfc-editor.org/rfc/rfc8890

참고용 참고 문헌

[CSS-FONTS-5]
Chris Lilley. CSS Fonts Module Level 5. 2026년 3월 3일. WD. URL: https://www.w3.org/TR/css-fonts-5/
[FILE-SYSTEM-ACCESS]
File System Access. 커뮤니티 그룹 초안 보고서. URL: https://wicg.github.io/file-system-access/
[HTML]
Anne van Kesteren; 외. HTML 표준. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[Infra]
Anne van Kesteren; Domenic Denicola. Infra 표준. Living Standard. URL: https://infra.spec.whatwg.org/
[PRIVACY-PRINCIPLES]
Robin Berjon; Jeffrey Yasskin. 프라이버시 원칙. 2025년 5월 15일. STMT. URL: https://www.w3.org/TR/privacy-principles/
[UNSANCTIONED-TRACKING]
Mark Nottingham. 비인가 웹 추적. 2015년 7월 17일. TAG Finding. URL: https://www.w3.org/2001/tag/doc/unsanctioned-tracking/
[URL]
Anne van Kesteren. URL 표준. Living Standard. URL: https://url.spec.whatwg.org/