Unity 개발/기술 향상

[Unity] 깔끔한 코드 작성을 위한 스타일 가이드 (1)

내공부방 2024. 10. 26. 23:59
반응형

이번 Unity에서 코드 작성을 위한 스타일 가이드에 대해 강의를 해주셔서 영상을 보고 

내용을 한번 정리해보았습니다. 

 

https://www.youtube.com/watch?v=eoJLowmz5zU&t=938s

 

1. 깨끗한 코드란 무엇인가? 

  • 가독성과 유지보수성: 코드는 읽기 쉽고 이해하기 쉬워야 함.
  • 일관된 스타일과 규칙: 이름 짓기와 코드 구조를 일정하게 유지.
  • 최소한의 주석 사용: 주석 없이도 코드가 명확하게 이해될 수 있도록 작성.

 

2. 주요 원칙 

1. KISS 원칙 (Keep It Simple, Stupid)

  • 간단한 해결책을 지향하며 불필요한 복잡성을 피함.
  • 이미 제공되는 API나 기능을 적극 활용
// 복잡한 구현 (비효율적 코드)
void RotateManually(GameObject obj, float angle)
{
    Quaternion rotation = Quaternion.Euler(0, angle, 0);
    obj.transform.rotation = rotation;
}

// 간단한 Unity API 사용 (KISS 원칙)
void RotateUsingUnityAPI(GameObject obj, float angle)
{
    obj.transform.Rotate(Vector3.up, angle);
}

*  Quaternion을 직접 계산할 필요 없이 transform.Rotate 메서드를 활용해 더 간단하게 구현

 

2. YAGNI 원칙 (You Aren't Gonna Need It)

  • 미래에 필요할지 모를 기능을 미리 구현하지 않음.
  • 현재 필요한 기능에 집중.
// 비효율적인 경우: 미래에 사용할 수 있을 것 같은 코드 작성
public class PlayerInventory : MonoBehaviour
{
    private List<string> items = new List<string>();

    // 아직 사용되지 않는 기능 미리 구현
    public void RemoveItem(string item)
    {
        if (items.Contains(item))
        {
            items.Remove(item);
        }
    }
}

// 필요한 경우에만 기능 구현
public class PlayerInventory : MonoBehaviour
{
    private List<string> items = new List<string>();

    // 현재 필요한 기능만 구현
    public void AddItem(string item)
    {
        items.Add(item);
    }
}

* 사용되지 않는 기능을 미리 작성하는 대신 현재 필요한 기능만 구현

 

3. 일관성 유지

  • 같은 문제에 대해 동일한 접근 방식을 사용.
  • 팀원들이 합의한 스타일 가이드를 따라야 함.
// 비일관적인 코드 (혼란 발생 가능)
public class Player : MonoBehaviour
{
    public int player_hp;  //스네이크 케이스
    public int MaxHealth;  //파스칼 케이스

    public void jump()  // 소문자로 시작
    {
        // ...
    }
}

// 일관성 있는 코드 (가독성 향상)
public class Player : MonoBehaviour
{
    public int MaxHealth;  // 파스칼 (public은 파스칼! 이런식으로 규정)
    private int currentHealth;

    public void Jump()  // 파스칼케이스
    {
        // ...
    }
}

 

3. 네이밍 규칙

  • Camel Case: 로컬 변수와 매개변수에 사용
  • Pascal Case: 클래스와 메서드 이름에 사용 
항목 표기법 예시
클래스 / 메서드 PascalCase PlayerController, Jump()
public 변수 PascalCase MaxHealth
private 변수 camelCase currentHealth
인터페이스 I 접두사 IInteractable, IDamageable
  • Booleans: 상태를 명확히 표현하는 동사로 시작 (동사형 접두사 사용 → is / has / can )
bool isRunning;
bool hasKey;
bool canJump;
  • .. 등등

 

오늘은 여기까지 

이번 포스팅에서는 C# 스타일 가이드 E-Book과 Unity에서 제공해준 유튜브 영상을 통해

깨끗한 코드는 무엇인지 또 주요 원칙은 뭐가 있는 지에 대해 알아보았다.

 

다음 포스팅도 이어서 C# 스타일 가이드 E-Book과 Unity에서 제공해준 유튜브 영상을 통해 

알아둬야 할 내용들을 정리해보자 

 

 

 

반응형