협업
- 여럿이서 작업하는 것.
- 도우면서 일하는 것.
- 협업이 가능하려면, 통일된 용어 / 작업 방식이 필요
코드 컨벤션
코드 작성 규칙
코드 컨벤션 예시
void Function(){
}
void Function()
{
}
강의 및 훈련과정에선 BSD를 따르기로 통일했다.
목적
- 내 코드를 다른 사람이 쉽게 이해할 수 있도록
- 오랜 시간 뒤에 내가 내 코드를 알아보기 위해서
- 취직
- 가독성
Unity 공식 코드 컨벤션
- camelCase : 소문자 시작, 띄어쓰기 생략, 대문자로 구분
ex) playerName
- PascalCase : 대문자로 시작, 띄어쓰기 생략, 대문자로 구분
ex) UseItem
이것부터는 Unity에선 안씀
1. snake_case
1. kebab-case
Unity : PascalCase 사용
일반적인 선언 : PascalCase
- namespace, class, struct
- method
- Enum
변수 파트
- public : PascalCase
- non public : _camelCase
유니티 권장. 현업에선 camelCase 형태로만 쓰기도 함.
- 함수 내부 지역변수 : camelCase
정리
- Unity 기본적으로 PascalCase
- 덩치가 크다 => 내부에 많은 것을 담을 수 있다 Pascal
- public Pascal
- non publick _camelCase, camelCase
- 함수 내부 camelCase
- 이름 정할 때 누가봐도 알 수 있도록
들여쓰기, 줄 띄어쓰기
- 일관되게 줄 띄어쓰기
- 들여쓰기는 BSD에 맞춰서 들여쓰기
Git
대원칙
같은 기능, 같은 파일 수정은 피할 것.
하나의 파일은 한 명만 다룬다.
- 바톤 터치식으로 우회
- 기능을 분리해서 작업
직렬화, 역직렬화
직렬화 Serialize
생성한 객체를 바이트배열, XML, Json으로 변환하고 DB, 파일, 메모리 등으로 전환하는 것.
역직렬화 Deserialize
바이트배열, XML, Json 형태의 파일이나 DB 등을 객체로 바꿔 생성하는 것.
Unity 파일
스크립트 외에 Unity 관련 파일들은 모두 직렬화된 형태의 파일들임.
만약 Scene, Prefab 등에 파일이 충돌 난다면 직렬화된 파일 정보에서 충돌이 표기됨.
이러한 문제 예방을 위해서 최대한 대원칙을 지키며 작업해야함.
직렬화된 데이터를 찾아가며 하나하나 수정하거나 별도로 프리팹을 변경하고 수정하는 것 외에는 방법이 없는 문제.
Read me 작성
면접관이나 인사 담당자는 코드를 일일히 뜯어보기 보다는
정리된 내용의 readme를 더 많이 읽어볼 것.
기술한 기능 중 흥미로운 기능에 대해서만 살펴 봄.