DEV Community

SJ W
SJ W

Posted on

부트캠프 프로젝트 1-1

개요

현재 프로그래머스의 풀스택 개발 부트캠프를 참여하면서 제일 처음으로 프로젝트를 수행하는 것을 바탕으로 이번 블로그를 작성하려고 한다. 앞으로 부트캠프에서 배우고, 느끼고, 그리고 수행한 것들을 포괄적으로 정리하여 블로그에 게시하여 나의 성장과정을 정리하는 것이 바람직하다고 생각하기 때문이다.

부트캠프의 첫 번째 프로젝트로 우리가 수행할 것은 다음과 같다:
1. 나만의 포트폴리오 사이트 만들기
2. 데이터베이스 모델링

지난 2주간 배웠던 내용을 가지고 우리가 원하는 방식으로 개발을 진행하여 프로젝트를 마치는 것이 이번 프로젝트의 목표다. 두 가지의 목표 중에서 첫 번째를 간략하게 설명하자면 포트폴리오 사이트를 HTML과 CSS를 이용하여 개발을 하고, GitHub에 코드를 업로드하고 마지막으로 GitHub Pages를 이용하여 리포지토리에 있는 내용을 배포하는 방식으로 진행하는 것이다. 두 번째는 데이터베이스를 설계를 하는 것에 초점을 둔다. 이벤트 티켓 개발 사이트의 데이터베이스 설계를 위해, E-R 다이어그램을 사용하여 엔티티들의 구조와 관계를 표현하는 것이 목표다.

1. 나만의 포트폴리오 사이트 만들기

이번 프로젝트의 포트폴리오는 비교적으로 간단한 평가기준을 바탕으로 진행되었다. HTML과 CSS를 통하여 웹사이트를 제작하고 배포까지하는 기준으로 이루어졌다. 하루라는 시간동안 프로젝트를 진행하게 되어서, 디자인은 크게 신경 쓸 시간이 부족하여서 완성도 부분에서는 매우 떨어지지만 내가 이것을 간단하게 만들고 배포하는 능력을 키우는 것이 중요하다고 생각했다. 그래서 프로젝트의 구조는 다음과 같이 설계를 하였다.

  • main.html - 랜딩 페이지
  • about-me.html - 자기소개 페이지
  • projects.html - 프로젝트 소개 페이지
  • ./img - 이미지 폴더

main.html

Image description

간단한 랜딩 페이지를 볼 수 있다. 너무 심플하고 미적으로 매우 부족한 측면을 볼 수 있다. 매 번 프론트엔드를 만들면서 생각이 나는 것은 비록 디자인을 잘하지는 못하더라도 프론트엔드 개발자가 알아야 할 디자인 가이드라인 같은 것들은 그래도 배우고 숙지해야 한다는 생각이 들었다.

about-me.html

Image description
이것 역시 많은 부분에서 보완을 할 필요가 있다 - 기본적인 인적사항이 빠져있는걸 볼 수 있다. 앞으로 차근차근 보완해 나갈 예정이다.

projects.html

Image description
내가 지금까지 시작한 프로젝트는 어느정도 되지만 아직도 포트폴리오에 내세울 것이 없어서 두 개의 가상 프로젝트를 사용하였다 - 프로젝트의 이름과 설명은 GPT가 생성해주었다ㅎㅎ.

배포작업

배포작업을 진행한 과정은 다음과 같다.

  1. Git repo 생성
  2. GitHub repo 생성
  3. 프로젝트 폴더와 GitHub repo와 연동

2. 데이터베이스 모델링

두 번째 태스크로 DB 모델링을 하는 작업을 진행하였다. 이것 역시 첫 번째 작업(포트폴리오 웹사이트 만들기)과 마찬가지로 매우 기본적인 평가기준을 바탕으로 진행하였다. 평가기준은 ER 다이어그램으로 설계를 진행하고, 이것을 DB에 구현하여 SQL 명령문을 사용하여 생성한 테이블에 데이터 관련 작업을 하는 것이였다.

모델링을 할 주제는 바로 행사 티켓팅 서비스이다. 사람들이 서비스에 행사 참여를 위해 참여비를 내고 티켓팅을 하는 웹 플랫폼을 염두하고 서비스에 필요한 것들을 모델링하였다.

E-R 다이어그램

Image description

위의 열 개 엔티티의 연관성을 고려하여, 이들을 총 세 개의 그룹으로 분류할 수 있다.

유저
  • User
행사
  • Event
  • EventCost
  • EventImage
  • EventEventType
  • EventType
  • EventHost
  • EventHostEmail
  • EventHostTelephoneNumbers
주문
  • UserOrder

유저

먼저 웹 앱에서 회원가입을 할 수 있도록 유저 테이블을 생성하였다.

행사

행사와 관련된 여덟 개의 테이블을 생성했으며,이들은 주로 세 개의 그룹으로 분류된다.

  • 행사 주최자
  • 행사
  • 행사 카테고리

행사 주최자(EventHost) 테이블은 EventHostEmail과 EventHostTelephoneNumbers, 총 두 개의 테이블과 관련되어 있다. 이 세 개의 테이블을 별도로 구성한 이유는 주최자가 다수의 이메일과 전화번호를 등록할 수 있게 하기 위함이다.

하나의 행사는 여러가지 카테고리에 속할 수 있으며, 하나의 카테고리는 여러 행사와 연관될 수 있다. 이러한 이유로, 행사(Event)와 카테고리(EventType) 간에 다대다 관계를 형성하기 위해 'EventEventType'이라는 중간 테이블을 생성하였다.

Event와 EventCost 테이블을 분리한 이유는 행사의 가격변동을 기록하기 위함이다.

주문

Order 테이블을 통하여 유저가 참여하고 싶은 행사에 등록할 수 있도록 Order 페이지를 만들었고, 테이블의 각 행은 User 테이블과 Event 테이블과 관계를 형성한다.

Top comments (0)