타워 디펜스 팀 프로젝트 회고

ssini·2025년 1월 2일
0

📋 프로젝트 개요

프로젝트 소개

  • 프로젝트명: 내배캠 타워디펜스
  • 프로젝트 설명: Socket.IO 기반 실시간 멀티플레이어 게임 프로젝트


주요 기능

처음 접해보는 기술들이 많았지만, 팀원들과 함께 아래 기능들을 구현했다:

  • 다양한 전략을 구사할 수 있는 타워와 몬스터 시스템
  • MySQL과 연동한 실시간 랭킹 시스템
  • JWT를 활용한 회원 관리 시스템

💡 핵심 구현 사항

1. 실시간 게임 로직

Socket.IO는 여전히 어려운 기술이지만, 문서를 꼼꼼히 읽고 팀원들과 함께 고민하며 구현했다:

  • 실시간 게임 상태 동기화 (가장 어려웠던 부분)
  • 플레이어 간 동기화를 위한 타임스탬프 기반 상태 관리

2. 캔버스 렌더링

Canvas도 처음 다뤄보는 기술이었지만, 많은 것을 배울 수 있었다:

  • 프레임 단위로 동작하는 스프라이트 애니메이션

3. 게임 시스템

게임 기획부터 구현까지 전부 처음이라 많은 시행착오가 있었다:

  • 난이도 조절이 가능한 웨이브 시스템
  • 전략적 요소를 살린 타워 업그레이드 시스템
  • 밸런스 조절이 필요했던 골드 시스템

📚 배운 점

기술적 측면

  1. 실시간 통신의 복잡성

    • 처음에는 단순해 보였던 실시간 통신이 생각보다 많은 고려사항이 필요했다
    • 네트워크 지연, 데이터 동기화 등 새로운 개념들을 배웠다
  2. 협업을 위한 코드 작성법

    • 다른 사람이 읽기 쉬운 코드를 작성하는 것의 중요성을 배웠다
    • 주석 작성과 변수 명명 규칙의 중요성을 체감했다

프로젝트 관리 측면

  1. 시간 관리의 어려움

    • 예상보다 모든 것이 더 오래 걸린다는 것을 배웠다
  2. 팀 커뮤니케이션의 중요성

    • 토론의 중요성을 배웠다
    • 작은 오해가 큰 시간 낭비로 이어질 수 있다는 것을 배웠다

🌟 KPT 회고

Keep (잘한 점)

  • 프로젝트 시작 전 웹소켓 이벤트 명세서와 폴더 구조를 확실히 정한 것이 큰 도움이 되었다
  • 매일 진행 상황을 공유하려 노력했다

Problem (문제점)

  • 코드 모듈화에 대한 이해가 부족해 나중에 유지보수가 어려워졌다
  • Git 충돌 해결에 많은 시간을 소비했다
  • 테스트 코드 없이 개발을 진행해 버그 발견이 늦어졌다

Try (시도할 점)

  • 다음 프로젝트에서는 설계 단계에서 모듈화를 더 신경 쓰겠다
  • Git flow 전략을 제대로 학습하고 적용해보겠다

🌟 결론

이번 프로젝트는 실시간 게임 개발의 전반적인 프로세스를 경험할 수 있었다. 특히 Socket.IO를 활용한 실시간 통신과 Canvas API를 이용한 게임 렌더링 과정에서 많은 것을 배웠다.

가장 큰 깨달음은 '혼자'가 아닌 '함께' 만들어간다는 것이었다. 앞으로도 더 나은 개발자가 되기 위해 꾸준히 학습하고, 팀 프로젝트에서 배운 교훈들을 잊지 않도록 하겠다.

0개의 댓글

관련 채용 정보