백엔드 : 서버공부/Django

장고를 사용하는 이유

문코더 2023. 7. 29. 12:57
728x90

이번에는 Web Server를 사용하는것과 Web Application Server를 만들어서 사용하는 것의 차이에대해 공부해보겠습니다.

 

                             Web Server                                                                            Web Application Server

apache, nginx, IIS django, flask, php, jsp, ROL

차이점

STATIC

  • Web Server를 사용할때는 1html, 2html과 같은 페이지를 미리 만들어 두어야합니다.
  • Web Server에 ****사용자가 접속시에 미리준비되어 있는 페이지로 접속을 하게 됩니다.
  • 준비되어있는 것을 사용하므로 성능이 빠릅니다.

DYNAMIC

  • Web Application Server를 사용할 때는 웹페이지를 생성하는 공장이라고 할 수 있는 view.py와 같은 프로그램을 하나만 만들어 두면 됩니다.
  • Web Application Server를 사용자가 접속할때 해당 주소에해당하는 데이터를 데이터베이스에서 가지고와서, 그 순간에 html코드를 만들어 응답하게 됩니다.
  • Web Server에 비해 ****굉장히 느립니다.
  • 유지보수하기에 용이합니다.
  • 개인화된 정보를 만들어줄 수 있습니다.

동적인 특성을 보여줄만한 예시를 살펴보겠습니다.

기존의 views.py를 수정해서 사용자가 접속할때 마다 랜덤한 정보를 보여주는 Web Application을 만들어보도록 하겠습니다.

from django.shortcuts import render, HttpResponse

# Create your views here.
def index(request):
    return HttpResponse('Welcome!')

def create(request):
    return HttpResponse('Create')

def read(request, id):
    return HttpResponse('Read!'+id)

위 코드은 기존의 views.py의 코드입니다.

아래와같이 수정해줍니다.

from django.shortcuts import render, HttpResponse
import random

# Create your views here.
def index(request):
    return HttpResponse('<h1>Random</h1>'+str(random.random()))

def create(request):
    return HttpResponse('Create')

def read(request, id):
    return HttpResponse('Read!'+id)

수정을한 후 http://127.0.0.1:8000/myapp/ 에 접속을해봅니다.

 

이렇게 접속을 할때마다 랜덤한 숫자가 나타나게 되는 것을 확인할 수 있습니다.

페이지에 오른쪽 마우스를 클릭해 소스코드를 보게되면 접속때마다 만들어지는 코드를 확인할 수 있습니다.

이것은 정적인 Web Server는 할 수 없는일입니다.