2024년 4월 29일 월요일 개발일지 / 팀 프로젝트 과제와 GitHub 협업에 대해서

2024. 4. 29. 21:16나의 개발자 기록/본 캠프 개발 일지

2024년 4월 29일 월요일


팀 프로젝트 과제에 대한 발제

 

 

오늘은 9시부터 신우석 매니저님께서 먼저 이번 주가 어떤 식으로 흘러가는지 알려주셨고, 팀 프로젝트 과제에 대한 내용을 말씀해 주셨습니다. 그 내용은 저번 주에 만들었던 개인 프로젝트인 스파르타 텍스트 RPG에 구체적인 던전의 내용이나 캐릭터의 직업 종류, 몬스터의 종류, 공격 시스템, 적의 턴과 전투 결과 등등 전투와 관련된 필수 요구 사항과  치명타 기능, 회피 기능, 스킬 기능, 레벨업 기능 등등 RPG 던전에서 많이 쓰이는 요소들을 선택적으로 기능을 추가해야 하는 과제였습니다.

 

 

과제 제출의 기한은 다음 주 화요일까지 제출할 수 있게 시간을 많이 주셨습니다. 이렇게 주신 이유가 다름 아닌 주말에도 프로젝트를 붙잡고 공부 및 팀 프로젝트의 협업 기술을 늘리기 위해서라고 하셨습니다. 그 다음에 안내해주신 내용은 시간 활용에 대한 시간 계획을 팀별로 짜두면 하루 계획이 깔끔하고, 팀 프로젝트를 하는 데 있어서 도움이 많이 된다고 하셨습니다. 그러고 나서 튜터님이나 매니저님 분들에게 질문할 때, 효과적으로 질문하는 방법에 대해서도 설명해 주시고, 저희 같이 게임 개발자가 되려고 이 캠프에 들어온 사람들에게 격려의 말로 방송을 마무리하셨습니다.


GitHub 2번 째 특강

 

 

그 다음에는 저번에 GitHub에 관해서 강의를 해주셨던 오정호 튜터님께서 좀 더 내용을 다듬고 추가한 내용으로 강의를 진행해 주셨습니다. 젤 처음에는 문법 강의 내용을 보충해 주셨고, 그다음에는 GitHub 강의에 대해 보충 설명을 해주셨습니다. 그래서 튜터님께서 강의해주셨던 코드 컨벤션에 대해서 남겨 볼까 합니다.

 

코드 컨벤션이란?

- 개발자 협업을 할 때, 개인 혹은 지역마다 쓰는 방식이 다르기 때문에, 서로 알아볼 수 있는 함수명, 변수명 등등으로 만들어야하는 것.

 

코드 컨벤션 사용 목적

- 내 코드를 다른 사람이 쉽게 이해할 수 있도록
- 오랜 시간 뒤에 내가 내 코드를 알아보기 위해서.
- 가독성
- 취직하기 위해서

 

코드 컨벤션 종류와 쓰임새

- camelCase : 소문자로 시작, 띄어쓰기 생락, 대문자로 구분

- PascalCase : 대문자로 시작, 띄어쓰기 생략, 대문자로 구분

- sanke_case : 소문자만 사용, 띄어쓰기 대신 _ 사용, 유니티에선 사용 안함

- kebab-case : 소문자만 사용, 띄어쓰기 대신 _ 사용, 유니티에선 사용 안함

 

- PascalCase 는 유니티, Namespace, Class, Struct, 함수, Enum, Public

- camelCase 는 Non Public, 함수 내부 등등

 

1. 유니티에서는 파스칼 케이스

2. 덩치가 크거나 public이면 파스칼 케이스

3. Non public이면 _ + 카멜 케이스
4. 함수 내부에서 쓰이는 것들은 카멜케이스
5. 이름 정할 때 누가 봐도 알 수 있도록.

 

- 회사마다 코드 컨벤션이 다를 수 있다. 따로 알려주지 않을 수 있기 때문에 눈치껏 파악해야 한다.

- 깃 컨벤션과 코드 컨벤션에 대해서 팀별로 회의를 해야 한다.

 

코드 컨벤션 강의가 끝나신 후에는 저번에 설명해 주셨던 GitHub에 대한 내용과 Desktop의 사용방법에 대해서 설명해 주셨고, 충돌이 일어났을 때의 상황을 재연해 주셨습니다.


팀 프로젝트의 시작

 

 

발제와 특강이 끝난 이후에는 저번 주에 조를 하셨던 다른 분들과 이야기를 하면서 팀 노션에 대한 룰과 Git에 관련한 규칙 등등 팀적으로 다양한 룰을 정하고 나서 Github에 대해 잘 아시는 분이 따로 Repository를 만드셔서 저와 다른 분들을 초대해 주셨습니다. 그다음에는 팀 프로젝트를 기존 거를 사용할지, 새로 만들어서 할지 의논을 한 뒤에 새로 만드는 것으로 결정하게 됐습니다. 또한 팀별로 C#을 잘 다루시는 분과 저같이 힘든 사람 때문에 어떻게 할지 이야기를 나누었습니다. 그렇게 나온 결론은 잘하시는 한 분이 따로 Display와 관련된 작업을 맡고, 또 잘하시는 분이 저 같이 공부를 더해야 하는 사람을 도와주면서, 저는 코드를 작성하고, 다른 분은 따라서 작성하고, 잘하시는 분은 어떻게 코드를 작성하면 좋을지 고민을 같이 해주시면서 코드를 완성해 나갔습니다. 그렇게 Player 클래스 구성과 상점 클래스 구현, Display구현, 상점 판매 기능과 장착 개선 기능을 추가하는 것으로 오늘 자 팀 프로젝트의 개발을 마무리했습니다. 그리고 각자 노션을 정리하고, TIL을 작성한 다음에 저번 주에 미처 이야기를 하지 못했던 각자의 이야기를 시작으로 팀적으로 많이 돈독해지는 시간을 가진 것 같습니다. 아직 혼자서 공부해야 할 내용이 많이 있지만 팀원분들이 제가 모르는 내용을 알려주시고, 가르쳐주시는 점 덕분에 "이게 협업이고, 팀플이구나"라는 생각을 하게 됐습니다. 물론 더욱 모르는 것이 있다면 튜터님께 찾아가서 질문을 하고, 힌트를 얻은 뒤 스스로 해결할 수 있도록 더욱 노력하겠습니다!