부트캠프

미니프로젝트 마무리

noyyo 2023. 8. 11. 20:32

이번 주 내일배움캠프 유니티 과정을 본격적으로 들어가 미니 프로젝트를 팀원과 함께 진행했다.

사전 캠프 기간동안 배웠던 내용으로 팀원들과 함께 간단한 카드맞추기 게임을 구현하는 프로젝트였다.

 

결과물을 보면 대단해 보이지는 않지만 그래도 꽤 오랜시간을 진행하면서 이런저런 것들을 느낄 수 있었다.

가장 절실하게 느낀 것은 팀 프로젝트를 진행할 때는 프로젝트 환경을 통일하고 역할을 나눌 때 비슷한 기능들끼리 잘 묶어서 한 팀원이 담당할 수 있도록 배분하는 것이 중요하다는 것이다.

 

우리 팀은 처음부터 Git을 통해서 프로젝트 파일을 공유하고 시작했고 에디터 버전도 전부 일치했기에 환경 관련 오류는 없었지만 다른 팀들을 보니 환경설정으로 고생한 팀들도 몇몇 있었다. 이런 문제는 쉽게 해결되지도 않는만큼 처음부터 통일하고 시작해서 다행이라는 생각이 들었다.

 

하지만 문제는 역할 분담이었다. 팀원들끼리 서로 여러가지 기능들을 구현해봤으면 좋겠어서 게임 내에서 연관이 없는 기능들도 나눠서 분담했더니 같은 씬을 여러명이 편집하고 같은 UI를 여러명이 만들고 게임 매니저는 거의 매 Commit마다 수정되고 난리도 아니었다.

push랑 conflict랑 동의어라고 생각될 정도로 매 push는 항상 적어도 1개 많으면 5-6개 이상의 컨플릭트를 가져왔다.

머지툴도 찾아서 사용하고 처리하다보니 조금은 익숙해졌지만 그래도 컨플릭트 자체가 안나면 좋겠다는 생각이 수시로 들었다.

 

또 메소드나 필드의 이름을 잘 짓고 주석처리도 잘 해놓고 기능별로 잘 정리해놓는게 좋겠구나 하는 생각도 들었던게 매 컨플릭트마다 바뀌는 내용을 읽다보면 이게 뭔 기능인지 잘 모르겠어서 하나하나 다 찾아봐야 했었다.

 

그래도 어떻게 하나하나 해결해나가면서 프로젝트를 완성했지만 아쉬운 점도 몇 가지 있었다.

싱글톤 패턴으로 구현된 매니저 클래스에서 초기화를 올바르게 수행하도록 객체들의 참조를 스크립트 상으로 올바르게 가져오고 싶었지만 어떻게 구현하는게 좋을지 모르겠기도 했고 시도해봐도 예상하지 못한 오류도 많이 발생해서 구현하지 못했다는 점.

 

씬 로더같은 스크립트를 만들어서 로더에서 초기화 하는 것이 좀 더 자주 쓰이는 방식인 것 같은데  다음 프로젝트를 진행하게 되면 여러가지 기능들을 더 사용해봐야겠다.

 

이번 프로젝트 진행하면서 매 번 이 기능은 어떤 방식으로 구현하지? 고민하다보니 어떤 기능을 구현하기 위해 어떻게 해야한다는 그런 공식같은게 있으면 참 좋겠다 싶었다.

하지만 아무리 찾아봐도 그런 치트키같은 존재는 없는 것 같다. 매 순간 적절한 유니티 기능이나 외부 플러그인, 혹은 직접 만든 스크립트 등으로 하나하나 만들어나가야 할 뿐.

캠프에서 알려주시는 현업 개발자인 튜터분들에게 물어봐도 구현은 그 때 상황에 맞춰서 필요한 것을 구현하는 것이라고 하니 내가 알고 있는 기능의 범주를 늘리고 잘 조립하는 경험을 쌓는게 최선이라고 생각한다.

 

어쨌뜬 이번 미니프로젝트 통해서 적어도 협업에 대해 생각하고 느끼고 기본적인 유니티의 기능들을 쓰면서 익숙해질 수 있었으니 꽤나 만족한다.

'부트캠프' 카테고리의 다른 글

간단한 Snake 게임 만들기1  (0) 2023.08.16
C# 제네릭과 var, dynamic  (0) 2023.08.14
씬 전환하기  (0) 2023.08.10
GameObject 배치하기  (0) 2023.08.09
Unity, Git 연동하기  (0) 2023.08.08