본문 바로가기
Unreal/[서적] 언리얼5 이득우님 인프런1

Ch 2. 언리얼 C++ 코딩 표준

by GameStudy 2023. 5. 9.

2.1 언리얼 C++ 코딩 표준

2.1-1 코딩 표준(Coding Standard)
  - 프로그래밍을 작성하는데 지켜야 하는 프로그래밍 이름 규칙, 작성 방법 등을 지정한 가이드라인.
    코딩 스타일(Coding Style), 코딩 컨벤션(Coding Convention)이라고도 함.
  - 언리얼 엔진은 자체적으로 코딩 표준을 정했기 때문에
    기존 C++ 코딩 표준을 버리고 언리얼 엔진 코딩 표준을 따라야 함.

 

2.1-2 언리얼 명명 규칙

  - public 접근 지정자 뒤에 private 접근 지정자로 이어지는 클래스 체계(Organization)를 준수.

  - 언리얼은 관습적으로 파스칼 케이싱으로 작성. 소문자는 가급적 사용하지 않고, 공백 및 언더바 금지.
    파스칼 케이싱: 합성어의 첫 글자를 대문자로 시작해서 명명.
    카멜 케이싱: 합성어의 첫 글자를 소물자로 시작. 나머지는 대문자를 사용해서 명명.
    스네이크 케이싱: 합성어 사이에 언더바를 사용해서 명명.

  - 모든 클래스와 구조체에는 고유한 접두사가 있음.

    템플릿 클래스는 T, UObject 클래스를 상속 받은 클래스는 기본적으로 U,

    AActor 클래스를 상속 받는다면 A, 인터페이스 클래스는 I, Slate 클래스는 S

    그외 대부분의 클래스 및 구조체는 F

  - 함수명 접두사

    bool 자료형을 반환하는 함수는 Is- 가 붙음.

    그 외 자료형을 반환하면 Get-

  - 매개변수명 표준

    해당 매개변수가 입력으로만 사용되면 In- 출력으로 사용되면 Out-을 붙히는걸 권장.
    레퍼런스를 통한 복사 방지를 권장.

  - 문자열 리터럴을 사용할 때는 반드시 TEXT() 매크로를 사용.

 

2.1-3 const 키워드

  - 가급적이면 모든 경우에 const 키워드를 붙힘.

    필요 없을 때 지우는게 맞음.

  - 특히 for 구문에서는 오히려 지정해야 할 수 있음.
    순회 중에 데이터 변경이 불가능한 경우가 있음.

 

2.1-4 최신 C++ 문법

  - C++17 표준까지 지원. 그 이상은 지원되지 않음.

  - override / final 키워드는 사용 적극 권장

  - auto 키워드는 사용 자제

    다만 너무 뻔하면서도 긴 자료형에는 auto 키워드 사용 권장

  - 범위 기반 for / 익명함수 사용 가능

  - UENUM() + enum class를 통해 enum 구현
  - std::move()는 언리얼에서 되도록 사용하지 않는 것이 권장. MoveTemp() 함수를 대신 사용.

  - header 파일에서도 초기화가 가능하나, 생성자의 initialize list를 활용하는걸 권장

  - #pragma once 구문을 이용해서 상호 참조를 막아야함.

 

2.1-5 전방선언

  - 헤더 파일에서 전방선언을 활용해서 #include 구문 최소화해야 함.

    다른 헤더 파일이 수정될 때 마다 무조건 자신이 작성한 파일도 재 컴파일됨을 막음.

 

 

 

댓글