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



주요 기능
처음 접해보는 기술들이 많았지만, 팀원들과 함께 아래 기능들을 구현했다:
- 다양한 전략을 구사할 수 있는 타워와 몬스터 시스템
- MySQL과 연동한 실시간 랭킹 시스템
- JWT를 활용한 회원 관리 시스템
💡 핵심 구현 사항
1. 실시간 게임 로직
Socket.IO는 여전히 어려운 기술이지만, 문서를 꼼꼼히 읽고 팀원들과 함께 고민하며 구현했다:
- 실시간 게임 상태 동기화 (가장 어려웠던 부분)
- 플레이어 간 동기화를 위한 타임스탬프 기반 상태 관리
2. 캔버스 렌더링
Canvas도 처음 다뤄보는 기술이었지만, 많은 것을 배울 수 있었다:
3. 게임 시스템
게임 기획부터 구현까지 전부 처음이라 많은 시행착오가 있었다:
- 난이도 조절이 가능한 웨이브 시스템
- 전략적 요소를 살린 타워 업그레이드 시스템
- 밸런스 조절이 필요했던 골드 시스템
📚 배운 점
기술적 측면
-
실시간 통신의 복잡성
- 처음에는 단순해 보였던 실시간 통신이 생각보다 많은 고려사항이 필요했다
- 네트워크 지연, 데이터 동기화 등 새로운 개념들을 배웠다
-
협업을 위한 코드 작성법
- 다른 사람이 읽기 쉬운 코드를 작성하는 것의 중요성을 배웠다
- 주석 작성과 변수 명명 규칙의 중요성을 체감했다
프로젝트 관리 측면
-
시간 관리의 어려움
- 예상보다 모든 것이 더 오래 걸린다는 것을 배웠다
-
팀 커뮤니케이션의 중요성
- 토론의 중요성을 배웠다
- 작은 오해가 큰 시간 낭비로 이어질 수 있다는 것을 배웠다
🌟 KPT 회고
Keep (잘한 점)
- 프로젝트 시작 전 웹소켓 이벤트 명세서와 폴더 구조를 확실히 정한 것이 큰 도움이 되었다
- 매일 진행 상황을 공유하려 노력했다
Problem (문제점)
- 코드 모듈화에 대한 이해가 부족해 나중에 유지보수가 어려워졌다
- Git 충돌 해결에 많은 시간을 소비했다
- 테스트 코드 없이 개발을 진행해 버그 발견이 늦어졌다
Try (시도할 점)
- 다음 프로젝트에서는 설계 단계에서 모듈화를 더 신경 쓰겠다
- Git flow 전략을 제대로 학습하고 적용해보겠다
🌟 결론
이번 프로젝트는 실시간 게임 개발의 전반적인 프로세스를 경험할 수 있었다. 특히 Socket.IO를 활용한 실시간 통신과 Canvas API를 이용한 게임 렌더링 과정에서 많은 것을 배웠다.
가장 큰 깨달음은 '혼자'가 아닌 '함께' 만들어간다는 것이었다. 앞으로도 더 나은 개발자가 되기 위해 꾸준히 학습하고, 팀 프로젝트에서 배운 교훈들을 잊지 않도록 하겠다.