Skip to content

6-1. Dstagram 서비스 분석&설계

학습목표

이번 장에서는 Dstagram (블로그 사진) 실습 프로젝트로 만들어 보겠습니다. *스타그램처럼 사진을 업로드하고, 댓글기능을 가진 웹 서비스 입니다. 이번 실습을 통해서 웹 서버에서 파일을 관리하고, HTML Form 형식의 데이터를 처리하는 부분에 대해서 학습하게 됩니다. 따라서, 서비스 하려고 하는 기능을 도출하고, 웹 서비스를 개발하기 위한 분석/설계 과정을 살펴 보도록 하겠습니다.

실습 목표
  • 로그인
  • 웹 페이지 접속 권한
  • 사용자 등록
  • HTML Form 양식
  • HTTP POST Method (Insert/Select/Update/Delete)
  • 파일전송
  • 댓글 모듈 사용

6-1-1. 기능

다음에 Dstagram 서비스에서 제공할 기능에 대해서 살펴보겠습니다.

  • 사용자 기능

    1. 아이디/패스워드로 로그인 가능해야 한다.
    2. Photo 전체 리스트를 첫 로그인 후 화면에 표시한다.
    3. Photo 사진을 새로 등록 할 수 있어야 한다.
    4. Photo 사진을 상세 정보를 볼수 있어야 한다.
    5. Photo 사진을 수정 할 수 있어야 한다.
    6. Photo 사진을 삭제 할 수 있어야 한다.
    7. Photo 에 댓글을 쓸수 있어야 한다.
    8. 회원 가입한 사람만 사진이나 댓글을 등록/수정을 할 수 있다.
  • 관리자 기능

    1. 관리자 화면에서 사진,회원정보를 관리 할 수 있어야 한다. (관리란 조회, 등록, 수정, 삭제 등을 말한다.)

6-1-2. 분석

Dstagram(사진) 사이트는 사용자 웹 화면과 관리자 웹 화면으로 구성되며, 기본적인 CRUD 형태를 가지고 있습니다. 사진을 등록/수정하는 기능과 사진파일을 관린하는 기능 그리고 회원 가입(Acoount) 기능을 가지고 있습니다.

Dstagram 사이트
|
├─ 사진 WEB 화면 
|  ├─ 전체 사진 리스트    # Select All
|  ├─ Dstagram 추가         # INSERT
|  ├─ Dstagram 상세         # SELECT
|  ├─ Dstagram 수정         # UPDATE
|  └─ Dstagram 삭제         # DELETE
|
├─ 회원가입 
|  ├─ 입력 화면             # input form
|  └─ 회원가입 완료 화면     
|
└─ 관리자 WEB 화면
   ├─ 사진 관리        # Photo 사진 관리
   └─ 회원 관리        # Account 사진 관리
Dstagram 사이트
|
├─ 사진 WEB 화면 
|  ├─ 전체 사진 리스트    # Select All
|  ├─ Dstagram 추가         # INSERT
|  ├─ Dstagram 상세         # SELECT
|  ├─ Dstagram 수정         # UPDATE
|  └─ Dstagram 삭제         # DELETE
|
├─ 회원가입 
|  ├─ 입력 화면             # input form
|  └─ 회원가입 완료 화면     
|
└─ 관리자 WEB 화면
   ├─ 사진 관리        # Photo 사진 관리
   └─ 회원 관리        # Account 사진 관리

6-1-3. 설계

Dstagram 어플리케이션을 개발하기 위해서는 제공해야 하는 기능을 정의해야 하고, 사용자/관리자 화면 설계하고, 사용하는 데이터베이스에 대해서 설계를 해야 합니다.

6-1-4. 사용자 화면

  • 첫 화면 로그인 ch06-06-01_01.png 그림6

  • 가입 ch06-06-01_02.png 그림6

  • Photo Upload 완료 -> Photo 목록 ch06-06-01_06.png 그림6

  • Photo Upload ch06-06-01_05.png 그림6

그림5-1-3. 북마크 수정 그림5-1-3. 북마크 삭제

6-1-5. 관리자 화면

  • Photo 사진 관리 ch06-06-01_11.png 그림6

6-1-6. 데이터베이스 설계

앞의 분석 & 설계 단계에서 정의한 기능에 대해서 데이터베이스를 설계하는 단계입니다. 북마크에 필요한 테이블은 2개로 구성되어 있으며 아래와 같습니다.

  1. 테이블 리스트
  • 테이블명: 사진정보(photo)
  • 테이블설명: 사진 정보를 관리한다.
Name영문명타입클래스변수
순번idinteger(id)
사진필드photoImageFieldmodels.ImageField
텍스트text텍스트models.TextField
생성일자created날짜models.DateTimeField
수정일자updated날짜models.DateTimeField
등록자authorintegermodels.ForeignKey
SQL 테이블 생성 스크립니다.

CREATE TABLE "photo_photo" (
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"photo" varchar(100) NOT NULL, "text" text NOT NULL, "created" datetime NOT NULL,
"updated" datetime NOT NULL,
"author_id" integer NOT NULL REFERENCES
"auth_user" ("id") DEFERRABLE INITIALLY DEFERRED
);
CREATE INDEX "photo_photo_author_id_c3932836" ON "photo_photo" ("author_id");
COMMIT;

Released under the MIT License.