본문 바로가기
Programming/C#

깔끔한 C# 코드 작성을 위한 필드 가이드

by Dev_카페인 2024. 11. 12.
반응형

깔끔한 C# 코드 작성을 위한 필드 가이드

C# 개발 시 코드의 가독성, 유지보수성, 팀 협업에 크게 영향을 미치는 요소는 바로 코드 스타일 가이드입니다. 특히 게임 개발에서 Unity를 사용하는 경우, 일관된 스타일은 팀의 생산성 향상과 프로젝트의 확장성을 위해 필수적입니다. 이번 포스트에서는 C# 스타일 가이드의 주요 내용을 알아보겠습니다.

1. 깨끗한 코드의 중요성

깨끗한 코드는 누구나 쉽게 이해하고 수정할 수 있는 코드입니다. 특히 팀 프로젝트에서는 코드 스타일이 제각각일 경우, 나중에 유지보수가 어려워집니다. 따라서 팀의 일원으로서 일관된 코드 스타일을 지키는 것이 중요합니다.

  • 이해 가능한 코드: 사람과 협업하며 미래의 자신도 쉽게 이해할 수 있어야 합니다.
  • 자기 설명적 코드: 코드 자체로 기능을 설명할 수 있도록 변수와 메서드 이름을 의미 있게 지어야 합니다.
// Bad: 의미 없는 변수 이름
int x = 10;

// Good: 자기 설명적 변수 이름
int playerHealth = 10;

 

2. 네이밍 컨벤션

네이밍 컨벤션은 일관성과 가독성을 위해 중요합니다. C#에서 추천하는 네이밍 스타일은 CamelCase와 PascalCase입니다.

  • CamelCase: 주로 로컬 변수와 매개변수에 사용합니다. 예를 들어 playerName과 같은 형식입니다.
  • PascalCase: 클래스, 메서드, 프로퍼티, 그리고 퍼블릭 필드에 사용합니다. 예를 들어 PlayerHealth입니다.
// 클래스 이름 (PascalCase)
public class GameManager { ... }

// 로컬 변수와 매개변수 이름 (CamelCase)
int playerScore = 0;
void AddScore(int scoreToAdd) { ... }

https://khalilstemmler.com/blogs/camel-case-snake-case-pascal-case/
https://www.reddit.com/

 

3. 포맷팅 스타일

포맷팅 스타일을 지키면 코드를 쉽게 읽고 이해할 수 있습니다. 가독성 높은 코드 작성을 위해 다음과 같은 포맷팅 규칙을 추천합니다.

  • 한 줄에 한 문장: 선언과 초기화를 한 줄에 하나씩 작성합니다.
// Bad: 여러 변수를 한 줄에 선언
int a = 10, b = 20;

