개인 프로젝트/Django로 Airbn* 클론 코딩하기

Django란 무엇인가?

Jinomad 2020. 8. 27. 14:30

Contents

  1. Django란?

  2. 프레임워크(FrameWork)

  3. DJANGO vs FLASK vs REACT


 

Django란?

 

  Django는 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크입니다. 

 

 

 

프레임워크(FrameWork) 

  Django는 프레임워크입니다. 그 외에도 많은 프레임워크가 있습니다. 

 

대표적인 프레임워크는 다음과 같습니다. 

 

  • Spring : Java의 웹 프레임워크 
  • DjangoPython의 웹 프레임워크
  • Flask: Python의 마이크로 웹 프레임워크
  • Ruby on RailsRuby의 웹 프레임워크
  • Node.js의 Express.js 프레임워크
  • 웹 프론트엔드의 SPA용 프레임워크 (AngularJS, Angular, Vue.js 등) 

그렇다면 프레임워크란 무엇일까요? 

 

그것을 설명하기 전에 간단하게 프레임워크가 탄생하게된 배경을 설명드리겠습니다.

오래전 어떤 웹 개발자들이 새로운 웹 사이트를 개발할 때마다 서로 비슷한 문제들에 직면한다는 것을 깨닫고, 그것을 간단하게 해결할 수 있는 프레임워크를 개발하게 된겁니다. 

 

작업장을 예로 들 수 있겠네요. 가구를 만들려면 목재, 톱, 못, 망치 등등 여러 가지 도구가 필요합니다. 프레임워크를 사용하지 않는 상태는 이러한 도구가 없는 상태라고 볼 수 있습니다. 그렇다면 가구를 만들기 위해서 먼저 톱, 톱, 망치 등등을 만들어야 됩니다. 굉장히 불편하죠. 하지만 프레임워크가 있다면, 가구를 만들기 위해 필요한 도구들이 가득한 작업장을 얻는 것과 같습니다. 필요한 도구(기능)를 바로바로 가져와서 사용할 수 있는 겁니다. 

 

 

 

DJANGO vs FLASK vs REACT 

  Django는 Python의 대표적인 웹 프레임워크 중 하나입니다. 물론 Django 외에도 Flask, Pyramid, react 등을 쓸 수 있습니다. 그렇다면 Django를 사용했을 때의 이점과 다른 프레임워크 간의 차이점을 알아보겠습니다. 

 

일단 Flask, Pyramid는 아주 미니멀리스틱합니다. 웹사이트나 애플리케이션을 만들 수 있는데 아주 미니멀리스틱하게 만들어집니다. 그렇다고 Flask나 Pyramid가 나쁘다는 것은 아닙니다. 대신 아주 짧은 시간에 뭔가 만들어낼 수 있거든요. 즉, 작고 빠르고 가볍다는 것이 특징입니다. 

 

반면 Django는 전혀 미니멀리스틱하지 않습니다. 거대한 프레임워크이고 그에 걸맞게 많은 유틸리티가 만들어져 있죠. 

Flask 같은 것을 쓴다면 데이터베이스도 직접 관리해야 하고, 사용자 인증도 직접해야합니다. 그 외에도 패스워드 바꾸기, 본인확인 이메일, 로그인, 로그아웃 등을 직접 만들어야합니다. 하지만 Django는 그런 부분들을 이미 처리하고 있습니다. 대표적으로 사용자 인증, 컨텐츠 관리 기능, 관리자 패널 등을 지원하죠. 보안 관련 기능들도 이미 만들어져 있고, 빠르고 커스터마이징도 쉬워요. 

 

결국 Django를 쓰는 이유는 Airbn*을 클론코딩을 하는데 Django가 더 적합하기 때문입니다. 물론 Flask로도 클론코딩을 할 수 있겠지만 더 많은 시간이 걸린다는 점이죠. 

 

* Flask가 나쁘다는 것은 아니고, 대개 마이크로 서비스를 만들 때 사용할 수 있으며, 때에 따라 Flask를 쓰는 것이 더 나을 수도 있습니다. 

 

React 대신 Django 탬플릿을 쓰는 이유는 이 강의가 Django 강의이기 때문...