클래스 이름 명명법

이해하기 쉬운 코드를 작성하려면 이름을 잘 짓는 것이 무척 중요합니다. 게임 코드를 리뷰하면서 발견한 잘못된 클래스 이름의 사례는 다음과 같습니다.

  • 무의미한 접미사

생각보다 많은 개발자들이 습관적으로 Info, Data, Manager 등의 접미사를 붙여 클래스 이름을 만드는 습관이 있다는 사실을 발견했습니다. 예를 들어, 게임 캐릭터를 나타내는 클래스 이름은 CharacterInfo, 전투에 관련된 사실상 거의 모든 일을 하는 클래스의 이름은 BattleManager로 붙입니다.

클래스 이름은 읽는 사람 입장에서는 일종의 단서이기 때문에 반드시 의미가 있어야 합니다. Character와 CharacterInfo가 읽는 사람 입장에서 아무런 차이가 없다면 Character라는 간결한 클래스 이름을 사용하는 것이 낫습니다.

  • 두루뭉술한 이름

클래스 이름 자체가 너무 두루뭉술하게 무엇을 하는 클래스인지 알 수는 경우도 있습니다. 대표적인 예가 GameData 같은 이름입니다. 대게 게임 내에서 자주 사용하는 데이터나 메소드를 한 곳에 모아둔 것인데, 용도에 따라 클래스를 구분하지 않고 전부 한 곳에 두고 사용하기 때문에 발생하는 일입니다.

클래스가 한 가지 일만 하는 게 아니다 보니 딱히 이름을 지을 방법이 없어서 두루뭉술한 이름을 붙이게 됩니다. 이 경우는 클래스 이름을 잘못 지은 게 아니라 클래스 설계를 잘못한 경우입니다. 클래스 하나가 하는 일이 여러 개이기 때문에 마땅한 이름이 없는 것입니다.

이 경우 클래스에 명료한 이름을 붙일 수 있는 수준까지 해당 클래스를 리팩토링해야 합니다. 여러 개의 클래스로 나누고 클래스 하나 하나가 하는 일이 명료하다면, 각각의 클래스의 이름을 붙이는 일은 어렵지 않습니다.

Advertisements