Juni_Dev_log

블로그 앱 만들기 ① "애플리케이션 설계하기" with Django 본문

Project/Blog APP 만들기 (Django)

블로그 앱 만들기 ① "애플리케이션 설계하기" with Django

Juni_K 2020. 8. 20. 01:54

 

블로그 사이트가 늘어나고 블로그의 기능도 다양해지면서, 블로그 앱은 웹 프로그래밍을 배우는 사람들이 필수적으로 공부해야 한느 애플리케이션이 되었다.

블로그의 기본 기능이라고 할 수 있는 글 등록 및 열람, 태그 달기, 댓글 및 검색 기능, 콘텐츠 생성 및 편집 기능 등을 다룰 예정이다.

 

블로그의 글. 즉, 포스트에 대한 리스트를 보여주고 포스트를 클릭하면 해당 글을 읽을 수 있는 기능을 개발해보자.

 


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

 

블로그 앱 만들기 ② "개발 코딩하기 - 뼈대 만들기&모델 코딩하기" with Django

① 뼈대 만들기 애플리케이션 만들기부터 시작하면 된다. (vDjBook) python manage.py startapp blog 블로그 앱에 대한 설정 클래스를 settings.py 파일에 등록한다. 'blog.apps.BlogConfig' ② 모델 코딩하기 블..

juni-dev-log.tistory.com

Comments