Django?
- Django는 파이썬을 기반으로 하는 웹 프레임워크.
- 비교적 입문이 쉬운 언어인 파이썬으로 제작되어 진입장벽이 그렇게 높은 편이 아니고 특유의 높은 생산성으로 특히 스타트업에서 사랑받는 프레임워크.
- 장고로 제작된 대표적인 사이트는 인스타그램, 핀터레스트 등이 있음!
🦀 장고의 특징
1. MTV 패턴을 사용한다.
🦀 장고의 장점
1. 파이썬을 기반으로 한 만큼 진입장벽이 낮은 편이다.
2. 생산성이 높고 개발 비용을 꽤 절감시킬 수 있다.
3. URL디자인이 매우 편리하다.(정규표현식 사용 가능, 함수와 URL을 1:1 매칭 가능)
4. 파이썬 기반의 머신러닝, 데이터 분석 라이브러리와 융합하여 사용하기 편하다.
5. 출시된지 오랜 시간이 흘렀고, Instagram처럼 성공적으로 도입된 사례가 많은 만큼 안정성과 기능이 충분히 검증되었다.
6. 커뮤니티 활동이 활발하고, 관련 문서(자료)가 많다.
🦀 장고의 단점
1. 파이썬을 기반으로 한 만큼 파이썬의 단점이 전부 포함된다.
2. 다른 웹 프레임워크에 비해 비교적 속도가 느리다.
3. 숙련되기 위해선 장고 자체에 대한 이해도 뿐만 아니라 파이썬에 대해서도 높은 이해도를 요구한다.
4. 관련 문서도 많고 커뮤니티 활동도 활발한데 대부분 한글화가 안되어있다.
Django ORM(Object-Relation Mapping)?
- 사전적 정의: 객체(Object)와 관계형 데이터베이스(Relational)을 연결(Mapping)해 주는 것을 의미.
- 간단하게 설명하면: Django의 ORM은 파이썬과 데이터베이스의 SQL 사이의 통역사 역할을 해쥼. SQL 쿼리문 없이도 데이터베이스의 데이터들을 다룰 수 있게되는데, Model Class를 통해서 객체를 만들고 이 객체를 통해서 DB에 접근하는 형식이다.
🦀 ORM의 장점
1. 불필요하게 많이 적지 않아도 되서 빠르게 개발이 가능하고 생산성이 좋아진다.
2. 사소한것들을 자동으로 처리해줘서 개발자가 신경쓰지 않게 도와준다.
3. 선언문, 할당, 종료같은 부수적인 코드가 줄어들고, 객체에 대한 코드를 별도로 작성하다보니 가독성이 좋아진다.
4. 유지보수도 편리하고 코드의 재사용성이 높아진다.
🦀 ORM의 단점
1. 해당 프로그래밍 언어를 사용하지만 ORM 라이브러리는 따로 배워야한다.
2. 규모가 큰 프로젝트나 복잡한 프로젝트는 sql로 작성하는게 훨씬 좋을 수 있다.
3. orm이 반드시 효율적인 sql로 변환해 주는건 아니다.
Django VS FLASK?
- Flask는 아주 미니멀리스틱함. 웹사이트나 어플리케이션을 만들 수 있는데 아주 미니멀하게 만들어짐. 아주 짧은 시간 내에 뭔가 만들어 낼 수 있음. 즉, 작고 빠르고 가볍다는 것이 특징!
- 반면, Django는 무거움. 거대한 프레임워크이고 그에 걸맞게 많은 유틸리티가 만들어져 있음. Flask를 쓴다면 DB도 직접 관리해야하고 사용자 인증도 직접. 그외에도 패스워드 바꾸기, 본인확인 이메일, 로그인, 로그아웃을 직접 해야함. 그치만 Django는 그런 부분을 이미 처리하고 있음. 대표적으로 사용자 인증, 컨텐츠 관리 기능, 관리자 패널 등을 지원함. 보안 기능도 이미 만들어져 있어서 빠르고 커스터마이징도 쉬움.
🐣 Django ORM을 슈률률루루ㅜ룰 다룰 수 있는 그날 까지............🐣