관리 메뉴

Storage Gonie

Django (2) 프레임워크 장고 본문

웹개발/인스타 클론 (1) Django

Django (2) 프레임워크 장고

Storage Gonie 2019. 4. 17. 21:55
반응형

Django 란?

# Django는 무엇인가

- Python으로 구현된 프레임워크

프레임워크와 라이브러리의 차이점

https://www.programcreek.com/2011/09/what-is-the-difference-between-a-java-library-and-a-framework/

 

# 라이브러리

- 개발자가 작성한 코드를 단순히 재사용할 수 있는 것을 의미한다.

- 클래스 및 메소드는 일반적으로 도메인의 특정 영역에서 특정 조작을 정의한다. (예 : 수학 라이브러리)

 

# 프레임워크

- 모든 제어 흐름이 정해져 있으며, 내가 채워넣어야 하는 미리 정의된 부분들이 존재한다.

- 나의 코드는 프레임워크에 의해 호출될 것이다.

- 일반적으로 라이브러리보다 복잡하다.

- 개발자가 디자인이 좋은지 아닌지에 대해 걱정할 필요가 없게 되며,
   도메인에 대한 특정 함수를 구현하는 것에 집중할 수 있도록 해준다.

 

Django 를 선택한 이유

https://www.djangoproject.com/start/overview/

 

# Django의 장점

- 설정을 빨리 할 수 있고 User, Model, URL, 템플릿 등 갖고 있는 것이 많아서 2시간 안에 준비를 끝낼 수 있다.

- 일반적인 웹 개발 작업을 처리하는 데 사용할 수 있는 수십 개의 추가 기능이 미리 포함되어 있다.
   (User Authentication, Content Administration, Site Maps, RSS feeds 등) 

- 개발자가 보안적인 실수를 하지 않도록 방지해준다.
   (SQL Injection, Cross-site scripting, Cross-site request forgery, Clickjaking 등)

- 트래픽 요구를 충족시키기 위한 캐싱 기능의 제공으로 신속하고 유연하게 확장할 수 있는 기능을 제공한다.
  (어느 레벨에나 하드웨어를 추가할 수 있도록하는 shared-nothing 구조를 사용하여,
   데이터베이스 서버, 캐싱 서버, 웹/어플리케이션 서버 레벨에서 각각 하드웨어를 추가할 수 있다.)

  (캐시 프레임워크를 제공함 : https://docs.djangoproject.com/en/2.2/topics/cache/)  

- 유명한 회사에서 사용중이므로 많은 개발자 그룹들이 지원을 하고 있다. (Instagram, Pinterest, Spotify, NASA 등)

계속 업그레이드 되고 있다.

- Django로 구축된 사이트들이 초당 5만개가 넘는 트래픽을 처리하였으므로 안정적이라고 할 수 있다.

 

# 편리성을 제공해주는 Django의 세부구성 요소

- ORM 이라는 것을 가지고 있어서 데이터베이스와 대화하기 편리하다.

- Admin Panel을 디폴트로 갖고 있어서 이를 따로 안만들어줘도 됨.

- User Authentication을 자동으로 해준다. 이는 비밀번호 암호화/복호화/체크하는 기능을 갖는 다는 뜻이다.

- URL Dispatcher 도 갖고 있다.

- Template Engine 이 있다.

- 이외에도 더 있음.

 

# Django와 Nodejs의 차이점

@ Django

- Django는 많은게 이미 포함되어 있으므로 필요없는 것은 버리고 필요한 부분만 남겨놓고 작업해야함.

- CRUD를 많이 하게되는 서비스를 하게되는 경우 사용
- ex) 블로그, 인스타그램, 유튜브

 

@ Nodejs

- Nodejs는 디폴트 기능이 하나도 없어서 처음부터 다 만들어야 한다. 

- 리얼타임 서비스가 주를 이루는 경우 사용

- API를 사용해야 하는데 그게 자바스크립트 기반일 경우 사용

- ex) 우버, 넷플릭스

 

 

반응형
Comments