□ 마감시간이 있는 완벽주의자를 위한 웹프레임워크
□ 바퀴를 다시발명하지마라
○ 초기 학습비용은 있지만 매번 새롭게 바퀴를 재발명 안함
○ 장고라는 바퀴를 잘굴려 빠르고 정확하게 동작하는 에플리케이션 개발
○ 백엔드 개발에 필요한 거의 모든 기능을 장고중심으로 제공
□ 시간은 가장 큰비용으로!! 장고를 누리고 시간을 아껴라
○ 고유한 개념 및 데이터는 한곳에, 하나만 조재
○ 중복 X, 정규화 OK
○ 장고를 통해 중복없는 고유한 개념/데이터로 최대한의 기능을 만듬
□ 신속한 개발 추구
○ 느슨한 결합 탄탄한 응집
○ 프레임워크의 각 계층은 필요하기전에는 서로 결합이 없어야함, Best Practice 제안구현은 있지만 강제는 아님
□ 적은코드 / 반복하지 않음
○ 중복줄이고 정규화 지향
○ 명시적인 묵시적인것보다 낫다.
○ 정당한 이유 없이 마법이 일어나면 안됌 을 추구함
□ MTV(Model-Template-View)
○ Model
- 데이터베이스에 저장되는 데이터 의미
- 모델은 클래스로 정의되며 하나의 클래스가 하나의 DB Table 의미
- DB 작업 CRUD 진행시 SQL(Structured Query Language)를 알고 사용하지만, 장고는 DB CRUD 작업이 가능하도록 ORM을 제공함
* ORM(Object-Relational Mapping) : 객체(Object)와 관계형 데이터 베이스(Relational Databace)의 데이터를 매핑(하나의 값을 다른 값으로 대응) 해주는 것을 의미함. 객체를 기반으로 움직이기 때문에 객체 간의 관계를 바탕으로 SQL을 자동 생성하여 sql쿼리문 없이도 데이터베이스의 데이터를 다룰 수 있음.
○ View
- Spring MVC 패턴의 컨트롤러에 대응함
- 사용자 요청에 따라 적절한 로직을 수행하여 결과를 템플릿으로 렌더링하며 응답
- 데이터를 가공하는 처리를 해야한다 싶으면 뷰에서 함수를 작성하면됨
- 뷰는 웹 요청을 받고, 전달받은 데이터들을 해당 어플리케이션의 로직으로 가공하여, 그 결과를 템플릿에 보냄
- 항상 템플릿을 렌더링 하는 것은 아니고 백엔드에서 데이터만 주고 받는 경우
- URLconF
→ URL 패턴을 정의하여 해당 URL과 뷰를 매핑하는 단계 ▶ URL설계
→ Path 함수를 이용해 URL을 뷰와 손쉽게 매핑시킬 수 있음
→ 클라이언트로부터 요청을 받으면 장고는 가장 먼저 요청에 들어있는 URL을 분석함
→ 즉, 요청에 들어있는 URL이 urls.py 파일에 정의된 URL패턴과 매칭되는지를 분석 함
→ 장고 1.x 버전에서 정규표현식을 사용하였지만 2.x 버전부터는 path()함수를 사용하기에 이 과정이 쉬워짐
○ Template
- 템플릿은 사용자에게 보여지는 부분
- 뷰에서 로직을 처리한 후 html 파일을 context와 함께 렌더링하는데 이 때의 html 파일을 템플릿이라 칭함
- MVC 패턴의 뷰에 대응되며 유저에게 보여지는 화면을 의미
- 장고 템플릿 시스템 문법에 맞게 python문법을 활용하여 작성하면 되므로, 다른 작업들과 화면 디자인 작업을 분리하여 확장성을 극대화 시킬 수 있음
- 장고는 자체적인 Django Template 문법을 지원하며 이 문법 덕분에 html 파일 내에서 context로 받은 데이터를 활용
'Python > Django Ⅰ' 카테고리의 다른 글
SQLite 를 활용한 DB 조회 (0) | 2024.04.15 |
---|---|
서브페이지 URLPATTERNS (0) | 2024.04.15 |
Models 생성 (0) | 2024.04.13 |
Django 주요개념 : 정리 (0) | 2024.04.11 |
가상환경 설치 & 장고 설치+삭제 & 서버구동 + superuser 생성 (0) | 2024.04.08 |