풀스택 미니프로젝트
주제
호텔 리뷰 사이트 구축
- 필수기능
- pyJWT [HS256] 사용한 회원가입 및 로그인 기능
미니프로젝트 진행
- 와이어프레임 제작
Client 와이어 프레임
- index, login, register, post, review post
- 머리로 생각했을때는 몰랐는데 시각적구현을 통해 기능구성을 하다보니 내가 무엇을 개발하려고 하는지가 눈에 보이기 시작함
- 머리로 생각했을때는 몰랐는데 시각적구현을 통해 기능구성을 하다보니 내가 무엇을 개발하려고 하는지가 눈에 보이기 시작함
Server 와이어프레임
- DB : mongodb
- Framwork : Flask
- Editor : VScode
- 시작을 Pycharm으로 계속해서 개발공부를 하다 Framwork인 JWT관련 Error이 계속해서 발생하여 vscode로 개발을 시작하였다.
처음 할때는 Terminal 사용이 익숙치 않아 고생했지만 점점 손에 익으니 오히려 Pycharm보다 처리속도나 확장성은 더 좋은것으로 판단된다. - Error 관련 하여 추후 다루기로 하자
- 시작을 Pycharm으로 계속해서 개발공부를 하다 Framwork인 JWT관련 Error이 계속해서 발생하여 vscode로 개발을 시작하였다.
DB구성은 추후 기능인 리뷰삭제 기능 및 관리 기능에 관련하여 Data 구성을 고민하게 된다.
문제점.
mongodb는 _id 구성 아래에 값이 사라지면 _id 전체가 사라지는 문제가 있다. 초반에 확실히 설계를 하지 않으면 추후에 데이터 내부에 리뷰 데이터가 쌓이고 쌓인 데이터 중 삭제기능 구현시 데이터가 일부 같이 삭제 될 수 있는 여지가 있기때문이다.
user data는 별도로 분리하여 운영
솔루션 1.
- 각 호텔별 폴더를 생성하여 0번 데이터에는 호텔데이터 (hotelName, image, address, info)를 넣어 포스팅시에 표현 될 수 따로 분리하여 관리하고 하고,
1번 테이터 부터는 (star, comment, userName,image)를 넣어 userName 값을 가지고 삭제 수정등을 진행하여 데이터 보호 및 관리
문제점
- 호텔의 총 수가 많아지기 시작하면 폴더가 기하급수적으로 생성되어 DB관리에 문제가 생길 수 있음
솔루션 2.
- 호텔 폴더는 1개를 유지하고 데이터 값을 고정적으로 추가한다.
0번 데이터는 포스팅에 관리하고, 1번 테이터 부터는 고정적으로
[ hotelName, hotelInfo ] + [ userName : object ] 를 통해 내부에서 데이터를 쌓아 서버 첫단에 1개의 폴더만을 가지고 유지 관리
문제점
- front에서 리뷰 작성시 입력되어야 하는 데이터값이 많아져 자칫 page가 지저분 해지거나 버그가 발생 할 수 있는 확률이 상승한다.
추후 팀원들과 상의하고 기술스텝들에게 문의하여 진행 하도록 할 예정