개발
파이썬의 단짝, 장고(Django)에 대해 5분 안에 빠르게 알아보자.
6분
2021.01.08.6.2K
"장고(Django), 5분 안에 알아보기"
장고(Django), 누구냐 넌!

장고(Django)만의 장점 알아보기

최소기능제품(MVP) 제작을 위해 곧바로 사용 가능
장고는 개발 프로세스의 속도를 높여줌으로써 개발자들을 도와줍니다. 여기에는 데이터베이스의 액세스, 세션, 라우팅(routing), 다국어 지원 등을 다루는 자체적인 객체관계매핑(Object Relation Mapping, ORM) 계층이 포함되어 있습니다. 또한 요청을 처리하는 동안에는 보안을 관리합니다. 여기에는 모델을 관리하기 위한 ‘장고 관리자(Djang-admin)’라고 부르는 관리자 패널이 기본으로 포함되어 있습니다. 보안
장고에는 사이트 간 요청 위조(Cross-site request forgery, CSRF) 및 SQL 인젝션(SQL Injections)과 같은 형태의 공격을 방지하는 기능이 포함되어 있습니다. 기술적으로 보다 자세한 내용은 장고의 보안 관련 공식 가이드에서 찾아보실 수 있습니다. 내부의 파이썬
앞에서 언급했듯이 ‘파이썬의 선’이라는 규칙을 따르고 있기 때문에, 장고에서는 모든 것이 명시적(explicit)입니다. ‘파이썬의 선’에서는 암시적(implicit)인 것보다는 언제나 명시적인 것이 났다고 선언하고 있습니다. 즉, 장고에서는 사용자가 먼저 환경설정을 해야 한다는 것입니다. 이는 환경설정에 대한 기존의 통념과는 반대되는 것입니다. 그렇기 때문에 장고는 파이썬의 사용에 익숙한 개발자들에게는 완벽한 프레임워크입니다. 장고는 외부 라이브러리에 대한 뛰어난 지원과 프로그래머의 생산성을 향상시키는 것과 같은 파이썬의 모든 장점을 계승하고 있습니다. 덕분에 개발 속도를 상당히 끌어올릴 수 있죠.
장고(Django)의 단점은?

속도
파이썬 자체는 속도가 빠른 언어가 아니기 때문에 아키텍처를 잘못 설계하면 웹사이트의 속도가 느려질 수 있습니다. 그렇기 때문에 앱이 최적화되어서 만들어졌는지를 늘 확인해야 합니다. 이 점과 관련해서 장고는 내부의 속도를 확인하고 모든 장애물을 찾아낼 수 있는 자체적인 벤치마크 도구를 제공하고 있는데요. 캐싱(caching)을 비롯해서 수많은 최적화 도구들도 적용할 수 있습니다. 시작하는 단계에서부터 제대로 최적화를 하고 확장 가능한 아키텍처를 만든다면, 나중에 속도와 관련해서 나타날 수도 있는 수많은 문제들을 미리 방지할 수 있습니다. 장고는 현재 엄청나게 많은 웹 애플리케이션들에게 힘을 실어주고 있습니다. 속도와 관련한 이슈가 발생한다면 장고 자체의 문제라기보다는, 적절하지 못한 환경설정과 아키텍처 설계의 문제인 경우가 많습니다. 관습의 결핍
‘설정보다는 관습이 우선(Convention Over Configuration)’이라는 접근법의 대표적인 사례인 루비 온 레일즈(Ruby on Rails) 프레임워크와 비교하자면, 장고에서는 모든 것을 명시적으로 규정해야 합니다. 그래서 환경설정과 관련한 문서를 별도로 만들어야 하며, 이는 개발 프로세스의 속도를 늦출 수도 있습니다. 반면에 관습적인 환경설정에 의존하는 것은 파이썬의 상태계에서는 아주 흔한 방식입니다. 장고가 언제나 최선의 선택은 아닐 수도 있다
일을 할 때는 언제나 최고의 도구를 선택해야 합니다. 한 페이지 분량의 정적인 페이지나 마이크로서비스(microservice)처럼 아주 규모가 작은 사이트에서는 장고가 최선의 선택이 아닐 수도 있습니다. 그런 경우에는 오히려 플라스크(Flask)를 사용하는 것이 좋을 수도 있습니다. 장고는 표준화된 웹 애플리케이션을 정말로 빠르게 출시하기 위해서 만들어졌습니다. 즉, 장고는 간단한 CRUD 앱은 물론이고 보다 정교한 웹 애플리케이션을 만드는데 필요한 구성요소들이 결합되어 있습니다. 정말로 간단한 서비스를 만드는 경우라면, 모든 “배터리”들이 포함되어 있는 장고는 지나치게 복잡해 보일 수도 있습니다.> 이 글은 'Django Framework Review - Pros and Cons'를 각색하여 작성되었습니다.
로그인하고 자유롭게 의견을 남겨주세요.