5-1. 북마크 서비스 분석&설계
시작하며
앞에서 배운 내용을 잘 기억하면서, 실습 프로젝트로 북마크 서비스를 만들어 보겠습니다. 인터넷 즐겨찾기 관리 서비스입니다. 간단하게 모델을 만들고 CRUD 페이지 들을 구현해 실제로 하나의 서비스를 만들때 기본이 되는 장고 어플리케이션 단위의 기능ㄹ 개발을 어떻게 해야할지 살펴 보도록 하겠습니다.
5-1-1 북마크 사이트
북마크 서비스는 간단하지만, 각각의 기능을 살펴보면 많은 기능을 가지고 있습니다. 따라서, 서비스 기획 및 분석 & 설계 해야 할 부분이 많습니다. 다음에 북마크 서비스에서 제공할 기능에 대해서 살펴보겠습니다.
5-1-2 북마크 분석
북마크 사이트는 사용자 웹 화면과 관리자 웹 화면으로 구성되며, 기본적인 CRUD 형태를 가지고 있습니다. 따라서, 이번 실습을 통해서 DB CRUD 기능에 대해서 명확히 습득해야 합니다.
북마크 사이트
|
├─ 사용자 WEB 화면
| ├─ 목록 페이지 # 리스트 조회
| ├─ 북마크 추가 # INSERT
| ├─ 북마크 상세 # SELECT
| ├─ 북마크 수정 # UPDATE
| └─ 북마크 삭제 # DELETE
|
└─ 관리자 WEB 화면
├─ 북마크 관리 # Managent
└─ 목록 리스트 # 리스트 조회
북마크 사이트
|
├─ 사용자 WEB 화면
| ├─ 목록 페이지 # 리스트 조회
| ├─ 북마크 추가 # INSERT
| ├─ 북마크 상세 # SELECT
| ├─ 북마크 수정 # UPDATE
| └─ 북마크 삭제 # DELETE
|
└─ 관리자 WEB 화면
├─ 북마크 관리 # Managent
└─ 목록 리스트 # 리스트 조회
5-1-3 북마크 설계
북마크 어플리케이션을 개발하기 위해서는 제공해야 하는 기능을 정의해야 하고, 사용자/관리자 화면 설계하고, 사용하는 데이터베이스에 대해서 설계를 해야 합니다.
5-1-3-1 사용자 화면 설계
북마크 사용자 첫 페이지 입니다. 등록된 북마크 리스를 표시합니다.
그림5-1-3. 목록 페이지
-------------------------------------------------
북마크 Add Bookmark 버튼 클릭시 추가 화면입니다.
그림5-1-3. 북마크 추가
-------------------------------------------------
북마크 타이틀을 클릭하면 나타나는 화면입니다.
그림5-1-3. 북마크 상세
-------------------------------------------------
북마크 Modify 버튼을 클릭하면 나타나는 화면입니다.
그림5-1-3. 북마크 수정
-------------------------------------------------
북마크 Delete 버튼을 클릭하면 나타나는 화면입니다.
그림5-1-3. 북마크 삭제
5-1-3-2 관리자 화면 설계
관리자 북마크 관리 화면 입니다. 테이블 목록이 표시됩니다.
그림5-1-3. 북마크 관리
-------------------------------------------------
북마크 등록된 데이터를 확인 할 수 있으며, 조회/추가/수정/삭제를 할 수 있습니다.
그림5-1-3. 목록 리스트
5-1-3-3 데이터베이스 설계
앞의 분석 & 설계 단계에서 정의한 기능에 대해서 데이터베이스를 설계하는 단계입니다. 북마크에 필요한 테이블은 1개로 구성되어 있으며 아래와 같습니다.
- 테이블 리스트
- 테이블명: 북마크(bookmark)
- 테이블설명: 북마크 정보를 관리한다.
Name | 영문명 | 타입 | 클래스변수 | 장고의 필드 클래스 |
---|---|---|---|---|
순번 | Id | integer | (id) | (장고에서 자동생성) |
순번 | site_name | varchar(100) | site_name | models.CharField(max_length=100) |
순번 | url | url | varchar(20) | medels.URLField('Site URL') |
SQL 테이블 생성 스크립니다.
CREATE TABLE "bookmark_bookmark" (
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"site_name" varchar(100) NOT NULL,
"url" varchar(200) NOT NULL
);