파이썬 장고(djnago)를 이용하여 웹개발을 하기 위해서는 테스트 환경에서 기능 혹은 페이지가 잘 작동하는 지 확인할 필요가 있습니다. 일반적으로 웹이 24시간 구동되고, 외부에서 도메인을 통해 웹서버에 접속하기 위해서는 아파치(Apache)와 같은 HTTP Server를 필요로 합니다. 당연하지만, 장고를 통해 준비된 웹앱을 테스트하기 위해서도 웹서버가 필요합니다.
장고에는 기본적으로 개발 서버를 지원하고 있어 크게 어렵지 않게 테스트를 진행할 수 있는데요. 장고의 개발 서버를 작동하기 위해서는 다음 명령어를 실행하면 됩니다.
## 파이썬 djnago 개발 서버 실행방법.
ⓐ 조건 : 장고 프로젝트의 root 폴더에서 다음 명령어 실행(manage.py 파일이 있는 경로)
ⓑ 명령어 : python manage.py runserver
기본적인 개발 서버는 위 명령어를 통해 실행할 수 있습니다. 개발 서버를 마련했다면 접속도 해봐야겠죠. 아래의 두 가지 방법으로 장고 개발 서버에 접속할 수 있습니다.
① localhost:8000
② 127.0.0.1:8000
웹브라우저의 url을 입력하는 부분에 위의 두 가지 방법 중 하나를 선택하여 입력합니다. URLconf, views.py, index()에 대한 부분을 조작하지 않았다면 장고에서 준비한 메인 페이지를 보이게 됩니다. 메인 페이지의 모습은 다음과 같습니다.
장고 개발 서버에 ip 주소를 이용해 접속하는 방법은 127.0.0.1:8000으로 진행되는데요. 앞에 127.0.0.1은 ip 주소 입니다. 뒤에는 포트(port) 번호를 지정하고 있습니다. 본격적으로 개발 서버를 다른 ip 다른 포트 번호로 변경하는 방법을 알아봅니다.
1️⃣ 단순히 포트(port)만 변경하는 방법
파이썬 장고 개발 서버를 실행하는 명령어에서 포트만 변경하는 것이 가능합니다. 기본적으로 8000포트를 이용하게 되는데요. 다른 포트를 이용하는 방법도 있습니다.
# 파이썬 장고 포트 변경 방법
ⓐ 기본 명령어 : python manage.py runserver
ⓑ 포트 변경 명령어 : python manage.py runserver 포트번호(변경하고싶은 것)
> ex : python manage.py runserver 8888
위 코드에서 보여지는 것과 같이 장고 개발서버의 포트를 변경하는 명령어는 간단합니다. 기본 명령어에서 사용하려는 포트번호를 붙여주면 됩니다.
위 사진과 같이 포트가 변경된 것으로 나타나게 됩니다. http://127.0.0.1:8888/ 로 설정되며, 해당 주소를 이용해 장고 개발 서버에 접속할 수 있습니다.
위 사진과 같이 잘 변경되어 접속되는 것을 확인할 수 있습니다.
2️⃣ ip 주소와 포트 번호 변경 방법
1️⃣번에서 살펴본 내용은 단순히 포트번호만 변경한 것을 의미합니다. 이제는 접속하는 ip 주소와 포트 번호를 모두 변경하는 방법에 대해서 알아봅니다. 기본으로 설정된 ip 주소를 변경하기 위해서는 외부에서 접속할 수 있도록 settings.py의 설정을 변경해야 합니다. root 폴더에 있는 settings.py의 내용을 확인합니다.
위 사진과 같이 ALLOWED_HOSTS = [] 라고 되어 있는 부분의 설정을 변경해야 합니다. 아래 내용을 참고하시면 도움이 될 수 있습니다.
ALLOWED_HOSTS = [] ▶ ALLOWED_HOSTS = ["*"]
위 사진과 같이 변경한 후, 저장하도록 합니다. 다음으로 개발 서버를 새롭게 실행합니다. 이제는 원하는 ip주소와 포트 번호를 입력하도록 합니다. 아래 코드를 참고해 주세요.
# 파이썬 장고 개발 서버 ip 주소 및 포트 번호 변경 명령어
ⓐ 명령어 : python manage.py runserver ip주소:포트번호
> ex : python manage.py runserver 127.127.127.127:8888
이렇게 127.127.127.127:8888 로 변경 적용이 잘 된 것을 확인할 수 있습니다. 이제 접속해보도록 합니다.
위 사진과 같이 변경된 ip주소와 포트번호로 장고 개발 서버에 잘 접속된 것을 확인할 수 있습니다. 다만 꼭 필요한 경우가 아니라면 사용하지 않는 것이 좋습니다. 보안을 위해서 말이죠.