CS

코드 컨벤션 (Code onvention)

khh7052 2025. 7. 7. 15:08
반응형

✅ 코드 컨벤션이 왜 중요할까?

  1. 🔍 가독성 향상 – 누가 봐도 쉽게 읽힘
  2. 👨‍👩‍👧‍👦 협업 효율 증가 – 여러 명이 작업해도 코드 스타일이 같음
  3. 🛠 유지보수 쉬움 – 구조와 흐름이 예측 가능
  4. 🧪 버그 줄이기 – 일관된 구조는 실수를 줄여줌
  5. 🧼 자동화 툴 사용 용이 – 포맷터, 정적 분석기, 린터 등에 잘 맞음

🧱 대표적인 컨벤션 요소

1. ✅ 이름 규칙 (네이밍 컨벤션)

항목 규칙 예시
클래스 PascalCase PlayerController
메서드 PascalCase MoveToTarget()
변수 camelCase playerSpeed, isDead
상수 ALL_CAPS 또는 PascalCase MAX_HEALTH / MaxHealth
인터페이스 I 접두사 + PascalCase IDamageable
제네릭 타입 T 접두사 TData, TKey, TValue

2. ✅ 들여쓰기와 중괄호

  • 공통: 4칸 들여쓰기 (space or tab)
  • 중괄호 {}는 항상 새 줄에:
if (isDead)
{
    Respawn();
}

3. ✅ 공백 / 띄어쓰기

  • 연산자 주변에 공백:
int sum = a + b;
  • 메서드 괄호 앞에는 공백 ❌:
MoveToTarget(); // OK
MoveToTarget (); // ❌

4. ✅ 한 줄 길이 제한

  • 한 줄에 100~120자 이하 권장 (Visual Studio에서는 가이드라인 설정 가능)

5. ✅ 지역 변수는 가까이에 선언

void SomeMethod()
{
    int damage = 10; // 가까이 선언
    // 사용 바로 아래
}

6. ✅ 접근 제어자 명시

public class Player
{
    private int health;
    public void TakeDamage(int amount) { }
}

🔧 C# 공식 컨벤션 참고

C#은 마이크로소프트 공식 코드 스타일이 있어:
C# Coding Conventions - Microsoft Docs

 

.NET Coding Conventions - C#

Learn about commonly used coding conventions in C#. Coding conventions create a consistent look to the code and facilitate copying, changing, and maintaining the code. This article also includes the docs repo coding guidelines

learn.microsoft.com

 


이름 규칙에 적혀있는 PascalCase, camelCase는 무엇일까?


 

PascalCase

  • 모든 단어의 첫 글자를 대문자로 쓰는 방식
  • 공백은 쓰지 않고, 단어만 이어붙여

📌 예시:

Player, PlayerController, MoveToTarget, ItemManager
 

사용 대상 (C# 기준):

  • 클래스 이름 (GameManager, Player)
  • 메서드 이름 (StartGame(), GetHealth())
  • 속성/프로퍼티 (Health, Speed)
  • 인터페이스 (IDamageable, IInteractable)

camelCase

  • 첫 단어는 소문자,
    이후 단어마다 첫 글자를 대문자

📌 예시:

player, playerName, itemCount, isDead
 

사용 대상 (C# 기준):

  • 지역 변수 (itemCount)
  • 매개변수 (damageAmount)
  • 필드(멤버 변수) (health, moveSpeed)
  • private 변수 (_player, enemyList) ← 때때로 언더스코어 붙이기도 함

 

반응형

'CS' 카테고리의 다른 글

더티 플래그 (Dirty Flag)  (0) 2025.08.08
ANSI  (1) 2025.07.22
유니코드  (1) 2025.07.10
.NET  (0) 2025.07.07
C#  (0) 2025.07.07