v1은 기본적인 채팅방 CRUD
1.기획
-기업협업에서 사용했던 websocket이 너무 흥미로웠기 때문에 개인프로젝트에 연결시키기로 결심
2.사용스택
Frontend
-React
한달동안 Nuxt만 썼더니 React실력이 줄어든게 몸으로 체감되었다. 그래서 react로 진행
Backend
-Nodejs
-Express
Database
-MongoDB
기업협업에서 사용했던 NoSQL이 장점이 많다고 생각되었다. 최근들어 데이터의 중요성이 늘어나는데 그럴수록
NoSQL이 빛을 발한다고 생각한다. 비정형적인 데이터들이 많고 이것들을 쌓고 저장하려면 기존의 RDB보단
NoSQL이 좋다고 판단되었고 MongDB는 점유율 역시 높기 때문에 배울 가치가 있다고 생각되어 도입하게 되었다.
Deploy
-Heroku
원래는 AWS로 배포를 진행하려고 했지만 돈이 부족하였기 때문에 일단 빠르게 취업을 하기위해 heroku로 배포를 진행했다.
3.프로젝트 구조
-MongoDB 생성
-Express 서버 구성
-React client 구성 -axios 를 통한 백엔드와 통신
개발도중 발생한 에러
3-21 cors에러 프록시 설정 해결
"proxy": "http://127.0.0.1:5000",
"changeOrigin": true,
"secure": "false",
3-22 input undefined에러 해결
Warning: A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component
input 의 value에 undefined가 들어갔을 경우에 대한 처리가 없다는 것과 관련=
input의 value가 undefined일 때 ''가 들어올 수 있도록 하면 된다.
3-22 heroku배포 에러 해결
2021-03-22T13:00:59.451667+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=realtime-v1.herokuapp.com request_id=f2a8c780-0d69-45ab-96c3-f48a9f0741d4 fwd="218.155.71.31" dyno= connect= service= status=503 bytes= protocol=https
2021-03-22T13:00:59.911139+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=realtime-v1.herokuapp.com request_id=74bf59b1-940e-4cf0-acff-b8d6d264c6f7 fwd="218.155.71.31" dyno= connect= service= status=503 bytes= protocol=https
Procfile에서 web: node backend/server.js
web다음에 띄어쓰기해서 안되는거였음 너무 화난다. stackoverflow만 3시간을 뒤졌는데 ㅂㄷㅂㄷ
여기까지 버전 1이다.
heroku로 v1배포 확인. 몽고디비로 추가 삭제 확인.