작은 앱을 만들면서 Antigravity 와 Claude Code의
디버깅 방식을 통해 얻은 작은 교훈을 공유합니다.

[앱이름] 미니 전광판
[앱 동작원리]
- ESP8266에 웹서버 실행
- 로컬 장비로 웹서버에 접속해 텍스트 입력
- ESP8266의 액정에 텍스트 표시
[문제점]
- 서버는 정상 실행되었는데
- 192.168.0.111 접속 불가
[문제 해결 과정]
1) Antigravity
“코드가 문제일 것이다” → 코드만 계속 수정
- Flash Erase 및 Clean Build
- ESP8266WebServer → WiFiServer 엔진 교체
- 포트 변경 (80 → 8080)
- I2C 속도 개선, 루프 최적화
- AP 모드 검증
결과: 코드에는 아무 문제가 없었음. 5번 시도 모두 실패
2) Claude Code
“문제 지점을 먼저 좁히자” → 단계적 격리(isolation)
- curl http://192.168.0.111/ 실행 → 200 OK → 서버 정상 확인
- 서버 문제 아님 → 브라우저 문제로 범위 축소
- Safari 테스트 → 됨 → Chrome 문제로 범위 축소
- Chrome 시크릿 모드 → 됨 → Chrome 설정 문제로 범위 축소
- 보안 DNS 끄기 → 해결
결과: 코드 수정 없이 해결. curl 한 번으로 방향이 갈렸음.

[원인]
Chrome의 보안 DNS (Secure DNS / DNS over HTTPS)
로컬 네트워크 IP(192.168.0.111)에 대한 접속을 차단
외부 DNS 서버를 통해 해석 시도
로컬 IP를 찾지 못함 ERR_ADDRESS_UNREACHABLE 발생
[해결 방법]
1) 구글 크롬 [보안 DNS 사용] 옵션 끄기
2) 사파리 브라우저 이용
[참고: 로컬 IP 접속 방법 차이]
1) Chrome:
자체 DNS 해석기를 사용 → 보안 DNS가 켜져 있으면
외부 DNS 서버(예: Google, Cloudflare)에 192.168.0.111을 질의
→ 로컬 IP라 해석 불가 → ERR_ADDRESS_UNREACHABLE
2) Safari: macOS 시스템 DNS를 그대로 사용
→ 공유기의 로컬 DNS가 처리 → 정상 접속
3) curl: 마찬가지로 시스템 DNS 사용 → 정상 접속
