정보처리기사 필기 공부하다가 새롭게 알게 된 내용이 있어서 이 글을 작성하게 되었다!
하드웨어 환경은 클라이언트와 서버로 나눌 수 있다.
클라이언트에는 PC, 스마트폰 등이 있으며 서버는 사용 목적에 따라 웹 서버, 웹 어플리케이션 서버, 데이터베이스 서버, 파일 서버 등으로 나뉜다.
: 클라이언트로부터 직접 요청을 받아 처리하는 서버로, 저용량의 정적 파일 등을 제공한다.
: 사용자에게 동적 서비스를 제공하기 위해 웹 서버로부터 요청을 받아 데이터 가공 작업을 수행하거나, 웹 서버와 데이터베이스 서버 또는 웹 서버와 파일 서버 사이에서 인터페이스 역할을 수행하는 서버이다.
장고는 장고만의 웹서버를 사용한다. 개발 목적으로 python으로 짜여진 가벼운 wsgi(web server gateway interface)를 사용한다. 정확하게 얘기하면 장고 자체는 웹 프레임워크이고 runserver 명령어를 통해 웹 서버와 웹 애플리케이션 서버 역할을 하는 것이다. 하지만 프로덕션 과정에서는 사용하지 않는 것을 추천한다. runserver를 사용한 실행은 개발용 서버를 실행하는데 적합한 것이지 실제 서비스를 운영하는 데에는 부적합하다. 따라서 실제 서비스에서는 웹서버를 이용하는 것이다.
DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through security audits or performance tests. (We’re in the business of making Web frameworks, not Web servers, so improving this server to be able to handle a production environment is outside the scope of Django.)
우리 프로젝트에서는 Django 외에 웹 어플리케이션 서버나 웹서버를 따로 사용하지 않았다. 프로젝트를 마무리할 때까지, 처음 개발을 시작했을 때부터 Google Cloud Platform에 배포한 후에도 manage 명령어를 통해 서버를 실행하였다. 프로젝트를 진행할 때에도 WAS와 웹서버의 차이점이 뭔지 헷갈렸지만, 당장 해야할 일이 너무 많아 그 외의 것들에 대해 공부하고 이해하기는 힘들었다. 이렇게 프로젝트가 끝난 뒤에라도 정리할 수 있어서 다행이다!