장고에서 코드를 작성하고 결과를 학원하면 꼭 하는 작업 중 하나가 runserver를 이용해서 서버를 실행하는 것이다.
django-admin runserver
python manage.py runserver
그렇게 서버를 실행하고 나면 웹 브라우저를 통해서 만든 장고프로젝트에 접속할 수 있다.
이 과정에서 웹 브라우저로 접속했을 때 우리가 만든 장고 프로젝트를 보여주는 역할을 하는 것을 서버라고 한다.
이렇게 runserver로 실행한 서버를 개발서버(Development Server)라고 한다.
그 이유는 보안과 관련된 사항이나 성능을 보장하지 않는 확인용 서버이기 때문이다. 그래서 실제 배포 시에는 개발서버에서는 없던 오류들이 발생할 수 있다.
숨어있는 IP와 Port
django-admin runserver {ip:port}
python manage.py runserver {ip:port}
우리가 로컬에서 개발할 때 Terminal 또는 WSL에서 python manage.py runserver라는 명령어를 통해 개발 서버를 실행해서 사용하지만 사실은 runserver 뒤에 IP와 Port 라는 인자가 숨어 있다.
우리가 따로 적어 주지 않으면 기본적으로 127.0.0.1이라는 IP주소와 8000번 포트를 사용해서 서버가 실행되며,
여기서 127.0.0.1은 지금 내 컴퓨터를 가리키는 주소라고 생각하면 된다.
그러니까 내 컴퓨터를 서버로 사용해서 Django 프로젝트를 실행한다는 뜻. 그리고 당연히 다른 IP 주소와 포트를 지정할 수도 있다.
IP와 Port에 대해 간단히 알아보면 아이피 주소(IP Address)는 Internet Protocol의 앞 글자를 딴 것으로 네트워크 상에서 다른 컴퓨터와 내 컴퓨터를 구별하는 일종의 주소이다.
그리고 포트(Port)는 IP로 찾은 컴퓨터 내부에서 실행되고 있는 프로그램이나 서비스를 구분하는 값인데,
IP로 컴퓨터를 찾고 그 안에서 포트를 가지고 프로그램을 찾는 것이다.
우리가 매번 실행하는 개발 서버를 예로 들면 python manage.py runserver로 실행한 개발 서버는 127.0.0.1의 IP 주소,
즉 내 컴퓨터에서 8000번 포트로 Django 서비스를 실행한 뒤 유저의 접속을 기다린다.
그러면 우리는 웹 브라우저를 켜서 해당 주소값과 포트를 이용해 우리 개발 서버의 Django 프로젝트로 들어가게 되는 거다.
이러한 과정에서 웹 브라우저와 같이 서버에 무언가를 요청하는 부분을 클라이언트라고 하고 지금과 같이 클라이언트와 서버가 있는 구조를 클라이언트-서버 구조라고 한다.
'Python > Django' 카테고리의 다른 글
[Django] render( )함수 (0) | 2023.01.29 |
---|---|
[Django] URL Routing (0) | 2023.01.29 |
[Django] 장고의 철학 Reusable App (8) | 2023.01.28 |
[Django] Django 앱(App) 구조 (0) | 2023.01.28 |
[Django] 프로젝트(project) 구조 (0) | 2023.01.28 |
댓글