우선 보통 django 개발시 궁금했던 점을 체크하자
기본 적인 설명으로
Django는 파이썬에서 제공하는 웹프레임워크입니다.
Django에는 코드를 자체적으로 테스트하기 위한 간단한 웹서버를 가지고 있고, 이를 실행하는 명령어는 runserver입니다.
이번 장에서는 필요한 사전지식 위주로 설명하고자 한다.
web framework?
웹프레임워크(web framework, WF) 또는 웹 애플리케이션 프레임워크(web application framework, WAF)라 부르며
동적인 웹 페이지, 웹 애플리케이션, 웹 서비스 개발 보조용으로 만들어지는 애플리케이션 프레임워크의 일종이다.
웹 페이지를 개발하는 과정에서 겪는 어려움을 줄이는 것이 주 목적으로
데이터베이스 연동, 템플릿 형태의 표준, 세션 관리, 코드 재사용 기능을 포함하고 있다.
쉽게말해 밀키트 처럼 주어진 재료만 사용하면 완성되도록 구조화 시켜놓은 느낌으로 볼 수 있다.
소프트웨어를 개발 시 목적에 따라 효율적으로 구조를 짜놓은 개발방식이다.
django는 이러한 웹프레임워크의 한 종류이고, '파이썬'언어를 기반으로한 웹 프레임워크이다.
따라서, 파이썬에서 가능한 모든 동작을 할 수 있고, 효율적인 라이브러리를 가지고 있다.
'파이썬' 언어를 사용하기 때문에 생기는 단점 또한 존재한다.
파이썬은 코드 실행이 한줄한줄 실행되는 인터프리터 언어이다. 그러다보니 자연스럽게 속도가 늦어지는 단점을 가지고있다.
또 이미 만들어진 라이브러리를 사용하는 경우가 많아, 원하는대로 커스텀하기 힘들다.
그럼에도 django를 사용하는 이유는 빠른 개발과 활용성이 매우 높기 때문이다.
Web Server ?
Apache, Nginx 를 들어봤을 것이다.
이러한 소프트웨어가 바로 웹서버이다.
웹서버의 주된 기능은 웹 페이지를 클라이언트로 전달하는것이다.
주로 이미지, css, 자바스크립트를 포함한 HTML문서가 클라이언트로 전달된다.
즉 정적(image, css, js)인 정보를 반환하는 역할을 한다.
WAS (Web Application Server)?
동적 컨텐츠를 제공하기 위해 만들어진 애플리케이션 서버이다 (DB조회, 로직처리가 요구되는 컨텐츠)
web server 와 web application server(was)의 차이점
web server는 클라이언트에게 정적인 컨텐츠를 제공 즉 html, css, javascript를 제공하고
was는 웹서버와 컨테이너가 합친 개념으로, 웹 서버에서 단독으로 처리할 수 없는, 데이터베이스에서 로직 처리가 필요한 동적 컨텐츠를 제공 함과 동시에 정적인 데이터도 제공한다.
즉 요청이 오면
1. 정적컨텐츠 내가 제공할게 -> html, png 등 응답
2. 정적컨텐츠가 아니구나, 웹서버에서 간단히 처리가 어렵다 -> WAS를 통해 처리를 해야겠다 -> WAS 가 처리해준 컨텐츠를 받은 웹서버는 응답
** 그렇다면 웹서버 말고 정적,동적 데이터를 제공해주는 was만 사용하면 되는 것이 아닌가?
was만 사용해도 되지만 was의 역할은 db 조회 및 기타 로직을 처리하는일을 진행하기 때문에
정적인 컨텐츠를 웹 서버에 맡기고 기능을 분리시켜 두는 것이 서버 부하를 방지하고 효율성을 높일 수 있게 된다.
** 분산을 위해 웹 서버를 사용하고 그 예시중에 nginx, apache를 사용하는 것이
물론 분산을 제공하기도 하지만 둘 다 다양한 기능을 제공한다.
아래의 글을 통해 다음단계로 진행해보자
2022.06.23 - [coding 📟/django 📱] - [DJANGO] django 배포 nginx 와 uwsgi를 사용하는 이유 -2
'coding 📟 > django 📱' 카테고리의 다른 글
[DJANGO] django 배포 nginx 와 uwsgi를 사용하는 이유 -2 (0) | 2022.06.23 |
---|
댓글