사람은 자기가 한 약속을 지킬 만한 좋은 기억력을 지녀야 한다.
- 프리드리히 니체 -
어제 생각했던 해야할 것에서 API표에 room 관련된 모든 데이터 response 부분에 memberStatus 보내 주는 부분 추가 했다.
오전에는 소켓을 다른 폴더 내에서 서버측 클라이언트 측을 열어 연결되는 것을 확인 하는 작업을 했다.
우선 연결이 되어야 우리가 하려던 것을 테스트 해가며 나아갈 수 있기 때문에 가장 먼저 해야할 부분이라고 생각했다.
클라이언트 폴더와 서버 폴더가 같은 root내에 있을 때는 정상 작동 하던게 따로 떨어트렸을 때 안되는 문제가 있었는데 문제는 socket.io의 버전이었다. 따로 떨어트렸을 때는 socket.io의 버전을 최신버전(4.1.3)을 사용했고, 원래는 2.2.0으로 되어있었다. 2.2.0으로 pakage.json 파일에 써서 설치하니 정상적으로 돌아갔다. (npm i 입력하니 2.4.1이었나로 바뀌었다.) 처음에는 버전이 socket.io-client와 socket.io와 안맞아서 생긴 줄 알았는데 그건 아니었다. 그리고 정확하진 않지만 socket.io 버전에 따라 문법도 조금씩 달라지는 것 같았다. 이래서 기존 코드를 최신버전 소켓을 깔면 안되는듯 했다.
구글링으로 원인을 잘 찾아보는 부류였다면 금방 해결했을 문제를 검색없이 부딪혀 보자 하고 원인을 직접 찾으니 오전 시간이 다 가버렸다. (오후도 살짝 썼음)
이후에 새로 산 도메인을 연결해서 클라이언트 주소로 접속해 여러가지 테스트를 해보고 느낀 점이나 버그를 발견하고 수정 요청을 드렸다. 자잘한 API 추가와 수정도 있었고 에러핸들링 추가도 조금 있었다.(이것도 다 해줘야하는데 우선순위가 밀린 느낌이다.)
코드를 살펴 보는데 방 삭제할 때 쿼리를 6번 사용하고 있었다. 삭제관련 쿼리 5번, find 1번으로 Room을 참조하는 게 아닌 Room 내부에 데이터를 담는 subDocument 형식을 했으면 쿼리 2번에 해결되는 문제였다. 하지만 이렇게 했을 때 삭제 말고 다른 부분에서 어떻게 변할 지에 대한 연쇄적인 부분까지 생각할 레벨은 안되서 무엇이 맞는 방법인지 나눠서 생각해봐야할 것 같다. (API별로, 기능별로, 작성할 때, 수정할 때, 삭제할 때 등등)
하나의 파일에 코드가 450줄이 넘는 것도 있고 500줄이 되는 것도 있어 리팩터링이 필요해 보인다. 원하는 API 찾는데만 한세월 걸리고, 찾았다 하더라도 한눈에 쉽게 딱 보이도록 바꾸고싶다.
토요일에 팀 발표가 있는데 예상 질문 중 DB설계 어떻게 했는지 왜 했는지, mongoDB 선택 이유 와 같은 것들이 있는데 대답을 생각해놔야 할 것 같다. 아직까지는 레벨이 많이 낮은 것 같다.
배포되어있는 프론트 엔드 측 주소로 접속해 이것 저것 테스트 하고 관련 사항에 대해 요청을 드렸다.
소켓 관련된 부분은 팀원 분이 진행중이신데 새로 ec2를 파서 테스트를 진행 하고 있다. 소켓 연결이 되고 데이터 송수신이 되는 과정과 DB에 저장 되는 것 까지 확인했다.
- 내일 해야될 것들
- 프로젝트 아키텍처 만들기
HTTPS 적용 배포
간략한 코드 리뷰 및 진행사항 점검
어려웠던 점과 해결한 과정들(우리 서비스의 특징과 연관 지으면 좋을 듯)
예상 질문 리스트 작성
예상 질문 답변 작성
우리가 하고 싶은 질문들 작성
배포 후 테스트 및 버그, 오류 등 찾기
오류나 버그 수정하기
유저 입장에서 계속 생각하기!
아래는 DB관련해서 보기 쉬운 것들 링크(NoSQL, SQL 차이), 쿼리 관련 내용
남병관 튜터님의 쿼리를 최소화 하라는 말씀이 떠올라서 조금 찾아보고 고민해봤다.
구름EDU - 모두를 위한 맞춤형 IT교육
구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/
edu.goorm.io
https://saegeullee.github.io/nodejs/mongoose-basic
Mongoose 스키마 & 쿼리 기본 - Blog by saegeullee
유데미 NODE.JS 수업을 듣고 정리한 내용입니다. 목차 몽구스란 몽구스는 MongoDB를 Nodejs에서 사용하기 쉽게 추상화해놓은 ODM(Object Data Modeling) 라이브러리이다. 몽구스를 통해 MongoDB와 상호작용하는
saegeullee.github.io
'TIL' 카테고리의 다른 글
20210814(토) [항해 69일 차] 중간점검 (0) | 2021.08.15 |
---|---|
20210813(금) [항해 68일 차] 중간발표 D-1 (0) | 2021.08.14 |
20210811(수) [항해 66일 차] (0) | 2021.08.12 |
20210810(화) [항해 65일 차] (0) | 2021.08.11 |
20210809(월) [항해 64일 차] (0) | 2021.08.10 |