Django 기본 개념 정리 - django가 백엔드지 뭐긴뭐야_(2-3)

EBAB!·2023년 7월 3일
0

Django 시작하기

목록 보기
5/10
post-thumbnail

좀 전에 우리는 간단하게 웹 통신과정을 통해 여러 기술들을 살폈습니다.

이 기술 각각에 대해선 나중에 더 자세히 서술해보겠습니다.

WAS (Web Application Server)

결국 django의 역할은 무엇이였을까요?

라는 질문의 답은 WAS, Web Application Server입니다.

django도 결국 요청을 받아 처리하여 응답하니까 서버라고 합니다. 앞의 nginx는 웹 서버라 하고 차이가 있습니다.

제일 큰 차이는 기능 차이입니다.
WAS는 동적 컨텐츠 처리를 담당합니다.

만약 요청이 내용밖에 없는 HTML 문서를 요청한다면 django에서 처리할 필요도 없을겁니다. 그냥 문서 하나정도 주는 건(가지고 있는 정적 파일을 주는 정도는) 웹 서버에서도 충분히 할 수 있기 때문입니다.

하지만 내가 이때까지 구매한 올해의 물품내역 중 10만원 이상인 것들을 요청한다면..?
데이터베이스에게 사용자가 요청한 기준에 맞춰 데이터를 불러오고 응답해야 합니다. 요청을 최대한 받으면서 이런 것까지 시켜버리면 한 쪽 성능이 떨어지는 순간이 오게 될 것입니다.

그래서 데이터베이스와 소통하고 요청에 따라 동적으로 처리해야 하는 부분을 맡아주는 WAS(django), 요청을 전문적으로 처리해주는 Web Server(Nginx)가 분리되어 있습니다.

Nginx

사실 nginx 등장배경을 간단하게만 봐도 왜 WAS와 분리되는지 알 수 있습니다.
이전에는 Apache 서버가 대세였는데 얘는 요청이 너무 몰려서 처리하는데 문제가 생기게 되었습니다.

C10K (Current 10 thousand clients) 문제
Apache 서버에서 1만개의 클라이언트를 동시에 처리하지 못했기에 등장한 단어.
이를 해결하고자 nginx가 등장했고 이 때는 Apache의 보조 역할이였다.

많은 요청을 효율적으로 처리하고자 만들어진 녀석인데 요청을 처리하는 능력을 낮추면서 동적 처리를 시키는 것이 어불성설이죠.

django 위치 파악 완료

지금 게시글은 django에 앞선 요약이기 때문에 더 자세한 내용은 nginx를 적용하는 단계에서 정리해 보겠습니다.

지금은 django가 웹 개발에 있어 어느 위치에 있는지 파악하고 그 주변에 대해 대강 이해되었다면 충분하다 생각합니다!

profile
공부!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN