일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- mongodb
- MYSQL
- Node.js
- 장고 프로젝트 순서
- JavaScript
- 알고리즘
- 파이썬 웹프로그래밍 장고
- 북마크만들기
- 북마크앱
- 장고 개발 순서
- join()
- Exercism
- Django
- 독립영화플랫폼
- MyPick31
- ART_Cinema
- 장고
- 자바스크립트
- passport.js
- python
- 개발
- Algorithm
- 예술영화추천
- Django Blog
- 장고 프로젝트
- til
- 타사인증
- 프로젝트
- Bookmark
- Blog
- Today
- Total
Juni_Dev_log
블로그 앱 만들기 ① "애플리케이션 설계하기" with Django 본문
블로그 사이트가 늘어나고 블로그의 기능도 다양해지면서, 블로그 앱은 웹 프로그래밍을 배우는 사람들이 필수적으로 공부해야 한느 애플리케이션이 되었다.
블로그의 기본 기능이라고 할 수 있는 글 등록 및 열람, 태그 달기, 댓글 및 검색 기능, 콘텐츠 생성 및 편집 기능 등을 다룰 예정이다.
블로그의 글. 즉, 포스트에 대한 리스트를 보여주고 포스트를 클릭하면 해당 글을 읽을 수 있는 기능을 개발해보자.
1. 화면 UI 설계
각 화면의 템플릿 파일명과 화면 요소들이 무엇을 의미하는지 그리고 어느 테이블 칼럼에 해당하는 지 등을 표시한다.
"Post.title" 과 같이 영문으로 표시된 항목들이 테이블 컴럼. 즉, 사용하는 모델 필드를 보여준다.
2. 테이블 설계
테이블 설계 내용은 장고의 모델 클래스로 반영되고, models.py 파일에서 코딩한다.
글에 대한 정보를 담고 있는 Post 테이블을 다음과 같이 설계한다.
필드명 | 타입 | 제약 조건 | 설명 |
id | Integer | PK, Auto Increment | 기본키 |
title | CharField(50) | 포스트 제목 | |
slug | SlugField(50) | Unique | 포스트 제목 별칭 |
description | CharField(100) | Blank | 포스트 내용 한 줄 설명 |
content | TextField | 포스트 내용 기록 | |
create_date | DateTimeField | auto_now_add | 포스트를 생성한 날짜 |
modify_date | DateTimeField | auto_now | 포스트를 수정한 날짜 |
3. 로직 설계
로직 설계는 애플리케이션의 처리 흐름을 설계하는 중요한 단계이다.
이 과정을 통해서 갭라 대상 기능을 도출하고, 각 기능을 모델-뷰-템플릿 간에 어떻게 배치할 것인지 결정된다.
개발 기능이 누락되지 않도록 도출하고, 도출된 기능들은 다음 단계인, URL 설계에 누락되지 않게 반영해야한다. 규모가 큰 프로젝트라면 로직 설계를 반드시 수행할 것을 권장한다.
해당 프로젝트에서는, 간단한 로직이기 때문에 생략하지만, 프로젝트가 복잡해질수록 로직 설계가 중요하다는 것을 유의해야한다.
4. URL 설계
간단한 프로젝트라고 하더라도 생략할 수 없는 단계가 URL 단계이다.
테이블 설계와는 독립적으로 진행할 수 있으며, 기능 개발은 URL을 정의하는 것에서부터 시작되기 때문이다.
바로 개발 코딩에 들어가지말고, 어떤 URL 이 필요하고 필요한 URL들을 어떻게 구성할지 등은 미리 설계하는 것이 바람직하다.
블로그앱에서는 아래와 같은 URL이 필요한 것으로 설계했다.
URL 패턴 | 뷰 이름 | 템플릿 파일명 |
/blog/ | PostLV(ListView) | post_all.html |
/blog/post/ | PostLV(ListView) | post_all.html |
/blog/post/django-example/ | PostDV(DetailView) | post_detail.html |
/blog/archive/ | PostAV(Archive Index View) | post_archive.html |
/blog/archive/2019/ | PostYAV(Year Archive View) | post_archive_year.html |
/blog/archive/2019/nov/ | PostMAV(Month Archive View) | post_archive_month.html |
/blog/archive/2019/nov/10/ | PostDAV(Day Archive View) | post_archive_day.html |
/blog/archive/today/ | PostTAV(Today Archive View) | post_archive_day.html |
/admin/ | (장고 제공 기능) |
9개의 URL을 정의했고, 그에 해당하는 클래스형 뷰와 템플릿 파일을 계획했다.
5. 작업/코딩 순서
작업순서는 다음과 같다.
뼈대만들기 | startproject settings.py migrate createsuperuser startapp settings.py |
(2장에서 했으니 생략) 블로그 앱 생성 (startapp) 블로그 앱 등록 (settings.py) |
모델 코딩하기 | models.py admin.py makemigrations migrate |
모델(테이블) 정의 Admin 사이트에 모델 등록 모델의 변경사항 추출 변경사항을 데이터베이스에 반영 |
URLconf 코딩하기 | urls.py | URL 정의 |
뷰 코딩하기 | views.py | 뷰 로직 작성 |
템플릿 코딩하기 | templates 디렉터리 | 템플릿 파일 작성 |
그 외 코딩하기 | (없음) |
(다음 포스팅)
2020/08/21 - [Project/Blog APP 만들기 (Django)] - 블로그 앱 만들기 ② "개발 코딩하기 - 뼈대 만들기&모델 코딩하기" with Django
'Project > Blog APP 만들기 (Django)' 카테고리의 다른 글
블로그 앱 만들기 ⑤ "지금까지 작업 확인하기" with Django (0) | 2020.08.22 |
---|---|
블로그 앱 만들기 ④ "개발 코딩하기 - 템플릿 코딩하기" with Django (0) | 2020.08.22 |
블로그 앱 만들기 ③ "개발 코딩하기 - URLconf 코딩하기 & View 코딩하기" with Django (0) | 2020.08.21 |
블로그 앱 만들기 ② "개발 코딩하기 - 뼈대 만들기&모델 코딩하기" with Django (0) | 2020.08.21 |