되돌아보기

[WIL] 항해99 8주차 회고ㅣ실전 프로젝트

오늘 ONEUL 2023. 1. 8. 16:30

 

이번 주 톺아보기

벌써 8주 차라니? 시간이 너무 빠른 거 아닌가🤦‍♀️

드디어 실전 프로젝트 돌입!
우리 팀은 눈치, 캐치, 코치! (Trys' ketch) 라는 드로잉 게임을 개발 중이다.
기획 단계부터 쉽진 않았지만, 팀원들과 오랜 회의 끝에 모두가 즐겁게 만들 수 있는 게임으로 결정하게 되었다.

이번주에는 다음과 같은 일들을 진행하였다.

  • 기술 스택 결정
    • Spring Boot
    • WebRTC + WebSocket(SockJS, STOMP)
    • Redis, AWS RDS(MySQL)
  • 협업 규칙 설정
    • 코딩 컨벤션
    • Git 컨벤션
  • ERD 작성
    • Redis 적용에 러닝커브가 있어 일단은 MySQL 기준으로 ERD 작성
    • 추후 휘발성 데이터를 구분하여 Redis로 적용 예정
  • API 명세서
    • 기존 Rest API 방식이 아닌 소켓 통신 방식에 어려움을 겪어 데이터의 흐름을 이해할 정도로만 작성
    • 소켓 통신에 대한 이해 필요
  • WebRTC, WebSocket, SockJS, Stomp 조각 기능 테스트
    • WebRTC, WebSocket(SockJS, Stomp) 각각 기능 테스트
    • 간단한 예제를 적용하여 Server와 Client 연결 후 텍스트 전송 성공
    • 최대 8명의 음성 채팅 구현 필요

 

 

😀 잘한 점

  • 끝까지 파고들기
    • 아무래도 게임이 리얼 타임 기반의 서비스이다 보니 기존에 사용하던 HTTP 통신 방식이 아닌 소켓을 이용한 실시간 통신이 필요했다. 거기에 음성 대화 기능까지 추가하기 위해 WebRTC + WebSocket을 선택하게 되었다.
    • WebRTC를 구현하기 위해서는 서버에서 Signaling Server를 구축해야 했는데 도저히 이해가 가지 않아서 Github에 온갖 example을 뒤져가며 맨 땅에 헤딩하다가 마침내 프론트엔드와 조각 기능 구현에 성공했다.
    • WebSocket도 마찬가지로 클라이언트와의 연결부터 시작해서 작은 기능 단위로 확장해가며 1:1 채팅 구현에 성공했다.
    • 생전 처음 보는 코드에 머리가 어질 했지만, 뭐.. 못할 건 없지. 일단 그냥 들이받는 거다.

 

🙁 아쉬웠던 점

  • 효율적이지 못한 시간 활용
    • 물론 열심히 파고든 건 맞지만, 내가 맡은 WebRTC + WebSocket 부분이 메인 게임 로직을 개발하기 위해서는 반드시 선행되어야 했는데 여러 시도를 하다 보니 생각보다 구현이 늦어졌다.
    • 기술을 이해하고 사용하는 것도 중요 하지만 우리에게 시간은 한정되어 있기 때문에 그 시간을 잘 활용하는 것도 중요하다.
    • 팀원들에게는 너무나 미안할 따름...😭

 

 

다음 주에는 개선해 보기

  • 데드라인을 정하고 시간 내에 반드시 구현하기
  • 팀원들과 더 자주 소통하기
  • 컨디션 관리.. 필수..

 

 

이번 주의 나는

이전 주차들을 진행하면서 '과연 내가 실전 프로젝트 때 잘할 수 있을까?'라는 걱정이 많았는데
눈앞에 닥치니 어떻게든 하고 있는 나를 발견😂

조금 더딘 것 같은 진도에 조바심이 났던 것도 사실인데
멘토님께서 새로운 기술이니 그만큼 공부하는 게 당연하다고, 잘하고 있다고 해주셔서 마음이 좀 놓였다.

정신 차려보면 하루가 지나있고, 미친 듯이 바쁜 나날의 연속이지만
팀원들과 기술에 대해 토론하고, 더 나은 서비스를 고민하는 일들이 새삼 즐겁다.
뒤돌아봤을 때 후회가 남지 않도록 최선을 다해 덤벼들자.