Mobile 환경 QA를 하다 보면 한 번쯤 꼭 부딪히는 문제가 있습니다.
바로 “모바일에서 staging 환경을 어떻게 자연스럽게 테스트할 것인가?” 입니다.
PC 환경에서는 비교적 간단합니다.
/etc/hosts 파일만 수정하면 특정 도메인을 원하는 IP로 매핑해서, staging 서버로 트래픽을 보낼 수 있기 때문입니다.
하지만 모바일 환경은 이야기가 다릅니다.
결국, “진짜 사용자 환경과 동일한 QA”를 하기가 쉽지 않습니다.
이 문제를 해결하기 위해 접근한 방식은 단순합니다.
모바일에서 hosts 수정은 어렵지만, Wi-Fi에 연결된 DNS 서버는 변경할 수 있습니다.
여기서 등장하는 게 바로 dnsmasq 입니다.
구성은 생각보다 단순합니다.
이렇게 되면?
test.example.com → (DNS) → staging IP
🎯 목적
이 구조의 핵심 목적은 명확합니다.
모바일 테스트 환경에서도 실제 서비스 도메인을 그대로 사용
요청은 staging 서버로 전달
테스트 단말은 Wi-Fi 연결만으로 자동 세팅 완료
👉 즉,
“아무 설정 없이 QA 가능한 환경”을 만드는 것
이 방식의 장점은 꽤 강력합니다.
✅ 1. QA 준비 시간 단축
매번 IP 입력하거나 별도 설정할 필요 없음
Wi-Fi 연결만 하면 바로 테스트 가능
✅ 2. 실제 환경과 동일한 테스트
도메인을 그대로 사용
쿠키 / 인증 / 세션 / 리디렉션 정상 동작
✅ 3. 테스트 일관성 확보
QA 인원마다 환경 차이 없음
에뮬레이터나 IP 직접 입력 방식은 결국 한계가 있습니다.
하지만 DNS 기반으로 진행하면 가장 현실에 가까운 QA 환경을 만들 수 있어 간단하게 구축하는 방법을 소개하고자 합니다.

앞서 이야기 한 것처럼 생각보다 구축은 간단합니다.
테스트 DNS 서버에 dnsmasq 패키지를 설치한 후, QA 환경에 맞게 config 파일을 수정해주면 됩니다.
apt update
apt update dnsmasq
대부분 리눅스에서 systemd-resolved는 기본으로 떠있고,
127.0.0.53:53 ← systemd-resolved (stub resolver)
이미 systemd-resolver가 53번 포트 점유하고 있어 dnsmasq로 Resolver를 변경합니다.
vi /etc/systemd/resolved.conf
## resolved.conf
#Cache=no-negative
#CacheFromLocalhost=no
DNSStubListener=no
#DNSStubListenerExtra=
rm /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved
systemctl restart dnsmasq
netstat -nltp

vi /etc/dnsmasq.conf
## dnsmasq.conf
interface=ens3 # 각 서버 네트워크 인터페이스에 맞게 조정
bind-interfaces
log-queries
log-facility=/var/log/dnsmasq.log
local-service
# 상위 DNS 서버 지정 (dnsmasq가 모르는 도메인은 여기로 물어봄)
server=1.1.1.1
server=8.8.8.8
# 로컬 도메인 우선 참조
domain-needed
bogus-priv
vi /etc/resolv.conf
nameserver 127.0.0.1
#nameserver 1.1.1.1 # 기존 nameserver 주석처리
search openstacklocal
systemctl restart dnsmasq.service
systemctl status dnsmasq.service

host 설정

host 설정 후 dnsmasq 재시작
systemctl restart dnsmasq.service





tail -f /var/log/dnsmasq.log

모바일 환경에서는 단순한 설정 하나도 제약이 많지만,
DNS를 활용하면 오히려 더 유연하고 강력한 테스트 환경을 구성할 수 있습니다.
이번 구성을 통해 Wi-Fi 연결만으로 staging 환경을 자연스럽게 검증할 수 있는 QA 환경을 만들 수 있었고, 실제 사용자와 동일한 조건에서 테스트할 수 있다는 점에서 큰 의미가 있었습니다.