장고의 캐치프레이즈
마감을 맞추고 싶은 완벽주의자를 위하여
장고는 2005년 부터 시작된 파이썬 오픈소스 웹 프레임워크/풀 스택 프레임 워크로, 처음에는 뉴스 피드를 관리하기 위한 컨텐츠 관리 시스템으로부터 발전하였다.
장고의 장점
- fully loaded. 웹개발에 필요한 다양한 도구들을 대부분 내장하고 있다. - 인증, 컨텐츠 관리, 사이트 맵, RSS 피드, 메일 보내기, form 등등
- Admin(backoffice) - 재고변경, 계정복구/탈퇴, 통계 등을 위한 관리자 사이트가 이미 만들어져 있고 관련 API도 만들기 좋다.
- 많은 기능을 보유한 풀스택 프레임워크
- 강력한 ORM, 많은 사용자/커뮤니티
- 빠른 개발과 손쉬운 보안
MVT 패턴
JS의 MVC패턴과 유사하지만 이름이 다르다.
- Models: 데이터 정의 (재료)
- Views: 요청 처리 (주방)
- Templates: 사용자에게 보여짐. 템플릿엔진을 통해 파이썬 문법 사용가능 (dish)
스프링/MVC에서의 View는 화면(MVT의 template)를 이야기하고, Controller는 MVT의 view를 이야기 하는 것이라고 생각하면 이해하기 좋다.
MVT의 동작 흐름
- 사용자(브라우저)가 url로 요청을 보낸다.
- url.py는 경로를 확인해 적절한 view를 결정해 요청을 전달한ㄷ.
- view에서 요청을 처리하는 로직들이 동작한다.
- DB 처리 필요할 시: model을 통해 처리
- HTML(template)렌더링이 필요할 시: 응답에 쓸 HTML 파일 생성.
- 사용자(브라우저)에게 response를 보낸다.
* ORM?
객체(Object)와 관계(Relation)를 연결(Mapping)하는 개념으로 일일히 쿼리문을 작성하지 않아도 데이터베이스를 조작할 수 있게해준다.
Django 개발의 순서
1. App 생성
python3 manage.py startapp <app명>
App이란
기능/웹 앱등 개발간 필요범위로 나누어 관리하기 위한 것. App을 나누는 기준은 명확하지는 않지만 ERD 등에서 분리되어 나타나거나 분리되는 것이 좋은 기능들.
App을 잘 나누면 확장성을 확보하는데 용이하다.
예를들어 자동차 판매사이트라면 계정,차량종류 및 정보, 쇼핑으로 크게 나눌 수 있을 것이다.
2. 모델 만들고 makemigration, migrate
- makemigrations <앱이름> : migration파일 생성(sql로 만들 수 있게 사전 번역)
- sqlmigrate <앱이름> <마이그레이션버전> : sql 쿼리문 보여줌
- check : 유효한지 검사
- migrate : 실제 DB에 반영(쿼리문으로 번역)
3. views 작성
클래스와 함수를 이용헤 데이터/템플릿을 응답으로 보내기 위한 로직을 구현한다.
4. urls.py 작성
urlpatterns를 작성해 어떤 url이 어떤 view를 실행시킬지 결정한다.
* urls.py를 왜 app마다 새로만들어줘야할까?
- url 제어 방법에는 매우 다양한 방법이 있으므로 url제어를 할 수 있도록 선택지를 넓히기 위해서
- 타 프로젝트에서도 활용될수 있게 독립적으로 app을 쓰게하는 철학
- 수동으로 생성해서 종속시켜버리는건 편의성을 위해 철학을 약간 거스르는 관행이다.
5. runserver <port>로 검증한다.
배운점
- 장고의 지향점, 장점에 대해 상기하였다. 개발자는 자신이 사용하는 도구의 장점과 사용해야하는 이유에 대해 알고 사용해야한다. 코더는 도구를 쓸줄 알고, 개발자는 왜 쓰는지 안다.
- check, sqlmigrate 에 대해 알게되었다.
'웹개발' 카테고리의 다른 글
DRF + ML 1일차 (0) | 2023.05.31 |
---|---|
ERD 강의 정리(04.27) (0) | 2023.04.27 |
세션인증과 토큰인증 (0) | 2023.04.24 |
DRF 1강 - HTTP와 웹 동작 방식 (0) | 2023.04.18 |
ERD 설계 특강 내용 (0) | 2023.04.05 |