byc3***
2020-10-25

장고 프레임워크를 사용해서 상용화 수준의 앱을 만들고, 앱의 기능을 확장하고, 클라우드 서버에서 배포하는 것까지 다룬다.
[나의 한줄 추천사]
Python Web Framework 기반 프로그래밍을 하고 싶다면 이 책을 보라
[책을 구매한 이유]
Python Web 개발시 주로 백엔드는 Flask 사용했었다. 백엔드 RestFul API 개발시 빠르게 개발할 수 있기 때문이다. 하지만 JWT 인증이나 웹 퍼블리싱에 대한 부분을 손수 한땀 한땀 개발해야하는데, 장고(Django) 통해서 기본적인 템플릿 구성을 해주기 때문에, 초반 프레임워크 스터디 시간 비용은 들어가지만, 그후 개발 속도를 생각하자면 좋은것 같다. 간단한것은 Flask, 큰 웹 개발이 필요할때는 Django.
[내가 찾고자 했던 질문과 대답들]
- Flask 와 다른점은?
Startproject 및 startapp 명령을 실행하면, 자동으로 프로젝트 디렉토리 및 파일을 생성해준다. 전체적인 구조를 잡아주기 때문에, Flask 처럼 한땀한땀 코딩하지 않아도 된다. 그리고 MVT 방식 (Model, View, Template) 개발하기 때문에 구조만 익히면 빠르게 개발이 가능하다.
- 장고(Django) 통해서 어떤 것을 개발해 볼수 있나?
이 책에서는 Bookmark 앱, Blog 앱, Photo 앱, 부트스트랩 기반 홈페이지 만들기, 기존 앱들을 확장시키면서 전체적인 장고(Django) 프레임워크 위에서 강도를 높이면서 프로그래밍 실전을 경험하게 된다.
-장고(Django) 코딩 순서는?
1) 프로젝트 뼈대 만들기 : 프로젝트 및 앱 개발에 필요한 디렉토리 / 파일 생성
2) 모델 코딩하기 : 테이블 관련 사항을 개발 (models.py, admin.py 파일)
3) URLconf 코딩하기 : URL 및 뷰 매핑 관계 정의 (urls.py 파일)
4) 뷰 코딩하기 : 애플리케이션 로직 개발(views.py)
5) 테플릿 코딩하기 : 화면 UI 개발(templates/ 디렉터리 하위의 *.html 파일들)
- 장고(Django) 핵심 기능은?
1) 모델(Model) : 테이블 정의하는 장고의 클래스를 의미함. Models.py 는 테이블 관련 사항들을 정의함
2) 뷰(View) : 웹 요청을 받아서 최종 응답 데이터를 웹 클라이언트로 반환하는 함수 말하는데, 함수로 작성할 수 있고, 클래스로도 작성할수 있다. 보통 GenericView 상속 받고 오버라이딩하여 작성함
3) 템플릿(Template) : 적절한 위치에 파일을 만들고, 그 파일에 템플릿 문법에 따라 템플릿 코드만 작성하면 된다.그 이후에 웹 브라우저에 응답할 최종 html 텍스트 파일은 장고가 알아서 만들어준다. 템플릿 과정은 크게 3가지로 나눠지는데, 템플릿 설정에 따라 Engine 객체를 생성하고, 템플릿 파일 로딩 및 Template 객체를 생성한다. 랜더링을 하여, 최종 html 텍스트 파일을 생성한다.
4) 폼(Form) : Form 클래스로 폼을 정의하고 정의된 폼을 뷰에서 사용하며, 최종적으로 템플릿 엔진에 의해서 html 텍스트로 랜더링되는 절차를 거쳐 사용자에게 보여진다.