무엇을 찾고 계신가요?
Hero background image
Unity에서 C# 스크립팅을 위한 서식 지정 모범 사례

C# 코드의 형식을 지정하는 올바른 방법이 하나만 있는 것은 아니지만, 팀 전체에서 일관된 스타일에 동의하면 더 깔끔하고 가독성이 높으며 확장 가능한 코드베이스를 만들 수 있습니다. 이 페이지에서는 나만의 스타일 가이드를 만들 때 수업, 방법 및 코멘트에 대해 염두에 두어야 할 팁과 주요 고려 사항을 제공합니다.

참고: 여기에 공유된 권장 사항은 Microsoft에서 제공한 권장 사항을 기반으로 합니다. 가장 좋은 코드 스타일 가이드 규칙은 팀의 필요에 맞는 규칙입니다.

여기에서 코드 스타일 가이드 예제를 확인하거나 전체 전자책( C# 스타일 가이드 만들기)을 다운로드할 수 있습니다: 확장하는 더 깔끔한 코드 작성.

코드 서식 지정

이름 지정과 함께 서식 지정은 추측을 줄이고 코드의 명확성을 높이는 데 도움이 됩니다. 표준화된 스타일 가이드를 따르면 코드 검토는 코드의 모양보다는 코드가 수행하는 기능에 집중하게 됩니다.

팀에서 코드 서식을 지정하는 방식을 개인화하는 것을 목표로 하세요. Unity 스타일 가이드를 설정할 때 다음 코드 서식 제안 사항을 고려하세요. 팀의 필요에 따라 이러한 샘플 규칙을 생략하거나 확장 또는 수정할 수 있습니다.

어떤 경우든 팀에서 각 서식 지정 규칙을 어떻게 구현할지 생각해 보고 모든 사람이 균일하게 적용하도록 하세요. 불일치하는 부분이 있으면 팀의 스타일 가이드를 다시 참조하여 해결하세요. 서식에 대해 덜 생각할수록 더 생산적이고 창의적으로 일할 수 있습니다.

몇 가지 서식 지정 가이드라인을 살펴보겠습니다.

속성

프로퍼티는 클래스 값을 읽고, 쓰고, 계산할 수 있는 유연한 메커니즘을 제공합니다. 프로퍼티는 마치 공용 멤버 변수인 것처럼 동작하지만 실제로는 특수 메서드인 접근자.

각 프로퍼티에는 개인 필드에 액세스하는 가져오기 및 설정 메서드가 있습니다. 백킹 필드. 이렇게 하면 프로퍼티가 데이터를 캡슐화하여 사용자나 외부 객체에 의한 원치 않는 변경으로부터 데이터를 숨깁니다. '게터'와 '세터'에는 각각 고유한 액세스 수정자가 있어 속성을 읽기-쓰기, 읽기 전용 또는 쓰기 전용으로 설정할 수 있습니다.

또한 액세스자를 사용하여 데이터를 검증하거나 변환할 수도 있습니다(예: 데이터가 원하는 형식에 맞는지 확인하거나 특정 단위로 값을 변경하는 경우).

속성의 구문은 다양할 수 있으므로 스타일 가이드에서 속성 서식 지정 방법을 정의해야 합니다. 코드에서 프로퍼티를 일관되게 유지하는 방법에 대한 팁은 다음 예시를 참조하세요.

표현식 기반 속성

한 줄 읽기 전용 속성 (=>)에는 표현식으로 구성된 속성을 사용합니다: 그러면 비공개 지원 필드가 반환됩니다.

자동 구현된 속성

그 밖의 모든 것은 표현식으로 구성된 { get; set; } 구문을 사용합니다: 백킹 필드를 지정하지 않고 공개 속성만 노출하려는 경우에는 자동 구현 프로퍼티.

집합에 표현식 기반 구문을 적용하고 접근자를 가져옵니다. 쓰기 권한을 제공하지 않으려면 '설정자'를 비공개로 설정하는 것을 잊지 마세요. 닫는 부분을 여러 줄 코드 블록의 여는 버팀목에 맞춥니다.

직렬화 가능 클래스
직렬화 가능한 클래스나 구조체를 사용하면 인스펙터를 구성하는 데 도움이 될 수 있습니다.
직렬화

스크립트 직렬화는 데이터 구조 또는 오브젝트 상태를 Unity가 나중에 저장하고 재구성할 수 있는 형식으로 변환하는 자동 프로세스입니다. 성능상의 이유로 Unity는 다른 프로그래밍 환경과 다르게 직렬화를 처리합니다.

직렬화된 필드는 인스펙터에 표시되지만 정적, 상수 또는 읽기 전용 필드는 직렬화할 수 없습니다. 공개이거나 [SerializeField] 속성으로 태그가 지정되어 있어야 합니다. Unity는 특정 필드 유형만 직렬화하므로 전체 직렬화 규칙은 설명서를 참조하세요.

직렬화된 필드로 작업할 때는 다음 기본 지침을 준수하세요:

SerializeField] 속성을 사용합니다SerializeField 속성은 비공개 또는 보호된 변수와 함께 작동하여 인스펙터에 해당 변수를 표시할 수 있습니다. 이렇게 하면 변수를 공개로 표시하는 것보다 데이터를 더 잘 캡슐화하고 외부 객체가 해당 값을 덮어쓰는 것을 방지할 수 있습니다.

