macOS 26 업데이트, 개발 환경 DNS 설정 망가뜨려
macOS 26 업데이트 후, `/etc/resolver/`를 이용한 커스텀 DNS 설정이 작동하지 않는 문제 발생
특히 `.internal`, `.test` 등 비표준 TLD(Top-Level Domain)를 사용하는 로컬 개발 환경에 치명적
dnsmasq를 포함한 다양한 로컬 DNS 서버 사용자들이 문제 겪고 있으며, /etc/hosts 수동 설정만이 유일한 임시 해결책
Docker 컨테이너 DNS 및 Kubernetes 환경에도 영향, 개발 생산성 저하 우려
macOS 26 DNS 문제의 기술적 원인
macOS 26에서 mDNSResponder가 `/etc/resolver/` 설정을 무시하고, 비표준 TLD(Top-Level Domain)에 대한 쿼리를 mDNS로 처리하는 것이 문제의 핵심이다. 기술적으로 보면, mDNSResponder는 유니캐스트 네임서버(Unicast Nameserver)를 참조하지 않고, 캐시된 'No Such Record' 응답을 반환한다. 이는 개발자들이 로컬 개발 환경에서 사용하는 DNS 리졸버(DNS Resolver) 설정을 무력화시킨다.
영향받는 개발 환경 및 도구
이번 macOS 업데이트는 Docker 컨테이너 DNS 설정, Kubernetes 기반 로컬 개발 환경, 그리고 Vagrant와 같은 도구들을 사용하는 개발자들에게 광범위한 문제를 야기한다. 특히, `.test`와 같은 특수 용도 도메인(Special-Use Domain)을 사용하는 경우, RFC 6761에 명시된 표준 동작(일반 DNS 메커니즘을 통한 해결)을 macOS가 따르지 않아 문제가 발생한다. 이는 개발 생산성에 심각한 영향을 미친다.
임시 해결책 및 근본적인 문제
현재로서는 `/etc/hosts` 파일에 수동으로 엔트리를 추가하는 것이 유일한 임시 해결책이다. 하지만, 이는 동적 환경(Dynamic Environment)에서는 비효율적이며, sudo 권한(sudo privileges)을 필요로 한다. 근본적인 문제는 macOS가 DNS 설정 메커니즘(DNS Configuration Mechanism)을 변경하면서, 기존의 표준을 준수하지 않는다는 점이다. 이는 Apple의 개발자 커뮤니티(Developer Community)에 대한 배려 부족으로 이어진다.
커뮤니티 반응 및 향후 전망
커뮤니티에서는 macOS의 잦은 변경과 호환성 문제에 대한 불만이 제기되고 있다. 일부 개발자들은 macOS를 떠나 Linux 기반 환경으로 전환하는 것을 고려하고 있다. 또한, Apple이 이 문제를 해결하기 위해 얼마나 빠르게 대응할지에 대한 우려가 높다. GitHub를 통해 버그 리포트가 공유되고 있지만, Apple의 공식적인 입장은 아직 발표되지 않았다.