Home Server - 01
Post
X

Server - 01

웹 서비스를 구현해보자.


주제 및 목표 설정

주제는 평소에 좋아하는 영화로 정했습니다.

먼저 정보 제공을 해주는 웹 페이지를 구현해보고 이후에 여러 기능들을 추가해보겠습니다.


아이디어 도출

현재 상영 중인 영화에 대한 정보를 제공해주는 웹 사이트를 만들어보겠습니다.

초기 모델의 기능으로 로그인, 회원가입, 영화 정보 제공 3가지를 정했습니다.


유저 시나리오 작성

  1. 사용자는 홈페이지에 접속합니다.
  2. 회원이 아닌 사용자는 회원가입을 먼저 진행합니다.
  3. 로그인 성공 시 현재 상영 중인 영화 목록을 보여줍니다.
  4. 사용자는 영화를 선택합니다.
  5. 정보 제공 화면으로 넘어가며 사용자는 영화에 대한 자세한 정보를 볼 수 있습니다.

출력 데이터 정리

참고 사이트를 보고 제공할 데이터를 정리해보겠습니다.

참고 사이트 : WATCHA, CGV

  • 필요 데이터

    • 포스터사진
    • 영화제목 한/영
    • 장르
    • 개봉일
    • 상영시간
    • 제작국가
    • 영화감독 (이름, 프로필사진)
    • 배우 (이름, 프로필사진)
    • 줄거리
    • 스틸컷

DB 설계

참고 글 : 데이터 모델링 실습


개념적 데이터 모델링

먼저 요구사항을 정리합니다.

  1. 영화에 대해서는 포스터사진, 한글제목, 영어제목, 개봉일, 상영시간, 제작국가, 줄거리, 스틸컷, 장르, 배우, 감독 등의 정보가 유지되어야합니다.

  2. 영화감독에 대해서는 이름, 프로필사진 등의 정보가 유지되어야합니다.

  3. 한 영화를 여러 영화감독들이 제작할 수 있습니다.

  4. 배우에 대해서는 이름, 프로필사진 등의 정보가 유지되어야 합니다.

  5. 한 영화에는 여러 배우들이 출연할 수 있습니다.

  6. 회원에 대해서는 아이디, 비밀번호, 이름 등의 정보가 유지되어야합니다.


요구사항에서 명사들을 추출해 개체와 속성을 작성합니다.

  • 요구사항 1번에서 영화 엔티티의 속성으로 영화번호, 한글제목, 영어제목, 포스터사진, 장르, 개봉일, 상영시간, 제작국가, 줄거리, 스틸컷를 얻을 수 있습니다.

  • 요구사항 2번에서 영화감독 엔티티의 속성으로 감독번호, 이름, 프로필사진을 얻을 수 있습니다.

  • 요구사항 4번에서 배우 엔티티의 속성으로 배우번호, 이름, 프로필사진을 얻을 수 있습니다.

  • 요구사항 6번에서 회원 엔티티의 속성으로 회원번호, 아이디, 비밀번호, 이름을 얻을 수 있습니다.

얻어낸 정보를 표로 정리해주겠습니다.

movie-entity


요구사항에서 개체 간의 연관성을 표현한 동사를 추출해 관계를 정의합니다.

  • 요구사항 3번에서 영화와 영화감독의 관계는 M : N임을 알 수 있습니다.

  • 요구사항 5번에서 영화와 배우의 관계는 M : N임을 알 수 있습니다.

movie-relation


ER 다이어그램을 작성해보겠습니다.

movie-erd


논리적 데이터 모델링

ER 다이어그램을 기반으로 테이블 명세서를 작성하기전 정규화 과정을 진행해보겠습니다.

  • 1NF

    테이블의 모든 속성 값이 도메인 원자값만으로 되어 있는 상태로 정규화합니다.

    영화 테이블의 장르 속성에는 여러 값이 주어질 수 있습니다.
    (예 : 액션, 멜로, 애니매이션 등)

    따라서, 중간 테이블을 두어 관리합니다.

    스틸컷도 영화마다 5장 이상 존재하지만 문자열로 한번에 저장할 예정이므로 장르만 분할합니다.

  • 2NF

    기본키 일부에 종속되는 부분종속성을 없애는 과정으로 반드시 모든 기본키에 종속되는 상태로 정규화합니다.

  • 3NF

    기본키 이외의 속성간의 종속을 없애는 과정으로 보통 중복이 발생하는 부분을 분리하여 새로운 테이블을 생성합니다.


정규화 과정을 거친 후 ER 다이어그램을 다시 작성합니다.

movie-erd-normal


릴레이션 스키마로 변환은 생략하고 ER 다이어그램에서 바로 테이블 명세서를 작성해보겠습니다.

movie-table-specs-01

movie-table-specs-02


마지막으로 DB 명명 규칙에 따라 변환한 테이블 명세서를 작성합니다.

참고 글 : DB 명명 규칙

movie-table-specs-03

movie-table-specs-04


물리적 데이터 모델링

이제 Workbench에 테이블 명세서를 바탕으로 ER 다이어그램을 작성합니다

참고 글 : 물리적 데이터 모델링

Workbench의 Forward Engineer를 활용해 테이블을 생성하겠습니다.

movie-workbench-erd

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.