범위 속성을 사용하여 최소값과 최대값을 설정합니다: 범위(최소, 최대)] 속성은 사용자가 숫자 필드에 할당할 수 있는 항목을 제한하려는 경우에 유용합니다. 또한 인스펙터에서 슬라이더로 필드를 편리하게 표시할 수 있습니다.

직렬화 가능한 클래스 또는 구조체에서 데이터를 그룹화하여 인스펙터를 정리합니다: 공용 클래스 또는 구조체를 정의하고 [Serializable] 속성으로 표시합니다. 인스펙터에서 노출하려는 각 유형에 대한 공개 변수를 정의합니다.

다른 클래스에서 이 직렬화 가능한 클래스를 참조합니다. 결과 변수는 인스펙터의 접을 수 있는 단위 안에 나타납니다.

브레이스 또는 들여쓰기 스타일

C#에는 두 가지 일반적인 들여쓰기 스타일이 있습니다:

올만 스타일은 (BSD 유닉스에서 유래한) BSD 스타일이라고도 하며, 여는 중괄호를 새 줄에 배치합니다.

K&R 스타일 또는 "원 트루 브레이스 스타일"은 이전 헤더와 동일한 라인에 오프닝 브레이스를 유지합니다.

이러한 들여쓰기 스타일에도 다양한 변형이 있습니다. 이 가이드의 예제에서는 Microsoft 프레임워크 디자인 가이드라인의 Allman 스타일을 사용합니다. 팀으로 어떤 것을 선택하든 모든 사람이 동일한 들여쓰기 및 중괄호 스타일을 따르도록 하세요. 다음 섹션의 팁을 사용해 볼 수도 있습니다.

C 샤프 탭
윈도우용 비주얼 스튜디오의 탭 설정
균일한 들여쓰기 결정

들여쓰기는 일반적으로 2~4칸입니다. 탭 대 스페이스의 불꽃 전쟁을 일으키지 않고도 팀원 모두가 에디터 환경설정에서 설정에 동의하도록 하세요.

Windows용 Visual Studio에서 도구 > 옵션 > 텍스트 편집기 > C# > 탭으로 이동합니다.

Mac용 Visual Studio에서 환경설정 > 소스 코드 > C# 소스 코드로 이동합니다. 텍스트 스타일을 선택하여 설정을 조정합니다.

참고: Visual Studio에서는 탭을 공백으로 변환하는 옵션을 제공합니다.

교정기를 생략하지 마세요

한 줄짜리 문장이라도 중괄호를 생략하지 마세요. 중괄호는 일관성을 높여 코드를 더 쉽게 읽고 유지 관리할 수 있게 해줍니다. 이 예제에서는 중괄호를 사용하여 DoSomething이라는 액션을 루프에서 명확하게 구분합니다.

