안드로이드 에뮬레이터에서 로컬 Spring Boot 서버로 REST API 요청하기

유진·2025년 11월 26일

Android

목록 보기
16/17
post-thumbnail

안드로이드 스튜디오의 에뮬레이터에서 로컬에서 실행 중인 Spring Boot 서버로 REST API 요청을 보낼려고 한다. 하지만 안드로이드 스튜디오 에뮬레이터에서 localhost 또는 127.0.0.1 로 요청을 보내면 실패한다. 이유와 해결 방법을 정리한다.


1. 안드로이드 에뮬레이터에서 localhost가 동작하지 않는 이유

에뮬레이터에서 다음 주소로 요청하면:

http://localhost:9000
http://127.0.0.1:9000

에뮬레이터 내부에서는 이것을 본인(에뮬레이터 디바이스 자체) 로 해석한다.
Mac 또는 개발 PC의 Spring Boot 서버가 아닌, 디바이스 내부를 바라본다는 뜻이다.

따라서 아래와 같은 오류가 발생한다.

Failed to connect to localhost/127.0.0.1:9000

에뮬레이터는 개발 PC를 직접 인식하지 못하기 때문에 다른 접근 방식이 필요하다.


2. 에뮬레이터에서 PC의 로컬 서버에 접근하는 공식 주소

에뮬레이터가 개발 PC의 localhost로 접속하기 위해 제공되는 특별 주소가 있다.

10.0.2.2

Android Emulator에서 이 주소는 개발 PC의 localhost를 의미한다.
따라서 Retrofit 또는 OkHttp의 baseUrl을 다음과 같이 변경해야 한다.

http://10.0.2.2:9000/

포트 번호는 개발 PC에서 Spring Boot가 실행 중인 포트를 그대로 사용하면 된다.


3. Retrofit 설정 예시

Retrofit.Builder()
    .baseUrl("http://10.0.2.2:9000/")
    .addConverterFactory(GsonConverterFactory.create())
    .build()

이렇게 수정하면 에뮬레이터에서 로컬 서버로 정상적으로 API 요청이 전송된다.

4. 정리

안드로이드 에뮬레이터의 localhost는 PC가 아닌 에뮬레이터 자신의 주소이므로 동작하지 않는다.
반드시 10.0.2.2 를 사용해야 한다.

profile
안드로이드... 좋아하세요?

0개의 댓글