회고록이라 적지만 주저리 주저리 일기장이니 참고 바랍니다.
올해 초 부터 8월 초가 되어야 끝난 기나긴 프로젝트가 막을 내렸다.
전공자이지만 유니티 초면인 6명과 비전공자 1명이 만나 우여곡절이 많았다ㅋㅋ
나를 포함한 개발자 4명과 기획자 3명으로 7명이 참여했고 처음엔 비대면 회의/개발을 하고 막판에는 매주 만나서 같이 코딩했다.(7월 코딩량이 제일 많은건 비밀...)
프로젝트를 통해 배운 것과 직무 내외로 성장한 부분이 많다.
재미없는 취준생의 삶을 살고 있던 나에게 프로젝트 제안 해준 친구에게 너무 고맙다.
일단 기본 틀은 이 세가지였다.. ㅋㅋ 허접했고 빈틈이 많았다. 개발팀 모두 협업을 많이 해보지 않았고, 나 또한 게임 프로젝트는 처음이라 '히히 부딪히면서 배우는거지 뭐~'라고 생각했다.
얼마가지 않아 이는 잘못된 생각임을 깨달았다!(진짜 얼마 안감 1주일 후 바로 깨달음)
크게 이 4가지였다. 사실 너무 중요하지만 팀프로젝트를 처음 하면 대부분 실수하는 부분이라 생각한다.
첫 회의 때 클래스 다이어그램을 만들었는데 각자 작성하고, 취합하는 과정도 없었고 이를 토대로 개발을 진행하지도 않았다ㅋㅋ
프로젝트를 끝내고 초반 설계 작업의 중요성을 깨달았고, 기획팀의 중요성도 느끼게 되었다.
클래스 구조 설계 능력 향상
기존에 react Component를 다루다보니 게임 Class를 MVC 패턴과 비슷하게 짜게 되었다. 이는 장점도 있고 단점도 있는 부분인거 같다.
클래스 구조를 설계하면서 얼마나 작은 기능을 처리할지, 단일 책임 원칙을 따르면서 불필요한 클래스 생성을 안하기 위해 리팩토링할 때 다들 고생 좀 했다.
또 인터페이스에 대해 잘 모르는 팀원이 있어서 인터페이스를 만들어서 줬음에도 사용하지 않아 속으로 ㅡㅡ;; 염불을 외웠다.
팀 프로젝트에서의 Git & GitHub 사용 방법 체득
이제까지 소수의 팀프로젝트만 해보고 React 백-프론트 끼리라던지, 프론트끼리도 페이지를 나눠 개발하기 때문에 충돌날 일이 별로 없었다. 하지만.. 스크립트 파일 충돌은 선녀고 씬파일에서 충돌이 나면 어떻게 수정할 수가 없었다. 씬에서 같은 오브젝트를 수정한 경우 충돌 병합을 위해 파일 수정을 할 수가 없고 커밋 되돌리고 재작업 or 충돌 씬 삭제 후 main꺼 받고 재작업밖에 안되는 상황이 발생하였다. 더 좋은 방법이 있을 수도 있지만 검색도 해보고 현업에 있는 유니티 개발자 선배에게도 자문한 결과 애초에 같은 씬을 안건들여야 한다는 사실을 늦게 깨달았다ㅎㅎ..😥
이 때문에 풀 리퀘를 올리고 머지하고 병합하고 하는데 기본 1시간이 걸리고 메인 브랜치가 더러워지고 깃 트리가 이리저리 꼬이고~ 이후 main 브랜치 보호 전략이 필요하다는 것을 깨달았다.
페어코딩 및 오프라인 개발의 중요성
성장한 부분이랄까 필요성을 깨달았다.
실제로 페어를 진행하니 오타, 변수명 등 잔실수가 줄고 막혔을 때 새로운 인사이트를 공유할 수 있었다. 정말 놀랐다. 한 컴퓨터에서 둘이 작업하면 당연히 1의 작업량밖에 못 할거라 생각했는데 2+알파의 작업량을 만들어내는 효과적인 프로그래밍이었다.
개발 문서화
제일 귀찮지만 제일 중요한 개발 문서화.. 대부분 How-To 가이드와 기술 레퍼런스 형식으로 작성하였다.
위 잘못 된점의 3번이 문서화의 빈약함 때문이었다. 한 팀원은 몰아서 문서화를 하였고 이 때문에 구현한 클래스 사용방법을 모르니 재사용을 못하고 연락하고 답변받고,, 중복코드 생기고 의도와 맞지 않게 사용되고,,
그 팀원이 반문교사가 되어줬다^^ 곰아어~🤪 그래도 막판엔 제일 열심히 작성했고 코드 해설을 잘해주어 도움이 되었다. 다들 10~20개 정도 작성했다. 굳굳👍
뭘 더 적어야할지 모르겠어서 주저리 하고 싶은 말을 적었는데 남에게도 이후 나에게도 도움이 될진 모르겠다ㅋㅋ
그래도 고생한 팀원들과 나에게 수고했다는 말을 하고싶어서 적어본다.