티스토리 뷰

_서버 구성

크게 아래와 같은 순서로 요청을 처리한다.

  1. http/https Request가 들어오면

  2. 웹 서버가 해당 Request를 받고

  3. WSGI미들웨어를 통해 파이썬 어플리케이션으로 Request 전달

  4. 파이썬 어플리케이션이 Request를 받아 처리 후, WSGI 미들웨어 - 웹서버를 통해 Response 리턴

 

1) 웹프레임워크

웹프레임워크는 하나의 어플리케이션입니다.

  • Java 기반 : Spring (전자정부 표준프레임워크)

  • JavaScript 기반 : Node.js 

  • Python : Django(Full-stack), Flask(Micro)

  • Ruby : Ruby on Rails

 

2) 웹서버

여러 사용자들이 동시에 사이트에 접근할 경우, 이것을 처리하는 역할을 웹서버가 합니다.

  • Apache : 연결이 늘어나면 프로세스를 포크하는 방식

  • Nginx : Thread를 늘리는 방식이라 최근에 많이 사용됨

 

3) WSGI (Web Server Gateway Interface) 미들웨어

파이썬에서 웹 서버와 어플리케이션인 Django, Flask 등을 통신할 수 있게 하는 역할입니다.

ex) tornado, twisted, uwsgi 등

  • tornado : Single Thread 기반이기에, scaling에 취약

 

_Flask란

Python 기반의 웹 프레임워크로 Flask외에도 유명한 Django(장고)가 있습니다.

Django와 Flask의 차이점은 크게

Flask는 덜 도와주지만 그만큼 자유도가 높고, (사용하고 싶은 것들만 import하여 customizing에 용이한 편)

Django는 더 도와주지만 상대적으로 제한된 점이 있습니다.

 

참고 : http://flask.pocoo.org/

 

댓글
  • 프로필사진 라디 우아 간단 명료하게 딱딱 들어오네요!!! 감사합니다 2020.06.19 13:00
  • 프로필사진 지나가던 안녕하세요. 우연히 검색하다가 해당 게시글을 접하게 되었는데, 웹서버에 Apache와 Nginx 설명이 틀린 것 같은데, 확인 바랍니다. 2021.04.20 14:34
댓글쓰기 폼