[UE5/C++] 언리얼엔진 코딩표준
- 목차
https://docs.unrealengine.com/5.3/ko/epic-cplusplus-coding-standard-for-unreal-engine/
코딩 표준
기존에 확립된 표준 및 모범 사례를 준수하여 유지보수 가능한 코드를 작성합니다.
docs.unrealengine.com
>> 언리얼 엔진 공식 문서
코딩표준이란?
: 프로그래밍을 하는데 지켜야하는 이름 규칙, 양식 등을 지정한 가이드라인
(코딩 스타일, 코딩 컨벤션이라고도 함)
절대적으로 좋은 코딩 표준은 없다.
내가 사용하던 표준이 있다하더라도 이미 프로젝트에 사용중인 표준이 있다면 그것을 잘 따르는 것이 중요하다.
어떤 프로젝트의 모든 코드는 한 사람이 작성한 것 처럼 보이는 것이 좋다.
그러기 위해 코딩표준을 잘 따르는 것이 중요하다.
예시: 구글의 코딩 스타일
https://google.github.io/styleguide/cppguide.html
Google C++ Style Guide
Google C++ Style Guide Background C++ is one of the main development languages used by many of Google's open-source projects. As every C++ programmer knows, the language has many powerful features, but this power brings with it complexity, which in turn ca
google.github.io
언리얼 엔진은 자체적으로 코딩표준이 있다.
기존 C++을 쓰던 방식말고 언리얼 엔진 코딩 표준을 따라야한다.
맨 위에 첨부한 주소를 들어가면 코딩표준 관련 문서를 확인할 수 있다.
정리가 잘 되어 있어서 블로그에는 몇 가지만 정리하려고 한다.
클래스 체계
클래스 내에 public을 먼저 선언한 후 private을 구현해야한다.
명명규칙
언리얼엔진은 파스칼 케이싱을 사용하기 때문에, 모든 합성어의 첫 글자를 대문자로 사용해 명명한다.
예) UnrealEngine (O), unrealEngine (X), unreal_engine (X)
타입 이름에는 대문자로 이루어진 접두사를 포함한다.
- 템플릿 클래스에는 접두사 T를 포함한다.
- 언리얼오브젝트(UObject)에서 상속받는 클래스에는 접두사 U를 포함한다.
- AActor에서 상속받는 클래스는 접두사 A를 포함한다.
- (예외) 부울 변수는 접두사로 소문자 b를 포함한다
- 일반 C++클래스들은 접두사 F를 포함한다.
예시) UObject의 상속을 받는 GaneInstance 클래스의 경우 UGameInstance로 명명.
표준 라이브러리 사용
C++ 표준라이브러리는 사용하지 않는 것이 기본 원칙이다.
코드의 명확성
- 파라미터에 가급적 In과 Out 접두사를 사용해 함수 내부에서 쓰이는 것인지 함수 외부에서도 쓰이는 것인지 명시한다.
- const 지시자(directive)를 적극 활용해 다른 사람이 읽을 때 명확하게 한다.
- auto 키워드는 가급적 자제한다. 람다 함수의 경우나 이터레이터의 자료형 등의 경우 말고는 자제한다.
- 포인터나 참조변수를 선언할때는 변수이름이 아닌 자료형에 붙여서 사용해라 (TypeName* ptr)
- 헤더 파일 및 #include 구문은 잘못쓰면 상호참조를 하면서 꼬인다던가 컴파일 시간이 늘어날 수가 있기 때문에 의존성을 최소화 시켜라.
[인프런 강의]
이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해 강의 - 인프런
대기업 현업자들이 수강하는 언리얼 C++ 프로그래밍 전문 과정입니다. 언리얼 엔진 프로그래머라면 게임 개발전에 반드시 알아야 하는 언리얼 C++ 기초에 대해 알려드립니다., [사진] 언리얼 C++을
www.inflearn.com
'프로그래밍 > UE5' 카테고리의 다른 글
| [UE5/C++] 언리얼엔진 C++에서 print 하기 (LOG_UE) (0) | 2024.04.22 |
|---|---|
| [UE5/C++] 언리얼엔진 컴파일 하는 방법 (0) | 2024.03.28 |
| [UE5] 기본적인 에디터 설정 (0) | 2024.03.06 |
| [UE5] 프로젝트 생성 에러(버전 낮추기, 런타임 설치) (0) | 2024.03.06 |
| [UE5/C++] 이득우 교수님의 언리얼 강의 Part 1 시작 (OT 요약) (0) | 2024.02.24 |