Django

Django란?

티베트 모래여우 2020. 10. 9. 19:52
반응형

Django란?

Django는 파이썬으로 제작된 오픈소스 *웹 프레임워크입니다.

비교적 입문이 쉬운 언어인 파이썬으로 제작되어 진입장벽이 그렇게 높은 편이 아니고(물론 파이썬 언어에 대한 이해도가 어느 정도 있어야 합니다.)특유의 높은 생산성으로 특히 스타트업에서 사랑받는 프레임워크입니다.

장고로 제작된 대표적인 사이트는 인스타그램, 핀터레스트 등이 있습니다.

*웹 프레임워크에 대한 개념을 잘 모르신다면 이전 게시글을 참조해주세요.

 

프레임워크(framework)의 개념

Framework(프레임워크)는 어떤 어플리케이션을 개발하기 위해 필요한 기본적인 클래스와 라이브러리등이 모두 포함되어있는 환경을 의미합니다. 쉽게 생각하자면, FrameWork라는 명칭에서 볼 수 있��

tibetsandfox.tistory.com

 

D는 묵음입니다. '장고'라고 발음합니다.


장고의 특징

1. MTV 패턴을 사용한다

- MVC 디자인 패턴과 이름만 다르고 사실상 동일하다고 생각하시면 됩니다.

Model은 동일하지만 장고에서는 View를 Template으로, Controller는 View라고 표현합니다.

Model은 DB에 저장되는 데이터

Template은 유저에게 보여지는 UI

View는 데이터를 처리하고 Template에 데이터를 전달하는 역할을 한다고 보시면 됩니다.

2. 강력한 ORM기능을 지원한다.

- ORM(Object Relational Mapping, 객체 관계 매핑)은 객체와 관계형 DB를 연결해주는 개념을 의미합니다.

쉽게 설명하자면, 생성한 클래스(객체)를 SQL문으로 자동 변환하여 데이터를 다루는 것입니다.

이 기능 덕분에 SQL문을 사용하지 않고도 DB데이터를 관리할 수 있습니다. 직접 SQL 쿼리를 작성하지 않아도 파이썬 코드로 DB를 조작 가능함을 의미하며 이는 개발자가 애플리케이션의 로직 작성에 집중할 수 있도록 도움을 줍니다.

3. 자체적인 템플릿을 지원한다.

- Django Template을 지원하며, 템플릿 태그를 사용해 HTML 템플릿에 context로 전송된 데이터를 사용할 수 있습니다. 이는 동적인 페이지를 구현하는데 도움을 줍니다.

4. 소스코드의 변경 사항을 자동으로 반영한다.

- 장고는 자동으로 .py파일의 변동을 감시합니다. 변경이 감지될 경우 변경 내역을 자동으로 반영해줍니다.

따라서 코드를 변경할 때 마다 수동으로 웹 서버를 재시작 할 필요가 없습니다.

 


Flask와의 비교

같은 파이썬 웹 프레임워크인 flask와의 차이점은 무엇일까요?

Flask는 Micro Framework를 철학으로 만들어진 프레임워크입니다.

웹 개발을 위한 최소한의 기능만 지원합니다. 높은 자유도를 지원하기 때문에 프레임워크의 틀에 얽매이지 않고 본인이 원하는 방향으로 개발이 가능하다는 장점이 있습니다.

반대로 장고는 웹 개발을 위한 거의 모든 기능을 지원합니다.

이는 높은 생산성과 안정성을 보장하지만 프레임워크가 제시하는 틀에서 벗어날 수 없다는 단점이 있습니다.

쉽게 설명하자면 flask는 레고, 장고는 프라모델이라고 생각하시면 됩니다.

그래도 저는 장고가 좋습니다.


장고의 장, 단점

끝으로 장고의 장점과 단점에 대해 간략하게 알아보고 글을 마치겠습니다.

장점

1. 파이썬을 기반으로 한 만큼 진입장벽이 낮은 편이다.

2. 생산성이 높고 개발 비용을 꽤 절감시킬 수 있다.

3. URL디자인이 매우 편리하다.(정규표현식 사용 가능, 함수와 URL을 1:1 매칭 가능)

4. 파이썬 기반의 머신러닝, 데이터 분석 라이브러리와 융합하여 사용하기 편하다.

5. 출시된지 오랜 시간이 흘렀고, Instagram처럼 성공적으로 도입된 사례가 많은 만큼 안정성과 기능이 충분히 검증되었다.

6. 커뮤니티 활동이 활발하고, 관련 문서(자료)가 많다.

단점

1. 파이썬을 기반으로 한 만큼 파이썬의 단점이 전부 포함된다.

2. 다른 웹 프레임워크에 비해 비교적 속도가 느리다.

3. 숙련되기 위해선 장고 자체에 대한 이해도 뿐만 아니라 파이썬에 대해서도 높은 이해도를 요구한다.

4. 관련 문서도 많고 커뮤니티 활동도 활발한데.. 대부분 한글화가 안되어있다..

반응형