웹 사용자 에이전트

W3C 그룹 노트 초안,

이 문서에 대한 추가 정보
이 버전:
https://www.w3.org/TR/2026/DNOTE-web-user-agents-20260120/
최신 공개 버전:
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. 정직

사용자 에이전트는 웹과 사용자 사이를 중재하며, 사용자가 이해할 수 있는 형태로 무슨 일이 일어나고 있는지 설명해야 합니다.

사용자 에이전트는 설명을 위해 여러 접근 방식을 사용할 수 있으며, 텍스트, 권한 요청, 표시기, 미리보기, 기타 인터페이스 요소 등이 그 예입니다. 이러한 요소의 배치와 강조가 필요한지 여부를 고려하세요.

전형적인 예로는 웹사이트가 암호화된 연결을 통해 제공되는지 사용자 에이전트가 표시하는 경우가 있습니다. 예전에는 보안이 취약한 사이트에 깨진 자물쇠 아이콘을 표시했으나, 일부 사용자 에이전트는 URL 바에 "보안되지 않음"이라는 텍스트를 명시적으로 포함하기도 했습니다.

미디어 캡처 및 스트림과 같은 명세에는 프라이버시 표시기 요구 사항 이 포함되어 있으며, 사용자 에이전트가 특정 유형의 웹사이트 동작을 설명해야 함을 요구합니다. 그러나 사용자 에이전트는 명세에 특정 동작이 명시되지 않았더라도, 사용자가 다른 동작을 알아야 할 때에도 동일한 기법을 사용해야 합니다.

정직한 사용자 에이전트는 사용자에게 진실을 전달하기 위해 적극적으로 노력합니다. 거짓을 피하는 것에 그치지 않습니다. 설명은 현재 상태와 예상 결과를 명확히 나타내야 하고, 완곡어법이나 모호함을 피해야 하며, 중요한 활동이 발생할 때 그것이 명확히 드러나야 합니다.

사용자 에이전트는 언제, 얼마나 자주 이러한 설명을 보여줄지 결정해야 하며, 설명은 도움이 될 때 제공되어야 하고 정보를 전달해야 하며 방해가 되어서는 안 됩니다. 사용자 에이전트는 사용자가 언제 결정을 내릴지 또는 결정을 내릴지 여부를 제어할 수 있도록 해야 합니다.

3.3. 충성

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

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

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

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

4. 감사의 글

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

색인

이 명세에서 정의된 용어

참조에 의해 정의된 용어

참고 문헌

규범적 참고 문헌

[CREDENTIAL-MANAGEMENT-1]
Nina Satragno; Marcos Caceres. 자격 증명 관리 1단계. 2025년 10월 28일. WD. URL: https://www.w3.org/TR/credential-management-1/
[DESIGN-PRINCIPLES]
Martin Thomson; Jeffrey Yasskin. 웹 플랫폼 설계 원칙. 2025년 12월 18일. NOTE. URL: https://www.w3.org/TR/design-principles/
[MEDIACAPTURE-STREAMS]
Cullen Jennings; 외. 미디어 캡처 및 스트림. 2025년 10월 9일. CRD. URL: https://www.w3.org/TR/mediacapture-streams/
[RFC8890]
M. Nottingham. 인터넷은 최종 사용자를 위한 것. 2020년 8월. Informational. URL: https://www.rfc-editor.org/rfc/rfc8890

참고용 참고 문헌

[CSS-FONTS-5]
Chris Lilley. CSS Fonts Module Level 5. 2024년 2월 6일. WD. URL: https://www.w3.org/TR/css-fonts-5/
[FILE-SYSTEM-ACCESS]
File System Access. Draft Community Group Report. URL: https://wicg.github.io/file-system-access/
[HTML]
Anne van Kesteren; et al. HTML Standard. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[Infra]
Anne van Kesteren; Domenic Denicola. Infra Standard. Living Standard. URL: https://infra.spec.whatwg.org/
[PRIVACY-PRINCIPLES]
Robin Berjon; Jeffrey Yasskin. Privacy Principles. 2025년 5월 15일. STMT. URL: https://www.w3.org/TR/privacy-principles/
[UNSANCTIONED-TRACKING]
Mark Nottingham. Unsanctioned Web Tracking. 2015년 7월 17일. TAG Finding. URL: https://www.w3.org/2001/tag/doc/unsanctioned-tracking/
[URL]
Anne van Kesteren. URL Standard. Living Standard. URL: https://url.spec.whatwg.org/