나중에 디버그 줄을 추가하거나 DoSomethingElse를 실행해야 하는 경우 중괄호는 이미 제자리에 있습니다. 절을 별도의 줄에 유지하면 중단점을 간단히 추가할 수 있습니다.

여러 줄의 문장을 명확하게 하기 위해 중괄호 사용

중첩된 여러 줄 문에서 중괄호를 제거하지 마세요. 이 경우 중괄호를 제거해도 오류가 발생하지는 않지만 혼란을 야기할 수 있습니다. 선택 사항이라도 명확성을 위해 중괄호를 적용하세요.

스위치 문 표준화

서식은 다양할 수 있으므로 스타일 가이드에 팀 선호 사항을 문서화하고 그에 따라 전환 문장을 표준화하세요.

다음은 대소문자 들여쓰기의 한 예입니다.

가로 간격

띄어쓰기처럼 간단한 것만으로도 화면에서 코드의 모양을 개선할 수 있습니다. 개인마다 선호하는 서식은 다를 수 있지만, 가독성을 높이기 위해 아래 제안 사항을 고려하세요.

공백 추가

공백을 추가하여 코드 밀도를 줄입니다. 여분의 공백은 줄의 각 부분을 시각적으로 구분하는 느낌을 줍니다.

쉼표 뒤에 띄어쓰기

함수 인수 사이에는 쉼표 뒤에 공백을 하나만 사용합니다.

괄호 뒤에 띄어쓰기 없음

괄호 및 함수 인수 뒤에 공백을 추가하지 마세요.

함수와 괄호 사이에 공백이 없습니다.

함수 이름과 괄호 사이에 공백을 사용하지 마세요.

괄호 안의 공백을 피하세요.

가급적 괄호 안에 공백을 넣지 마세요.

흐름 제어 조건 전 간격

흐름 제어 조건 앞에 공백을 하나 사용하고 흐름 비교 연산자와 괄호 사이에 공백을 추가합니다.

비교 연산자를 사용한 간격

비교 연산자 앞뒤에 하나의 공백을 사용합니다.

가독성 팁

줄을 짧게 유지하고 가로 공백을 고려하세요. 표준 줄 너비(80~120자)를 정하고 긴 줄은 넘치지 않게 작은 문장으로 나누세요.

앞서 설명한 것처럼 들여쓰기/계층을 유지하세요. 코드에 들여쓰기를 하면 가독성을 높일 수 있습니다.

가독성을 위해 필요한 경우가 아니라면 열 정렬을 사용하지 마세요. 이러한 유형의 띄어쓰기는 변수를 정렬하지만, 유형과 이름의 페어링을 복잡하게 만들 수 있습니다.

그러나 열 정렬은 비트 단위 표현식이나 데이터가 많은 구조에 유용할 수 있습니다. 다만 항목을 추가할수록 열 정렬을 유지하기 위해 더 많은 작업이 발생할 수 있다는 점에 유의하세요. 일부 자동 서식 지정기는 열의 어느 부분이 정렬되는지 변경할 수도 있습니다.

세로 간격 및 영역

세로 간격도 유리하게 사용할 수 있습니다. 스크립트의 관련 부분을 함께 유지하고 빈 줄을 유리하게 활용하세요. 코드를 위에서 아래로 정리하려면 다음과 같이 하세요:

  • 종속적이거나 유사한 방법을 함께 그룹화합니다: 코드는 논리적이고 일관성이 있어야 합니다. 동일한 작업을 수행하는 메서드를 나란히 배치하면 로직을 읽는 사람이 파일을 이리저리 옮겨 다닐 필요가 없습니다.
  • 세로 공백을 사용하여 수업의 뚜렷한 부분을 구분하세요: 예를 들어 두 줄 사이에 빈 줄을 추가할 수 있습니다:
  • 변수 선언 및 메서드
  • 클래스 및 인터페이스
  • if-then-else 블록(가독성에 도움이 되는 경우)

가능하면 스타일 가이드에서 이를 최소한으로 유지하고 추적하세요.

코드에서 지역 사용

