colyseus, skyoffice 공부

나만무 9일차 TIL

정글일지 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 등에 대해 조금은 더 체감이 되었다. 완전히 알았다고는 못하겠지만.. 앞으로도 블로그와 유튜브만 찾지말고 공식문서부터 들여다 보는 습관을 들여야 겠다. 그리고 구현엔 욕심 부리지말자. 차근차근 해내야 빨리 갈 수 있다.

중이염은 얼추 다 나은것같은데 외이도염 때문에 아직도 귓구멍이 부어있다. 두통도 너무 심하다.. 오늘에서야 알게 된건 내가 처방받은 약에 소염제와 항생제만 있고 진통제가 없다… 어쩐지 아파 죽을것같더라니.. 타이레놀 먹으니 그래도 좀 살 것 같다. 잠을 자야 낫던가 할텐데 큰일이다. 일요일에 쉴 수 있을까? 내가 하기에 달린거겠지. 갈길 아직 멀다. 화이팅