카테고리 없음

ngrok 사용법(안드로이드 스튜디오 외부장치 연결 문제)

sorecord 2025. 3. 15. 16:06

안드로이드 스튜디오와 장고 서버를 REST로 연결을 하는 과정에서 가상 에뮬레이터가 아닌 외부장치를 연결을 해서 사용하는데 문제가 발생했다.


문제를 해결하기 위해 사용한 방법

 

1. 파이썬의 setting.py에 ALLOWED_HOSTS = 를 ['*'] 이렇게 모든 사용자를 받아들일 수 있게 설정을 해두었다.(개발할때만 사용)

 

2. 장고 서버를 실행을 할때는 로컬이 아닌  python manage.py runserver 0.0.0.0:8000를 실행했다.

 

3. cmd 에서 ipconfig명령어를 통해 찾은 ip주소를 이용도 했었다.

 

4. 서버에서 값을 가져오는데 지연시간이 발생할 수 있다고 해서 https://standuplee.tistory.com/12 해당 사이트틀 참고하여 수정도 했다.

 

5. cleartext문제가 발생하길래 res/xml 경로에 

//network_security_config.xml파일
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">10.0.0.2</domain>
    </domain-config>
</network-security-config>

//manifest.xml에 추가
android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="true"

위와 같은 파일을 만들어주고 manifest파일에 위에 코드도 추가해줬다.

 

6. 포트 문제인가 싶어서 윈도우 방화벽을 설정하는 것도 다해봤다. 


그래도 계속 문제가 발생(java.net.SocketTimeoutException)해서 다른 방법을 찾다가 ngrok을 사용하는 방법을 찾아봤다. 

 

사용법은 생각보다 간단했다. 

 

1. ngrok이라고 구글에 검색해서 파일을 다운로드 한다. 

 

2. ngrok.exe라는 파일을 실행을 시키고

ngrok config <토큰>

을 입력을 해준다. 

 

3. 그리고 아래 코드로 실행을 해준다.

ngrok http 8000

8000은 포트 번호를 말한다. 

 

이제 장고 서버와 연동을 하는 방법은 간단하다. 

//서버를 실행 보통 8000을 포트로 하여 실행된다.
python manage.py runserver 

//그리고 ngork을 실행
ngrok http 포트 번호

 

 

위와 같은 순서로 진행하고 안드로이드 스튜디오의 base_url을 해당 url주소로 변경하니 문제없이 잘 실행되었다. 


https://woojin.tistory.com/21

 

[DJango, ngrok] ngrok로 1분만에 서버 배포하고 api 테스트하기

사실 엄밀히 말하면 서버 배포는 아니고, (미안하다.. 이 글 보여주려고 어그로 끌었다..) ngrok를 사용하면, 나의 로컬 서버에 다른 사람이 방화벽을 뚫고 접근할 수 있다. 서버 배포 전, postman 등

woojin.tistory.com

https://velog.io/@bm1201/Ngrok-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95

 

Ngrok 설치 및 사용법

Ngrok 설치 및 사용법

velog.io

https://2pandi.tistory.com/7

 

ngrok 백그라운드 실행하기(터미널 종료해도 세션 유지) - linux

서버에서 ngrok을 실행하고 터미널을 종료하면 세션도 같이 종료되어 호스팅이 끊어진다. 이를 해결하기 위해 linux 및 Mac OS에 기본으로 설치되는 nohup을 이용할 수 있다. 1. yml 생성하기 우선 yml 파

2pandi.tistory.com