파이널 프로젝트 1주차
[파이널 프로젝트]
팀 인원 : 4명
기간 : 약 5주
졸업 프로젝트 주제 : 여가 관련 (취미, 클래스, 모임 등) 예약 사이트
나의 포지션 : 기술자문
✔️day1
오늘의 목표 : 벤치 마킹 사이트 확정하기
- 디테일하게 구현할 것인지, 간단하지만 완벽하게 구현해낼 것인지 고민 (확정되지 않음)
- 어떤부분에 주력하여 구현하고 싶은지 → 예약, 쿠폰발행, 포인트, 비즈니스 로직 구현시 mvc 패턴 잘 드러나게 구현
- 프론트앤드 어떻게 나눌것인지 고민 (한명이 맡아서할 것인지, 나눠서 다같이할 것인지)
- 의견 취합하여 벤치마킹 사이트 확정
✔️day2
오늘의 목표 : 프로젝트를 위한 테이블 모델링 완료하기 (수정 필요)
- 조장, 기술자문(본인), 업무일지 관리인 결정
- 벤치마킹 사이트를 참고하여 모델링 → 1차 완성 (강사님 컨펌 대기)
- 모델링 하며 든 의문
- 스마트 에디터의 글 또는 사진은 데이터베이스에 어떻게 저장되는지? 여러개의 사진이 들어간다면 컬럼을 여러개를 만들어야하는지?
- 강사님께 질문하여 답변 도출
- html태그가 포함되어 String의 형태로 저장되기 때문에 컬럼 한개로 모두 저장 가능
- 정확히 어느 부분까지 모델링 해야할 지? 너무 디테일하지는 않은지 또는 너무 간단하지는 않은지에대한 고민
- 내일 예정된 테이블 시나리오 작업을통해 어느정도 해답을 얻을듯
- 스마트 에디터의 글 또는 사진은 데이터베이스에 어떻게 저장되는지? 여러개의 사진이 들어간다면 컬럼을 여러개를 만들어야하는지?
- 기술자문 첫번째 업무(공식) : git & github 사용방법에 대해 조원들에게 알려주기 (코딩 시작 전 알려줄 예정)
- 기술자문 두번째 업무(개인) : api 썸머노트 사용법 공부
- 프론트 엔드 → 기본 틀(헤더, 네비, 푸터)은 상의하여 폼 만들기, 프론트엔드를 도맡을 조원을 따로 두지 않고, 각자 맡은 페이지의 content 부분의 프론트앤드까지 코딩하는걸로 이야기 나옴 (확정되지 않음)
✔️day3
오늘의 목표 : 프로젝트를 위한 테이블 모델링 완료하기
- 강사님께 1차 컨펌 받음 → CRUD로 단순히 테이블 값만 보여주는 간단한 로직말고 테이블의 값을 활용한 비즈니스 로직 구현을 원하심
- 호스트페이지에 필요한 부분을 더 추가하기로함
- 전체적으로 테이블 다듬음
- 호스트 정산 테이블 추가
- 모델링 하며 든 의문
- 너무 많은 테이블이 구현되어있지는 않은지
- 호스트가 볼 수 있는 뷰단의 정산 리스트는 필요하지만 테이블이 따로 필요한지(조인으로 가져올 수 있지 않을까에대한 의문)
- 강사님께서 테이블의 값을 활용한 비즈니스 로직 구현을 원하시는데, 테이블로도 확인할 수 있게 모델링으로 구현해달라(?)에 대한 의문 (어떤의미인지 감이 안잡힘)
- 주말 이틀동안 각자 맡은 ERD Cloud, front 페이지 만들어오기에 대한 이야기 상의함
✔️day4, day5
주말의 목표 : 도맡은 ERD Cloud 작성, front 페이지 만들기
[ERD Cloud 작성]
→ 결제관련 테이블을 맡음 (장바구니, 주문서, 결제, 환불)
(작성 당시 상품테이블이 만들어져있지 않아서 상품코드 없이 작성함)
ERD 작성시 의문점
- 환불테이블이 주문서 번호를 FK로 갖는게 맞는지에대한 의문점
- 주문 상세 내역 테이블의 옵션코드가 상품테이블의 자식 테이블 두개의 PK를 합쳐서 만든 코드인데 ERD로 어떻게 작성해야할 지에대한 의문
- 장바구니 테이블이 주문서테이블과 주문상세내역 테이블과 관련이 없다는 의문
- 장바구니가 주문서테이블과 주문상세내역과 관련이 있으려면 장바구니테이블 컬럼에 장바구니 상태(결제완료, 장바구니대기, 장바구니삭제)가 있어야 장바구니 코드를 활용할 수 있을 것 같다.
- 외에 일대 다, 일대일, 다대다관계, zero or one or many에 대해서는 미리 공부해 두어서 어려움은 없었다.
[front 구현]
→ 호스트 페이지 전체를 맡음
- bootswatch페이지의 "journal" 부트스트랩 이용하여 만듦
- 들어가는 아이템 (버튼, 네비 등) 은 찾은 부트스트랩을 활용했고, 배치는 flex를 사용하여 원하는 형태로 배치함
- 부트스트랩 코드 분석하여 필요에 맞게 코드 수정함
- 휴대폰 사용시에도 편리하게 볼 수 있게 반응형 웹 형태로 만듦
- 실제 호스트 페이지와 거의 흡사하게 만듦
[구현 페이지 이미지]
✔️day6
오늘의 목표 : 프로젝트를 위한 테이블 모델링 완료하기
2차 컨펌을 받아봤으나 돌아오는 대답은 같았다. 데이터를 보여주기만 하지말고, 데이터를 가공하여 이용할 테이블을 설계해보라는 말씀!
의미는 알겠지만 쉽게 떠오르지 않았다.
그래서 포인트 관련 이벤트나 프로모션에 대해 고민해봤다.
- 설문조사 이벤트 : 설문을 이용하여 고객들의 니즈를 파악하여 홈이나 장바구니 화면에서 개인맞춤 클래스 추천을 만들어보자!
- 회원 등급 제도 : 회원 등급별로 포인트 적립율을 다르게 적용
- 모델링 하며 든 의문
- 검색어를 수집하여 보여줄 수있는것이 무엇이 있을지 → 최다 검색어 검색창에 커서 이동시 검색창 아래에 모달로 보여주기
- 이벤트에 따른 테이블들이 더 필요할 지
- 내일이 공휴일이라 front 남은부분 더 구현해 놓고, 설문조사 이벤트 관련하여 각자 테이블 만들어보고 8일차에 코드리뷰 해보기로함!!!
✔️day7
오늘의 목표 : front 구현 & 테이블 시나리오 정리 & 설문조사 이벤트 관련 테이블 만들어보기
- 공휴일이라 각자 맡은 부분 실행해오기로 했다.
- 시나리오 정리 부분은 맡은 부분은 아니였지만 전체적으로 흐름 파악하기위해 정리하였다.
- 필자가 8일차에 개인적인 사정으로 인해 학원 출석을 못하므로 최대한 팀원들에게 도움이 될만한 것을 해놓아야겠다고 생각했다.
[테이블 시나리오]
- 10시~12시, 13시~18시 (대략 8시간) 걸려서 정리 마침
- 전체적으로 시나리오 다시 구축함 (시나리오 흐름상 복잡해 보이는 데이터들은 단순화 하여 다시 넣음)
- 논리에 맞지 않는 컬럼은 제외하고, 논리에 필요한 컬럼 추가
- 시나리오가 부족한 부분은 더 채워 넣음
- 삭제한 컬럼, 추가한 컬럼, 바뀐 테이블명/컬럼명들은 팀원들이 알 수 있게 기재해 놓음
- 비고란 추가하여 테이블에 대한 상세 설명 추가
- 색상, 데이터값 단순화 하여 보기 편하게 바꿈
[설문조사 이벤트 관련 테이블 만들기]
설문 조사 이벤트를 넣으려면 관리자 또는 호스트가 설문을 작성하여 올릴 수 있어야 한다고 생각했다. 하지만 우리조는 관리자 페이지를 구현하지 않으므로 호스트가 설문을 작성하게 해야하는 방식으로 가야한다.
이 부분에서 막히는것이 호스트가 설문을 작성하게하면 테이블에 쓰레기 데이터들이 많이 들어올것 같다는 부분에서 막혔다. 따라서 설문조사 이벤트라는 테이블이 존재하려면 관리자가 있어야 함을 느꼈다.
그래서 필자는 관리자가 있다는 가정하에 테이블을 구상해 보았다.
[front 구현]
프론트 페이지 (9페이지) 중 한 페이지를 제외한 나머지 페이지 구축 (약 2시간 소요)
한 페이지는 넣어야 하는 내용이 많아서 조원들과 상의 후 구축할 예정
호스트 페이지 백엔드 구현을 맡게될 조원을 위해 최대한 상세하게 구현해 놓았다.