Django란?
이번 포스팅에서는 Django
가 무엇인지에 대해서 간략히 소개해본다.
Django
는 2005년부터 서비스 되고 있는 python
언어기반 오픈 소스 웹 프레임워크다.
주로 backend
프레임워크로 알려져있지만 frontend
부분도 통합하여 Fullstack
프레임워크로도 개발할 수 있다.
python
언어로 웹 서비스를 개발한다고 한다면, Django
or Flask
라고 보면 된다.
Flask
는 Django
에 비해 경량화 된 웹 프레임워크라고 보면 된다.
Django의 특징
Django
는 MVT (Model - View - Template) 패턴을 채용하고 있다.
Model
의 경우 데이터베이스와 연동이 편하게 되어 있으며, 각 테이블을 객체
화 하여 Django
의 서버 로직 (View
) 레벨에서 OOP
개념으로 프로그래밍 할 수 있다. 이를 ORM
(Object-relational mapping) 이라 한다.
즉, 일일히 DB
레벨에서 CRUD
처리를 위해 query
를 작성할 필요가 없다. ORM
에 의해 객체의 멤버 메소드로 정의되어 있다. (e.g. create(), delete() ..)
Django
는 기본적으로 모든 Model
데이터를 관리할 수 있는 관리자
전용 폐이지를 제공한다.
Django
프로젝트 내에서 관리하는 모든 테이블과 각각의 CRUD
처리를 관리자 페이지에서 웹 UI 기반으로 실행할 수 있다.
물론, 관리자
가 존재해야 하므로, superuser
는 생성해야 한다.
Django
는 웹 프레임워크를 개발함에 있어서 누구라도 개발하기 고민되는 부분을 이미 기본적으로 제공해주고 있다. CRUD API
는 물론, 기본 회원 인증, 데이터 직렬화, 데이터 검증, 화면에 뿌려주는 Template
도 기본으로 제공해 준다.
Django
는 python
언어 기반이기 때문에, 커뮤니티와 생태계 자체가 방대하다. 즉, Django
에 없는 기능이 필요할 지라도, 조금만 조사해보면 커스텀된 Django
전용 라이브러리가 많이 공개되어 있다.
Thank you!