Django & Django ORM????

On a regular basis·2021년 8월 4일
0
post-thumbnail

Django?

  • Django는 파이썬을 기반으로 하는 웹 프레임워크.
  • 비교적 입문이 쉬운 언어인 파이썬으로 제작되어 진입장벽이 그렇게 높은 편이 아니고 특유의 높은 생산성으로 특히 스타트업에서 사랑받는 프레임워크.
  • 장고로 제작된 대표적인 사이트는 인스타그램, 핀터레스트 등이 있음!

🦀 장고의 특징
1. MTV 패턴을 사용한다.

  • MVC 디자인 패턴과 이름만 다르고 사실상 동일하다고 생각하면됨.
    Model은 동일하지만 장고에서는 View를 Template으로, Controller는 View라고 표현. Model은 DB에 저장되는 데이터, Template은 유저에게 보여지는 UI, View는 데이터를 처리하고 Template에 데이터를 전달하는 역할을 한다고 보시면 됨.
  1. 강력한 ORM기능을 지원한다.
  • ORM(Object Relational Mapping, 객체 관계 매핑)은 객체와 관계형 DB를 연결해주는 개념을 의미함. 쉽게 설명하자면, 생성한 클래스(객체)를 SQL문으로 자동 변환하여 데이터를 다루는 것. 이 기능 덕분에 SQL문을 사용하지 않고도 DB데이터를 관리할 수 있음. 직접 SQL 쿼리를 작성하지 않아도 파이썬 코드로 DB를 조작 가능함을 의미하며 이는 개발자가 애플리케이션의 로직 작성에 집중할 수 있도록 도움을 줌.
  1. 자체적인 템플릿을 지원한다.
  • Django Template을 지원하며, 템플릿 태그를 사용해 HTML 템플릿에 context로 전송된 데이터를 사용할 수 있음. 이는 동적인 페이지를 구현하는데 도움을 줌.
  1. 소스코드의 변경 사항을 자동으로 반영한다.
  • 장고는 자동으로 .py파일의 변동을 감시함. 변경이 감지될 경우 변경 내역을 자동으로 반영함. 따라서 코드를 변경할 때 마다 수동으로 웹 서버를 재시작 할 필요가 없음.

🦀 장고의 장점
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을 슈률률루루ㅜ룰 다룰 수 있는 그날 까지............🐣

profile
개발 기록

0개의 댓글