# DO_NOT_TRACK - 개인정보 보호를 위한 표준

> Clean Markdown view of GeekNews topic #29116. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=29116](https://news.hada.io/topic?id=29116)
- GeekNews Markdown: [https://news.hada.io/topic/29116.md](https://news.hada.io/topic/29116.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-05-03T19:36:17+09:00
- Updated: 2026-05-03T19:36:17+09:00
- Original source: [donottrack.sh](https://donottrack.sh/)
- Points: 2
- Comments: 1

## Topic Body

- **DO_NOT_TRACK**는 CLI 도구, SDK, 프레임워크마다 다른 텔레메트리 비활성화 방식을 하나의 환경 변수로 통일하자는 제안임
- `.NET`, `AWS SAM CLI`, `Azure CLI`, `Gatsby`, `Go`, `Google Cloud SDK`, `Homebrew`, `Netlify CLI`, `Syncthing`은 각각 다른 설정이나 명령으로 **텔레메트리**를 끄고 있음
- `DO_NOT_TRACK=1`은 광고 추적, 사용 보고, 텔레메트리, 충돌 보고, 기능에 필수적이지 않은 제작자 또는 제3자 대상 요청을 거부한다는 뜻임
- 사용자는 `export DO_NOT_TRACK=1`을 설정하고 Bash, Zsh, Fish, PowerShell, Windows CMD의 셸 설정에 추가해 모든 터미널 세션에 적용 가능함
- 소프트웨어 제작자는 **`DO_NOT_TRACK`** 가 `1`이면 모든 추적을 비활성화하고, 기존 비활성화 방식과 함께 이 변수를 존중해야 함

---

### 문제와 제안
- 많은 CLI 도구, SDK, 프레임워크가 기본적으로 **텔레메트리 데이터**를 수집하며, 각 도구마다 비활성화 방법이 다름
- 예를 들어 `.NET`은 `DOTNET_CLI_TELEMETRY_OPTOUT=1`, `AWS SAM CLI`는 `SAM_CLI_TELEMETRY=0`, `Azure CLI`는 `AZURE_CORE_COLLECT_TELEMETRY=0`, `Gatsby`는 `GATSBY_TELEMETRY_DISABLED=1`, `Go`는 `go telemetry off`, `Google Cloud SDK`는 `gcloud config set disable_usage_reporting true`, `Homebrew`는 `HOMEBREW_NO_ANALYTICS=1`, `Netlify CLI`는 `netlify --telemetry-disable`, `Syncthing`은 `STNOUPGRADE=1`을 사용함
- `DO_NOT_TRACK`는 사용자가 다음 항목을 거부한다는 뜻을 명확히 표현하는 **단일 표준 환경 변수**로 제안됨
  - 광고 추적
  - 익명 여부와 무관한 사용 보고
  - 텔레메트리
  - 충돌 보고
  - 기능에 필수적이지 않은 소프트웨어 제작자 또는 제3자 대상 요청
- 사용자는 로컬 소프트웨어만 원한다는 의사를 `export DO_NOT_TRACK=1`로 설정할 수 있음
- 셸 설정 파일에 추가하면 모든 터미널 세션에 적용 가능함
  - Bash: `~/.bashrc`에 `export DO_NOT_TRACK=1`
  - Zsh: `~/.zshrc`에 `export DO_NOT_TRACK=1`
  - Fish: `~/.config/fish/config.fish`에 `set -x DO_NOT_TRACK 1`
  - PowerShell: `$PROFILE`에 `$env:DO_NOT_TRACK = "1"`
  - Windows CMD: 시스템 환경 변수에 `setx DO_NOT_TRACK 1`

### 소프트웨어 제작자와 관련 표준
- 텔레메트리, 분석, 기능에 필수적이지 않은 네트워크 요청을 수행하는 도구는 **`DO_NOT_TRACK`** 변수를 확인해야 함
- `DO_NOT_TRACK`가 `1`로 설정되어 있으면 모든 추적을 비활성화해야 함
- 기존 비활성화 방식과 함께 이 변수를 존중해야 함
- 텔레메트리를 기본 활성화 후 거부하는 방식보다 **옵트인** 방식으로 만드는 것도 고려 대상임
- [no-color.org](https://no-color.org/) — `NO_COLOR`, 색상 출력 비활성화를 위한 표준
- [force-color.org](https://force-color.org/) — `FORCE_COLOR`, 색상 출력 강제를 위한 표준

## Comments



### Comment 56751

- Author: neo
- Created: 2026-05-03T19:36:17+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47988592) 
- 이쯤 되니 기본값으로 **추적에 동의한 상태**가 되어도 아무도 놀라지 않는다는 게 흥미로움  
  `DO_NOT_TRACK` 같은 플래그는 좋아 보이지만, 동시에 기본값이 `CONSENT_TO_TRACK=1`이라는 뜻처럼 느껴져서 소름 끼침
  - 언제 추적하지 말라는 건데? 이 플래그는 내 브라우저가 **남의 서버**에 접속할 때 보내는 것임  
    인터넷이 커진 건 광고와 서버가 사용자에게서 파생 정보를 뽑아내는 사업 모델이 주류였기 때문임  
    즐겁지도, 사적이지도, 안전하지도 않지만 대부분의 관할권과 산업에서는 불법도 아님  
    이 플래그는 동화 같은 이상향이 아니라, 사실상·법적으로 굳어진 현실에 대한 대응임
  - 이런 플래그 자체가 문제가 있다고 봄  
    어떤 정보도 내보내고 싶지 않고 당연히 추적도 원하지 않는데, 이걸 **환경 변수** 하나로 표시한다는 것부터 말이 안 됨  
    추적당하고 싶지 않다면서 그런 정보를 주는 걸 좋아하는 사람들을 이해하기 어렵고, 그 정보를 주는 순간 이미 표시된 셈임

- 변수 이름은 항상 긍정형으로 두는 편이라, 이 경우라면 `ALLOW_TRACKING=0`이 됨  
  일관성이 생기고 **이중 부정**을 피할 수 있어 추론하기 쉬워짐  
  다만 “DO NOT TRACK”이라는 이름은 어느 정도 자리 잡은 용어일 수 있음
  - `ALLOW_TRACKING`을 쉼표로 구분한 목록으로 구현해서, 허용할 애플리케이션만 지정할 수도 있음  
    예를 들어 `go`와 `brew`에는 원격 측정을 공유하고 싶지만 `aws`와 나머지는 싫다면 `ALLOW_TRACKING=go,brew`처럼 둘 수 있음

- 브라우저의 `DNT`와 같은 운명을 맞을 가능성이 큼  
  다만 모든 “추적 금지” 환경 변수를 하나의 `do_not_track.env` 파일로 모으는 건 나쁘지 않아 보임
  - [https://toptout.me](<https://toptout.me>)가 이미 있고, 새로 만들 생각이 아니라면 이런 문제를 꽤 많이 처리해 줌  
    이 페이지의 명세를 지키면서 단순한 환경 변수 하나로 처리하고 싶다면 [https://github.com/alloydwhitlock/do-not-track-cli](<https://github.com/alloydwhitlock/do-not-track-cli>)도 있음
  - 광고업계는 Microsoft가 `DNT`를 기본으로 켠 것이 사용자의 선택권을 빼앗았다고 주장하며 무시했음  
    실제로는 어차피 지킬 생각이 없었을 가능성이 큼
  - 이 방향이 마음에 듦  
    보편적인 하나를 쓰라고 요구하는 것보다, 실제 해결책은 이런 방식일 가능성이 큼  
    시작점으로 뭔가 만들어볼 생각임

- 참고로 **Go 원격 측정**은 기본적으로 로컬에만 저장되고 업로드되지 않음: [https://go.dev/doc/telemetry](<https://go.dev/doc/telemetry>)

- Python `transformers` 라이브러리가 Hugging Face에 연락하지 못하게 막는 게 생각보다 어려워서 놀랐음  
  `HF_HUB_DISABLE_TELEMETRY=1`을 설정하고 `Wav2Vec2CTCTokenizer.from_pretrained`를 호출할 때 `local_files_only=True`도 명시했지만, 여전히 유효한 `HF_TOKEN`이 없다는 경고가 떴음  
  `HF_HUB_OFFLINE=1`을 우연히 찾고 나서야 디스크에서 `wav2vec2` 모델을 불러올 때마다 HF로 나가는 연결을 하지 않는다고 어느 정도 확신하게 됨  
  그 짜증 나는 `HF_TOKEN` 경고가 아니었다면 이런 일이 벌어지는지도 몰랐을 것임
  - HF는 **오프라인 작업**을 어렵게 만드는 것으로 악명 높음  
    필요한 것이 전부 로컬에 있어도 접속을 시도하느라 시간을 낭비하지 않게 하는 것조차 계속 처리 방식이 바뀜  
    예전에는 `TRANSFORMERS_OFFLINE`, `HF_DATASETS_OFFLINE` 같은 것도 있었음
  - Little Snitch 같은 도구가 이런 걸 잡아서 **숨은 통신**을 하는 대상을 찾는 데 도움이 될까?

- 유용한 **허니팟**처럼 보임  
  이 명세 지원을 공개적으로 알리는 도구라면, 애초에 명시적 동의 없이 원격 측정을 수집한다는 뜻이니 피해야 할 도구로 볼 수 있음
  - `DO_NOT_TRACK` 지원이 곧 추적이 명시적 동의 방식이 아니라는 뜻은 아님  
    예를 들어 소프트웨어가 충돌하고, 충돌 처리기가 덤프를 보낼지 묻는 경우가 있음  
    `DO_NOT_TRACK`이 있으면 충돌 처리기 자체가 비활성화되어 질문도, 덤프도 없음  
    어느 정도 채택된다면 아마 그런 식으로 동작할 가능성이 큼  
    광고처럼 추적으로 금전적 이익을 얻는 쪽은 이런 옵션을 지원하지 않을 것임
  - 대부분의 서비스는 이미 **원격 측정**을 수집하고 있고, 지원한다고 발표한다고 해서 그 사실이 바뀌지는 않음
  - 너무 깊게 들여다보지 않는 게 좋음  
    그러면 현대적인 도구를 많이 못 쓰게 될 것임

- 회사들이 이 제안을 아주 느리게 구현하길 기다리는 동안, 흔한 도구들의 **수신 거부 방법**을 한곳에 모아둔 곳이 있을까?  
  아예 그것들을 설정하고 목록을 정기적으로 업데이트하는 셸 모듈 같은 것도 가능해 보임

- 직접 **DNS**를 운영하고 문제 되는 도메인을 차단 목록에 넣는 편이 아마 더 쉬움  
  원격 측정 도메인이 수백만 개 들어 있는 좋은 차단 목록도 있음. 예: [https://github.com/hagezi/dns-blocklists](<https://github.com/hagezi/dns-blocklists>)
  - 더 나아가 그런 **스파이웨어 쓰레기**를 컴퓨터에 들이지 않는 게 낫다
  - 이게 올바른 처리 방식임  
    “표준”을 외치는 사람들은 그저 비공식 대안의 긴 목록에 하나를 더 보태는 것뿐임

- 브라우저의 전역 추적 금지는 대상이 방문하는 모든 웹사이트와 광고 목적의 추적이라서 대체로 작동함  
  하지만 **원격 측정**은 완전히 다른 문제라서 기본 차단은 하나의 선택지가 될 수 있어도, 모든 도구에 대해 의도를 표현하는 표준 변수 하나를 쓰는 건 현실적으로 어렵다

- 몇 년 전에도 같은 제안이 있었지만 아무 데도 가지 못했음  
  [https://web.archive.org/web/20200613155957/https://consoledo...](<https://web.archive.org/web/20200613155957/https://consoledonottrack.com/>)
