네온 루트 프로젝트를 진행하며,
팀장 역할을 맡아 프로젝트의 개발 일정과 작업 분배, 팀원 간 진행 상황을 조율하며 팀 단위의 개발 과정을 주도 해보는 경험을 쌓을 수 있었습니다.
개발에 있어 기능 구현을 넘어 유지보수성과 협업을 고려한 코드 구조와 설계에 대해 본격적으로 고민하게 되었습니다. 여러 시스템이 연결되고 프로젝트의 규모가 커지는 과정에서 객체의 책임과 의존성, 상태 및 데이터 관리 방식이 코드의 확장성과 안정성에 미치는 영향을 경험했습니다.
또한 Pull Request 과정에 코드 리뷰를 필수적인 개발 절차로 적용하며, 다른 개발자의 코드를 직접 읽고 구현 의도와 구조를 파악해 피드백을 주고받는 경험을 쌓았습니다. 이를 통해 단순히 자신의 기능을 완성하는 것을 넘어, 다른 개발자가 이해하고 수정하기 쉬운 코드를 작성하고 서로의 코드를 함께 개선하는 협업 방식의 중요성을 배웠습니다.
리팩토링 리스트
| 스크립트 | 대상 | 개선 | 완료 |
|---|---|---|---|
| InventoryManager | 카드 효과 적용부 | Elements[] 상수 범위 순회 → foreach | |
| InventoryManager | new int[3], (indext + 1) % 3 | 상수 제거 후 변수로 컨트롤 | |
| LevelCardUI | UI Element 3개 고정 | ‘’ | |
| 카드 시스템 | cardId +- 1 로 업그레이드 | SO 에 Upgrade 관계 명시 | |
| 카드 시스템 | switch 부분 하드코딩 | Strategy/Data-driven 구조로 변경 | |
| Player 참조 | transform.Get 및 FindWithTag | 명시적 참조/컴포넌트 탐색으로 변경 | |
| EXPManager | 전체 | 안 쓰이니 삭제 | |
| PlayerStat | Enemy 충돌 판정 | LayerMask 비트 연산으로 변경 | |
| PlayerStat | StatDic 공개 | 공개하지 말고 함수로 처리 | |
| GameTime | Time 및 GameTime | 어디에 쓰이는지 명시적 분류 후 수정 | |
| Pixel | 32 를 상수로 쓰고 있는 거 | 상수 캐싱 해서 공통적으로 관리하기 | |
| 각 Manager | 싱글톤 및 개방 데이터 | 데이터 및 상태에 대한 책임/결합도 분리 | |
| 각 Manager | public 데이터 | 외부에서 직접 값 변경X, 함수로 반환하기 | |
| 각 Event | OnCreditChanged, OnProtocolChanged | 구독 해제 | |
| 전체 | 사용되지 않는 필드, 접근제한자 정리 및 주석 개선 | ||
| 전체 | 그 외 매직 넘버들,, | SerializeField/SO/상수 로 빼기 |
개인적인 개선점
작업 처리 부문
코드 부문