정글일지 49
날짜
2023년 6월 9일 금요일
계획
- colyseus document로 서버 공부
- mongoose document 공부
- skyoffice 서버 MongoDB 연결
- skyoffice Custom room 생성 시 정보 저장 구현
- 채점 서버 구현
결과
- 서비스에서 기존에 생성되는 Data를 추출하여 MongoDB에 저장할 수 있게 되었다.
- User Data 관련 구현은 초혜에게 인수인계 하였다.
- 채점서버에 관한 구현 예정
TIL
Skyoffice 서버 DB 연결(1)
목표
기존 Skyoffice에서 User가 Custom room을 만들면 Room 정보가 내 MongoDB에 저장되도록 구현
1차 시도
기간
시작 : 6월 8일 목요일 19:00
종료 : 6월 9일 금요일 17:00
방식
-
colyseus Documentation 참고
-
para-solo 서버 코드 참고
-
두 자료를 참고하여 user data 저장 구현 시도
결과
실패
회고
이것저것 다 짬뽕시킬려니 당연히 실패한다. 차근차근 해야겠다. 코드를 이해하지 못하고 그냥 보이는거 다 쑤셔넣고 있었다. 차근차근 해야할 필요가 있다.
2차 시도
기간
시작 : 6월 9일 17:00
종료 : 6월 9일 20:30
방식
-
skyoffice 코드 참고
-
typescript 와 mongoDB 서버 구현 공부
-
mongoose document 공부
-
user data 저장 구현 시도
결과
실패
회고
하.. client가 안돌아간다.
skyoffice 구동인 yarn && yarn start
는 작동되지 않는다.
colyseus 구동 npm start
는 된다. 그래도 mongoose 연결은 안되는 것같다.
현재 User DB도 추가하여 연결하려는게 너무 욕심인 것 같다.
일단 연결만 하고 Skyoffice에서 유일하게 발생하는 Room DB만 통신하도록 구현해봐야겠다.
3차 시도
기간
시작 : 6월 9일 20:30
종료 : 6월 9일 22:15
방식
-
skyoffice 코드에서 user 관련 데이터를 추가로 만들지 않고, 기존 방식으롷 생성되는 custom room에 대한 data를 내 mongoDB에 저장해보자
-
mongoose document 참고 예정
-
skyoffice document 참고 예정
결과
성공
회고
npm install mongoose --save
후에 index.ts
에 mongoDB URL 만 넣어줬다.
서버는 npm start
로 가동함 (yarn && yarn start
가 안된다.)
클라이언트 가서 yarn && yarn dev
실행해봄
MongooseServerSelcectionError: connect ECONNREFUSED 오류 발생
MongoDB URL 에서 localhost를 127.0.0.1 로 바꿈 => 연결 성공!
연결만 되었을 뿐, 데이터가 저장되지 않는다.
이제 내가 만든 room을 어떻게 집어넣지..? CRUD를 구현해야 하는듯 하다!
CRUD : Create, Read, Update, Delete 를 말한다.
컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능을 뜻함.
즉, 나는 원하는 것을 ‘데이터’로 설정(?)하는데 성공했지만 그걸 다루는 건 전혀 구현하지 않았다!
우선 ‘저장’하는 것을 만들자.
언제 저장해야하지..? 만들어질 때 저장되야 한다는 게 내 생각이였다.
그럼 언제 만들어질까? 파일을 찾아보니 onCreate라는 인터페이스가 실행될 때 저장도 이뤄도지도록 하면 되겠다고 생각했다.
room/SkyOffice.ts
에서 custom room을 만들면 실행되는 onCreate 내에
const newMap = new MapModel
에 각각 유저가 입력한 데이터로 연결해주었고
newMap.save
도 넣어줬더니
드디어 custom map을 만들면 MongoDB에 들어간다! 만세!
이제 기존에 존재하는 데이터를 찾아 저장하는 걸 익혔다!
회고
드디어 내가 무언갈 해냈다.. 참으로 기쁘다. 하지만 여전히 우리 서비스의 방향성에 대해서는 확신도, 정해진 것도 없다. 부정적인 피드백을 받았던 것에서 더 나아진 게 없기 때문이다. 하지만 핵심을 빨리 구현하면 길이 보이지 않을까? 접속해서 문제를 보고 코드를 입력해서 실행해 보는것, 채점받는것. 접속하면 유저 정보가 저장되는 것. 빨리 구현해야겠다.
Pintos때 공식 document를 좀 보라는 코치님의 말씀이 떠올라서 mongoose document를 찾아봤다. 확실히 schema, model 등에 대해 조금은 더 체감이 되었다. 완전히 알았다고는 못하겠지만.. 앞으로도 블로그와 유튜브만 찾지말고 공식문서부터 들여다 보는 습관을 들여야 겠다. 그리고 구현엔 욕심 부리지말자. 차근차근 해내야 빨리 갈 수 있다.
중이염은 얼추 다 나은것같은데 외이도염 때문에 아직도 귓구멍이 부어있다. 두통도 너무 심하다.. 오늘에서야 알게 된건 내가 처방받은 약에 소염제와 항생제만 있고 진통제가 없다… 어쩐지 아파 죽을것같더라니.. 타이레놀 먹으니 그래도 좀 살 것 같다. 잠을 자야 낫던가 할텐데 큰일이다. 일요일에 쉴 수 있을까? 내가 하기에 달린거겠지. 갈길 아직 멀다. 화이팅