언리얼 엔진을 위한 에픽 C++ 코딩 표준 | 언리얼 엔진 5.5 문서 | Epic Developer Community
모든 소스 파일 첫 줄에 저작권 고지하기!
무조건 다음 한 줄을 최상단에 추가해 주세요!
// Copyright Epic Games, Inc. All Rights Reserved.
파일 및 클래스 명
네임스페이스
using namespace std; 사용 금지공백
a+b → a + b 처럼 연산자 주변에 공백 넣기func(a, b, c) 처럼 쉼표 뒤에는 공백 추가중괄호
주석 달기
이게 뭐임? 하는 소리가 나오지 않도록 복잡하거나 특수한 경우에 주석 추가하기.const 붙이기
const를 붙이기.함수 이름 명명 규칙
MoveActor(), SpawnParticle() 처럼 의미 전달이 확실하도록요!calculateSum() → CalculateSum()변수 이름
b 붙이기. e.g. bool bIsRunint → int32 사용.int32 vectorSum → int32 VectorSumauto 사용은 필요할 때만, 가급적 명시하는 방향으로 작성bool을 반환하는 함수 → ‘질문 형태’로 명명하기!
IsReady(), CanSpawn(), ShouldDelete() 처럼 true/false의 의미가 명확하게 드러나야죠!
CheckReady()처럼 결과가 참인지 거짓인지 함축적이면, 호출하는 사람이 헷갈릴 수 있어요.
들여쓰기는 탭(Tab)을 쓰기!
중괄호는 어지간하면 꼭 사용 & 새 줄에 쓰기!
중괄호 { }는 if/for 등 모든 구문에서 반드시 사용하고, 새 줄에 두세요.
if (Condition)
{
DoSomething();
}
else
{
DoSomethingElse();
}
Switch문에선 case마다 break 혹은 ‘falls through’ 표기하기!
default 구문도 빠짐없이 작성하기!
빈 케이스(중복 케이스)가 아니라면 반드시 break;나 return; 같이 종료 구문을 써 주세요.
의도적으로 케이스를 2개 이상 거쳐야 할 때는 꼭 // falls through 표기를 해주세요!
switch (Value)
{
case 1:
// falls through
case 2:
...
break;
default:
break;
}
주석을 적을 땐 “왜”와 “무엇을” 설명하기!
불필요한 auto(자동 타입 추론) 사용 자제하기!
auto를 막 쓰면, 코드를 읽는 사람이 타입을 쉽게 알 수 없어서 헷갈립니다.for문을 사용할 땐 범위 기반 for 문을 적극 활용하기!
C++11 이상에서는 for (ElementType& Elem : Container) 식으로 깔끔하게 순회할 수 있어요.
인덱스가 필요 없고, 단순 반복일 때는 range-based for가 가독성이 좋아요.
TArray<int32> Numbers = {1, 2, 3};
for (int32 Num : Numbers)
{
UE_LOG(LogTemp, Log, TEXT("Number: %d"), Num);
}
const 철저히 사용하기!
const를 붙여주세요.네이밍은 명확하고 간결하게!
LastUpdateTime은 LUT보다 훨씬 더 읽기 편하죠!선언 순서
virtual, 리플렉션, 일반 순서class Test
{
public:
virtual void A();
UFUNCTION()
void B();
void C();
public:
UPROPERTY()
int32 D;
float E;
}
접근 지정자
public, protected, private 순으로 선언class Test
{
public:
void A();
protected:
void B();
private:
void C();
}
class Test
{
public:
void A();
protected:
void B();
private:
void C();
public:
int32 D;
protected:
float E;
private:
bool bF;
}