[프로젝트 회고록] YS Mafia

도라희·2023년 3월 4일
0

회고록

목록 보기
1/2
post-thumbnail

👉

청년취업사관학교 새싹에서 풀스택 웹 융합 개발자 양성 과정을 들은 지 벌써 4개월 정도가 지났다. 그 전에도 팀 프로젝트를 진행했었는데, 그 팀 프로젝트는 React를 사용하지 않고 EJSJS를 사용해서 만든 프로젝트였다. 그리고 이번에 React를 사용해서 팀플을 진행할 수 있는 기회가 왔다. 그 프로젝트는 회고록을 작성하지 않았지만, 이번 프로젝트의 회고록을 작성하는 이유는 재미있는 프로젝트였기 때문이다. 그 전 프로젝트는 그저 잘 해야겠다라는 생각으로 했지만, 이번 프로젝트는... ㅋㅋㅋㅋ 일단 돌아가기만 하면 된다라는 마인드로 했기 때문이다. 우리의 팀 마인드는 파이팅 하지 말고 힘 내지 말고 건성건성 하자. 이 말이 독이었을까... 프로젝트 발표 전날은 거의 아비규환이었다... 그래서 뭘 만들었냐고? 우리는 Socket.io 를 메인으로 한 마피아 게임을 웹으로 만들었다. 마지막엔 거의 기도 메타였음...

🥲

내가 한 페이지의 모습이다. 나는 FE 을 맡았고, 저기까지 오는 것만 해도 다사다난한 일들이 많이 있었다. 리액트를 처음 써 보기도 했고, Socket.io도 리액트로 처음 써 보는 것이었기 때문에 너무 어려웠었다. 심지어 내가 맡은 GamePage는... 우리 프로젝트의 메인이었기 때문에... 하얗게 불태웠어.

초반에는 몰랐지만 Redux에 저장해 놓는 것이 엄청나게 중요한 것이라는 것을 알았다.

const initalState = {
  /** wait(게임 시작전), playing(게임 중), end (게임 종료) */
  gameStatus: 'wait',
  /** dayDiscussion(낮 토론 시간),dayVote(낮 투표 시간),dayFinal(최후변론), dayFinalVote(찬성반대투표시간), night(밤) */
  timeStatus: 'day',
  /** alive(살아있음), dead(죽음) */
  myStatus: 'alive',
};
const initState = {
  /** 방 번호 */
  roomID: '',
  /** 유저 목록 */
  userList: ['', '', '', '', '', '', '', ''],
  /**유저 nickname 목록 */
  nameInRoom: [],
  /** 직업 목록 mafia 마피아 */
  jobList: [],
  /** 내 직업 */
  myJob: '',
  /** 내 소켓 아이디 */
  mySocketId: '',
  /** 지목 투표 많이 당한 사람 */
  finalistId: '',
  /** 죽은 유저 목록 */
  killedUserList: [],
  /** 마피아가 고른 사람 */
  mafiaPickId: null,
};

이렇게 Redux로 정리한 것들을

  const { gameStatus } = useSelector((state) => state.status);
  const { userList, myJob } = useSelector((state) => state.room);

이런 식으로 가져와 쓰면 된다는 것이 얼마나 편하던지... 초반에는 아무것도 몰라서 그저 한 Components에 다 때려박고 Props로 가져오면 되겠지? 라는 식으로 생각했다. 하지만 그것은 진짜 멍청한 생각이었다는 것을... 친구에게 SOS를 쳤었는데, Redux 사용 법을 알려 주었었다. 그 이후로 나는 신세계를 체험했다. Redux가 없는 상태로 코딩을 했던 나는 이걸 진짜 어떻게 해? 했는데, Redux가 있는 상태로 코딩을 했던 나는 코딩이 처음으로 재미있었다.

🎉

발표까지 그저 게임 페이지만 돌아가면 된다고 생각하면서 처음 회의 때 팀원들과 나눴던 모든 직업들을 다 빼고, 마피아와 시민만 넣었었다. 그래서 아직도 우리의 마피아 게임은 ㅋㅋㅋ 시민과 마피아 밖에 없다. 심지어 6번 째로 입장한 사람은 무조건 마피아가 되는... 이것도 코드를 다시 짜면 아예 랜덤으로 돌릴 수 있는데...

게임개발자가 왜 야근을 하는지 알게 된 프로젝트... 그리고 게임을 만들다 보니 유난히 버그가 많았는데, 이게 진짜 웃긴게 자려고 누우면 어떻게 해 봐야겠다라는 게 생각이 난다는 것이다.

이 짤이 진짜였어...

그래도 뭔가 진짜 배운다! 라는 느낌을 이번 팀플을 진행하면서 느꼈었다. 진짜 내 코딩인생 중 제일 보람찬 시간이었을지도. 제대로 작동하는 게 게임페이지 밖에 없어서 아직 미완성인 프로젝트... 직업을 조금 더 추가하고, 로그인도 카카오 로그인 네이버 로그인이 아닌, 일회성 로그인으로 바꾸고 싶다. 팀플은 끝났지만, 나 혼자라도 진짜 완성해 보고 싶다는 생각이 들었다.

profile
개발이 뭔가요

0개의 댓글