Django

내위키
Dennis (토론 | 기여)님의 2021년 12월 17일 (금) 22:22 판

파이썬 기반의 웹 프레임워크. 장고재단(Django Foundation)이 관리하고 있다. 파이썬으로 웹 기반 서비스를 만들 때 Flask와 함께 가장 많이 쓰이고 있다. REST API 서비스를 개발할 때에는 FastAPI가 이게 파이썬 기반 맞나 할 정도로 빠른 속도를 무기로 뜨고 있으나 아직은 Django REST 프레임워크가 많이 쓰이는 편이다.

가장 큰 특징이라면 'batteries included'[1]라는 말로 상징되는, 풀 스택 프레임워크라는 점이다. 즉 외부 모듈 없이도 Django가 제공하는 기능만으로도 일반적인 웹 서비스를 제공하는 데 문제가 없다는 뜻이다. 이는 경쟁자로 가장 많이 손꼽히는 Flask와는 대척점에 있다고 할 수 있는데, Flask는 경량 웹 프레임워크를 추구하고 있어서 기본적인 기능만 내장하고 필요한 다른 기능들은 외부 모듈을 붙여서 쓰도록 하는 반면, 풀 스택 프레임워크인 Django는 MVC 패턴을 기반으로 자체 템플릿 엔진, ORM, 심지어 고수준의 관리자 페이지까지도 몽땅 자체 지원한다. 따라서 웬만한 웹 사이트는 정말로 외부 모듈 필요 없이 Django만으로 관리자 기능까지 구축할 수 있다. ORM의 완성도가 높아서 이것만 따로 떼어서 쓸 정도이기도 하다.[2]

단점이라면 아무래도 덩치가 크다는 것. 파이썬 자체가 인터프리트 언어로 속도 문제가 자주 시빗거리가 되는지라 여기에 덩치까지 무거운 Django의 성능은 종종 논란거라가 된다. 하지만 엔터프라이즈급 웹 사이트 중에도 Django로 잘만 굴러가는 사이트가 부지기수다. 가장 규모가 큰 서비스라면 인스타그램. 단, ORM을 비롯한 여러 부분을 마개조한 것으로 알려져 있다.


각주

  1. 말 그대로 해석하면 '배터리 탑재'인데, 원래는 파이썬의 모토로, 웬만한 일은 다 할 수 있을 정도로 광범위한 모듈을 제공한다는 뜻으로 풀이한다. 즉 뭔가를 할 수 있는 도구만 주는 게 아니라 실제 그 도구를 써먹는 데 필요한 파워를 외부에서 끌어올 필요 없이 자체 내장하고 있다는 뜻으로 볼 수 있을 듯.
  2. Flask에는 SQL-Alchemy 같은 ORM 모듈을 붙여 쓰기도 하지만 Django ORM을 붙여서 쓰기도 할 정도다.