region 지시문을 사용하면 C# 파일에서 코드 섹션을 축소하고 숨길 수 있으므로 대용량 파일을 더 관리하기 쉽고 읽기 쉽게 만들 수 있습니다.

그러나 이 가이드의 일반적인 수업에 대한 조언을 따른다면 수업 규모를 관리할 수 있고 #지역 지시문은 불필요할 것입니다. 코드 블록을 영역 뒤에 숨기는 대신 코드를 더 작은 클래스로 나누세요. 소스 파일이 짧으면 영역을 추가하는 경향이 줄어듭니다.

참고: 많은 개발자가 영역을 코드 냄새 또는 안티 패턴으로 간주합니다. 팀원들과 함께 토론의 어느 편에 속할지 결정하세요.

C 샤프 피퍼런스
를 클릭하면 미리보기 창에 스타일 가이드 선택 항목이 표시됩니다.
Visual Studio의 코드 서식 지정

이러한 서식 규칙이 부담스러워 보인다고 해서 절망하지 마세요. 최신 IDE를 사용하면 효율적으로 설정하고 시행할 수 있습니다. 서식 지정 규칙의 템플릿을 만든 다음 프로젝트 파일을 한 번에 변환할 수 있습니다.

스크립트 에디터의 서식 지정 규칙을 설정하려면 다음과 같이 하세요:

  • Windows용 Visual Studio에서 도구 > 옵션으로 이동한 다음 텍스트 편집기 > C# > 코드 스타일 서식을 찾습니다.
  • 설정을 사용하여 일반, 들여쓰기, 새 줄, 간격 및 줄 바꿈 옵션을 수정할 수 있습니다.
  • Mac용 Visual Studio에서 Visual Studio > 환경설정을 선택한 다음 소스 코드 > 코드 서식 지정 > C# 소스 코드로 이동합니다.
  • 상단에서 정책을 선택한 다음 텍스트 스타일 탭으로 이동합니다. C# 형식 탭에서 들여쓰기 , 새 줄, 간격 및 줄 바꿈 설정을 조정합니다.

스크립트 파일이 스타일 가이드를 따르도록 하려면 다음과 같이 하세요:

  • Windows용 Visual Studio에서편집 > 고급 > 문서 서식 지정(Ctrl + K, Ctrl + D 단축키 코드)으로 이동합니다. 공백과 탭 정렬만 서식을 지정하려면 편집기 하단의 코드 정리 실행(Ctrl + K , Ctrl + E )을 사용할 수도 있습니다.
  • Mac용 Visual Studio에서 편집 > 문서 서식 지정(Ctrl + I 단축키)으로 이동합니다.

Windows의 경우 도구 > 설정 가져오기 및 내보내기에서 편집기 설정을 공유할 수도 있습니다. 스타일 가이드의 C# 코드 형식을 사용하여 파일을 내보낸 다음 모든 팀원이 해당 파일을 가져오도록 합니다.

Visual Studio는 스타일 가이드를 준수하는 데 도움이 됩니다. 서식을 지정하면 단축키를 사용하는 것만큼이나 간단해집니다.

참고: 편집기를 구성할 수 있습니다.EditorConfig 파일(위 참조)을 구성할 수 있습니다(Visual Studio 설정을 가져오고 내보내는 대신). 이렇게 하면 여러 IDE에서 서식을 쉽게 공유할 수 있습니다. 또한 버전 관리 기능으로 작업할 수 있는 추가적인 이점도 있습니다. 자세한 내용은 .NET 코드 스타일 규칙 옵션을 참조하세요.

깔끔한 코드에만 해당되는 것은 아니지만, Visual Studio를 사용하여 Unity에서 프로그래밍 워크플로 속도를 높일 수 있는 10가지 방법을 확인해 보세요. 이러한 생산성 팁을 적용하면 코드를 깔끔하게 포맷하고 리팩터링하는 것이 더 편리하다는 점을 기억하세요.

코드 스타일 팁 더 보기

여기에서 명명 규칙에 대해 자세히 알아보거나 전체 전자책을 확인하세요. 자세한 코드 스타일 가이드 예시를 살펴볼 수도 있습니다.

이 콘텐츠가 마음에 드셨나요?