// Good: 한 줄에 한 변수 선언
int a = 10;
int b = 20;
  • 중괄호 위치: 팀에 따라 선호하는 중괄호 스타일이 다를 수 있습니다. K&R 스타일은 같은 줄에 {을, Allman 스타일은 새 줄에 {을 배치합니다. 중괄호 위치는 팀의 가이드에 따라 통일성을 유지하는 것이 중요합니다.

 

if(condition){
	// K&R 스타일
}

if(condition)
{
	// (BSD)Allman 스타일
}

 

4. 인덴트 스타일

인덴트 스타일은 코드를 읽기 쉽게 해줍니다. 대부분의 C# 프로젝트에서는 4 스페이스 인덴트를 권장하며, 각 줄을 정렬하는데 일관성을 유지하는 것이 중요합니다. 코드 에디터의 자동 인덴트 설정을 활용하면 편리하게 관리할 수 있습니다.

 

5. 기타 추천 가이드

  • 주석 작성: 코드만으로 이해하기 어려운 부분은 주석을 추가하되, 필요한 곳에만 간결하게 작성합니다.
// 플레이어의 최대 체력
public int MaxHealth = 100;
  • 바 사용: 타입이 명확할 경우 var를 사용할 수 있으나, 코드만으로 타입을 파악하기 어려운 경우 var 사용을 피하는 것이 좋습니다.
// Bad: 타입이 불명확한 var 사용
var result = CalculatePower();

// Good: 명확한 타입 사용
int result = CalculatePower();
  • 프로퍼티 활용: 클래스 멤버의 접근 제한을 관리하고, 간결한 게터/세터를 설정할 때 프로퍼티를 사용합니다.
// Private 필드
private int _maxHealth = 100;

// Public 프로퍼티 (겟터/셋터)
public int MaxHealth
{
    get { return _maxHealth; }
    set { _maxHealth = Math.Min(value, 100); }
}

 

 

이 외에도 깔끔한 코드를 작성하기 위해서 피해야 할 관행을 배우는 것도 좋습니다.

 

유지보수하기 어렵게 코딩하는 방법 (피해야 할 관행)

책에서는 "유지보수가 어려운" 코드를 작성하는 여러 방식에 대해 이야기하며, 그 방식을 피함으로써 더 나은 코드를 작성하도록 가이드합니다. 여기에서는 몇 가지 주의할 만한 내용을 소개합니다.

1. 필요하지 않은 기능 추가하기

  • 설명: 현재 사용하지 않지만, 나중에 필요할 수도 있다는 이유로 코드를 과도하게 설계하는 것은 유지보수를 어렵게 만듭니다.
  • 해결 방법: 현재 필요한 기능에 집중하고, 확장 가능하게 설계하되 실제 기능은 나중에 추가하는 방식으로 코드를 관리하세요.

2. 널 체크 남발하기

  • 설명: 널 체크로 문제를 임시 해결하는 대신, 왜 널 값이 발생했는지 근본 원인을 찾아 수정해야 합니다​.
  • 해결 방법: 널 값이 생기는 원인을 먼저 파악하고, 해당 상황을 방지하도록 코드 로직을 수정하세요.

3. 불필요한 코드 주석 남기기

  • 설명: 코드 자체가 충분히 설명적이지 않다면 주석을 남기는 경우가 많지만, 시간이 지나면 이 주석들이 업데이트되지 않아 혼란을 유발합니다.
  • 해결 방법: 코드가 스스로 설명할 수 있도록 명확하게 작성하고, 꼭 필요한 경우에만 주석을 사용하세요.

4. 같은 기능 반복하기

  • 설명: 비슷한 기능을 가진 코드를 복사-붙여넣기 방식으로 여러 번 작성하면 코드가 불필요하게 길어지고, 수정 시 모든 복사본을 관리해야 합니다​.
  • 해결 방법: 공통 기능을 메소드나 클래스로 분리하여 재사용성을 높이고, 유지보수가 용이하도록 합니다.

5. 코드의 일관성 무시하기

  • 설명: 코드의 네이밍 규칙, 중괄호 사용, 들여쓰기 스타일을 일관성 없이 사용하는 것은 다른 개발자가 코드를 읽기 어렵게 만듭니다​.
  • 해결 방법: 팀 내 스타일 가이드를 따르거나, 하나의 스타일을 정해 일관되게 사용하는 것이 좋습니다.

이 책에서 다루는 내용을 통해 ‘이렇게 작성하면 절대 안 된다’는 관점에서 피해야 할 코딩 방식에 대한 유용한 통찰을 얻을 수 있습니다.

 

유지보수성 낮추기: 반면교사의 코드 작성법

책 유지보수하기 어렵게 코딩하는 방법에서는 개발자가 피해야 할 다양한 코딩 방식을 반면교사로 제시하고 있습니다. 여기서는 이를 참고하여, 코드 유지보수를 어렵게 만드는 방법과 이를 피하는 최선의 방법을 함께 살펴보겠습니다.

1. 혼란스러운 변수명과 함수명 사용하기

  • 내용: 변수나 함수 이름을 전혀 의미 없게 짓거나, 의도적으로 헷갈리게 작성해 이해를 어렵게 만듭니다.
  • 피해야 할 방식: 예를 들어, int a와 같은 이름 대신 int playerHealth와 같이 코드의 역할을 명확하게 표현해야 합니다.

2. 주석을 과하게 사용하거나 부족하게 하기

  • 내용: 코드와 관련 없는 내용을 주석으로 장황하게 쓰거나, 필요한 설명 없이 생략함으로써 다른 개발자가 혼란을 겪게 합니다.
  • 피해야 할 방식: 코드 자체가 설명이 가능하도록 작성하고, 필요한 경우에만 간단하게 주석을 추가하세요.

3. 불필요하게 복잡한 로직 작성

  • 내용: 단순하게 작성할 수 있는 로직을 복잡하게 만들어 코드 이해와 유지보수를 어렵게 합니다.
  • 피해야 할 방식: 코드의 간결함을 유지하고, 로직을 필요 이상으로 분기하지 않도록 합니다.

4. 불필요한 기능 추가

  • 내용: 현재 필요하지 않은 기능을 미리 구현하여 코드의 복잡성을 높입니다.
  • 피해야 할 방식: 현재 필요에 집중하고, 나중에 필요한 기능은 확장할 수 있는 구조만 마련해두는 것이 좋습니다.

5. 의도적으로 헷갈리는 코드 스타일 사용하기

  • 내용: 다양한 스타일을 혼용하여 코드 일관성을 해치는 방법입니다. 예를 들어, 소문자 l과 숫자 1을 구분하기 어렵게 사용하거나, 여러 언어를 혼용하여 변수명을 작성하는 등입니다​(C# 스타일 가이드).
  • 피해야 할 방식: 명확하고 일관된 코드 스타일을 사용하여 팀 내의 이해도를 높입니다.

이러한 내용은 유지보수가 어려운 코드를 방지하는 데 도움을 주며, 일관성 있고 가독성 높은 코드를 작성하는 데 유용한 가이드가 될 것입니다.

 

 

결론

코드 스타일 가이드는 팀 협업에서 중요한 역할을 합니다. 일관된 네이밍과 포맷팅 스타일을 유지하면 코드가 깔끔해지고, 다른 팀원들이 쉽게 이해하고 수정할 수 있습니다. 앞으로 팀 내에서도 이러한 가이드를 철저히 지키며 깔끔한 코드 작성을 목표로 해 보세요.

 

 

https://learn.microsoft.com/ko-kr/dotnet/csharp/fundamentals/coding-style/coding-conventions

 

.NET 코딩 규칙 - C#

C#에서 일반적으로 사용되는 코딩 규칙에 관해 알아봅니다. 코딩 규칙은 코드를 일관되게 표시하고 코드 복사, 변경 및 유지 관리를 용이하게 합니다. 이 문서에는 문서 리포지토리 코딩 지침도

learn.microsoft.com

https://unity.com/kr/blog/engine-platform/clean-up-your-code-how-to-create-your-own-c-code-style

 

C# 코드 스타일 가이드 만들기

Unity C# 코드 형식을 지정하는 방법은 다양합니다. 프로젝트에서 일관된 코드 스타일을 사용한다면 더 깔끔하고 알아보기 쉽고, 확장할 수 있는 코드 베이스를 개발할 수 있습니다. 이번 블로그

unity.com

https://unity.com/kr/how-to/naming-and-code-style-tips-c-scripting-unity

 

Unity에서 C# 스크립팅을 위한 명명 및 코드 스타일 팁

이 페이지에서는 스타일 가이드를 만들 때 명명 규칙 및 코드 서식 지정에 유의해야 할 팁과 주요 고려 사항을 제공합니다.

unity.com

 

 

 

 

반응형