<WIL>실전프로젝트 1주차 종료(회고록)

박건영(Parkgunyoung)·2022년 7월 3일
0

WIL

목록 보기
8/8

기존에 기획을 했었던 Scatch라는 캐치마인드 게임을 모티브로한 기획이 기술적인 한계에 부딪혀 결국 포기를하게 되었다....

가장 핵심기술이였던 웹소캣을 이용한 캔버스 그림판과 채팅 연결은 해결법을 찾은 듯 하였으나 웹소캣을 이용하면서 그 위에 필요한 로직들이 돌아가게 만드는 법에 대해 해결법을 찾지못하였다.... ㅜㅠ


구현하려던 로직은 다음과 같다.

  1. 로비에서 게임방을 생성한다(웹소캣이 연결될 방을 만든다 = pub/sub 구조를 이용할 Topic 생성)
  2. 게임방에 입장을 하면 http 에서 ws로 업그레이드(단방향 통신에서 양방향 통신으로 변환)
  3. 인원이 다 차거나 방장이 게임 시작 버튼을 누르면 게임이 시작된다.
  4. 게임시작이 되면 출제자(권한)이 랜덤 또는 순차적으로 배정이 되야 한다.
  5. 출제자에게는 db에 저장되어진 단어중 3개가 랜덤으로 보여지고 선택을 하게된다.
  6. 캔버스 그림판에 그림을 그릴 수 있는 권한은 출제자에게만 있다
  7. 선택을 한 단어를 출제자가 캔버스 그림판에 그림을 그려가며 참여자들은 출제자가 그리는 그림을 보며 채팅을 통해 그 단어를 맞추게 된다.
  8. 설정한 시간초가 다 지나거나 참여자가 채팅을 통해 정답을 맞추었을 때 다음 라운드가 시작되고 출제자는 랜덤 또는 순차적으로 바뀐다.(권한의 이동)(익명의 개발자 분에게 들은 조언으로는 루프, 러너블, 서비스 등 을 이용해야 한다 들었지만 아직까지 이해를 잘 하지 못하였다...)

<예외 상황>

  1. 위의 게임 시작부터 종료까지의 구현 이외에도 생각해야할 예외는 만약 참여자가 중간에 들어왔을 때 그림판에 그려지는 그림들을 들어온 순간부터 그려지는 것들만 보여 줄 것이냐(캔버스에 그려지는 x,y 좌표들을 받자마자 참여자들에게 그대로 리턴함), 아니면 마우스이벤트가 발생할때 그림판에 그려지는 것들을 이미지로 base64로 인코딩하여 db에 저장 해두었다가 중간 참여자가 들어오거나 게임에서 예기치 못하게 튕겼다 다시 들어오는 참여자들에게도 그려지던 그림들을 db에서 꺼내와 이어서 보여줄 것이냐 라는 것도 해결해야 할 문제 였다.
  2. 만약 출제자가 웹소캣 연결이 끊길 경우 그 라운드를 종료시키고 출제자 권한을 넘겨준다.
  3. 만약 출제자와 참여자들이 한 명씩 게임 방을 나가게 되고 게임방에 한 명만 남게 되었을 경우에는 게임이 자동을 종료되게 만든다.

사실 기획을 할 때에는 주제가 너무 재미있어 보였고 처음 써보는 웹소캣이라는 기술을 복잡하게 사용하는 것에 도전적인 의미가 있어 팀원들의 동의를 얻고 시작을 하게 되었다.

그러나 기획을 하면서 필요한 기술적인 부분들을 하나씩 적어내려가다 보니 그냥 도전이 아닌 정말 6주라는 프로젝트 기간안에 끝낼 수 있을지 의문이 들게 되었다,,,

첫 주차에는 처음 써보는 웹소캣을 구현하기 위해 수많은 구글링과 레퍼런스들을 참고해가며 어떤 방식으로 굴러가고 어떻게 해야 리액트와 스프링이 연결을 하여 사용할 수 있울지에 대해 공부를 하였다.

웹소캣을 이용한 채팅 기능 구현에는 정말 좋은 레퍼런스들이 많아 기본적인 틀을 이해하는데 있어 어렵지 않았지만 캔버스 그림판을 웹소캣을 이용해 연결 시키자니 어떤 방식으로 pub을 하고 sub을 한 사람들에게 돌려주어야 할 지 감이 오질 않았다.

캔버스의 경우 마우스 이벤트가 발생할 때 x,y 좌표 갑들을 전달받아오고 이걸 다시 방을 구독한 사람들(sub)에게 뿌려준다.
연결을 하는 방식은 일주일동안 웹소캣을 공부하고 레퍼런스 중 하나였던 글을 작성하신 개발자분에게 조언을 받아 해결이 될 것 같았지만 위의 기본적인 게임 로직들과 예외 상황들을 구현하는데 있어 아직은 실력이 너무 부족함을 느꼈고 6주라는 시간 중 1주차가 끝나가다보니 조급한 마음과 불안한 마음이 깊어져 갔다.

결국 이 기획을 계속해서 끌고 나가기에는 도전적인 의미는 정말 크나 더 많은 시간이 지났을 때에도 진행상황이 계속해서 제자리 걸음일 경우 그때에는 돌이킬 수 없을 것 같다는 판단을 하게 되었다...

정말 포기하지 않고 따라와주는 팀원들에게 너무나도 죄송스럽고 이 기획에 필요한 기술들과 현재의 프로그래밍 능력을 깊게 고려하지 못한 것 같다는 생각에 그저 죄송스러운 마음 뿐이다...
또한 와이어프레임을 끝내가는 디자이너분께도 정말 죄송스러웠다...

Scatch라는 게임 기획은 이렇게 포기를 하게 되었고 팀원분들과 함께 정말 누구하나 빠짐없이 최선을 다했기에 아쉬운 마음도 너무 컸다..
만약 기회가 된다면 이 항해99의 모든 일정이 다 끝나게 되면 함께 다시 도전을 해보고 싶은 팀원분들과 다시 시간적 여유를 가지고 도전해보고 싶다!


Scatch(나중에 이 글을 다시 읽을 때 하나의 추억으로 간직하기 위해 남겨본다)


현재는 새로운 기획을 하게 되었고 개발바닥 이라는 개발자 사이드프로젝트 멤버 모집을 하는 웹사이트를 기획하게 되었다.

일주일이 지나버렸고 앞으로 남은 기간은 5주이다.

기획을 엎게 되었지만 앞선 일주일의 시간이 절대 헛되지 않았다고 생각한다!

남은 기간동안 최선을 다하여 다시 기획한 프로젝트를 잘 완성시켜보자!!!

항상 열심히 최선을 다해주시고 너무나도 부족한 부리더를 따라와주시는 팀원분들께 너무나도 감사드립니다 ㅜㅠ

profile
쓰러지면어때일어나면그만인걸

0개의 댓글