개발자를 위한 변수 이름 작명 가이드
여러분, 개발할 때 가장 머리를 많이 써야 하는 것 중 하나가 바로 변수 이름 작명이에요. 유명한 개발자 F CT이 이런 말을 했습니다: "컴퓨터 사이언스에서 어려운 두 가지는 캐시 무효화와 변수 이름 짓기다." 이 말처럼, 변수 이름 작명은 정말 중요하죠. 단순히 코드를 작다거나 줄이는 게 아니라, 코드의 가독성, 유지보수성, 협업을 고려해야 하기 때문이에요. 그렇다 보니, 이 과정이 어려울 수밖에 없어요. 객체지향 프로그래밍에서는 객체에 대한 명확하고 일관된 이름을 통해 객체의 역할을 한 눈에 파악할 수 있죠. 이번 가이드를 통해 변수 이름 작명의 기본으로 돌아가서 효과적으로 이름을 짓는 방법을 알아보도록 하겠습니다.
명확한 이름 사용하기
변수 이름을 지을 때, 가장 먼저 고려해야 할 것은 '명확성'이에요. 예를 들어, 쇼핑 카트를 의미하는 변수를 있다고 가정해봅시다. 이럴 때 변수 이름을 'cart'라고 짓기보다는, 그 목적을 명확히 하는 'shoppingCart'라고 짓는 게 더 좋습니다. 'itemsArray' 대신 'listOfItems'로 줄이기보다는, 가능한 한 이해하기 쉽게 써주는 것이 좋습니다. 특히 나이가 있는 개발자분들 중에서는 주로 변수 이름을 짧게 줄이는 경향이 있습니다. 하지만 이렇게 축약하게 되면, 협업 과정에서 다른 개발자들이 변수의 역할을 즉시 파악하기 힘들어집니다. 그래서 이름만 보고도 어떤 역할을 하는지 알 수 있도록 명확히 해주세요.
중복 정보 피하기
또한, 변수 이름에서 중복되는 정보를 피하는 것이 중요합니다. 예컨대, 'interface'라는 키워드를 이미 사용하고 있다면, 변수 이름 앞에 'I'를 붙일 필요는 없습니다. 'base'라는 키워드를 사용했을 경우에도 마찬가지로 'Base'를 또 추가하는 것은 지양해야 합니다. 타입을 기입할 때에도 'int', 'string' 등을 앞에 쓸 필요가 없는 경우도 마찬가지입니다. 이미 타입이 명확하게 정의되어 있을 때는 중복되는 명칭을 넣지 않는 것이 좋은데요. 물론 언어 자체에서 컨벤션으로 정해진 경우는 다릅니다. 이런 경우에는 그 컨벤션에 맞춰주는 것이 더 중요하겠죠. 결국, 의미가 중복되지 않도록 깔끔하게 변수명을 정하는 것이 가독성과 이해를 높이는 방법입니다.
상속 관계 명칭 사용하기
클래스를 만들 때 상속 관계를 명확히 보여주는 명칭을 사용하는 것이 좋습니다. 예를 들어, 'Dog' 클래스가 있고 이를 일반화하여 부모 클래스를 만들고자 할 때, 새 부모 클래스를 'BaseDog'라고 짓는다면 이는 직관적이지 않을 수 있어요. 대신, 구체적으로 어떤 차이가 있는지를 보여주는 이름을 지어주는 게 좋은데요. 예를 들면, 'Animal'이라는 부모 클래스를 만들고 'Dog'를 세부 클래스의 이름으로 남기면, 클래스 구조를 보다 이해하기 쉽게 만들 수 있습니다. 명확하게 상속 관계를 나타내는 이름 짓기는 코드를 읽을 때 각각의 관계와 역할을 쉽게 파악할 수 있도록 도와줍니다. 그래서 실제 존재하는 개념을 반영하는 이름을 사용하는 것이 효과적입니다.
일관된 네이밍 규칙 지키기
한 가지 실수로 자주 일어나는 게 있다면 변수가 여러 가지 스타일로 작성되는 경우입니다. 특히 개발을 처음 시작하는 분들은 다양한 네이밍 스타일 중 어느 하나에 익숙하지 않은 경우가 많은데요. 변수명을 작성할 때는 일관된 네이밍 규칙을 지키는 것이 좋습니다. 예를 들어, 클래스명은 파스칼 케이스, 변수명은 카멜 케이스로 정했다면 모든 클래스와 변수에 동일한 스타일을 적용해주세요. 이렇게 하면 팀원들이 직관적으로 코드의 구조를 이해할 수 있고, 어떤 이름을 써야 할지 헷갈리지 않게 됩니다. 코드 스타일이 일관되면, 전체적으로 보기 좋으면서도 유지보수나 수정이 훨씬 수월해집니다. 그렇기에 명확하고 일관된 네이밍 규칙 준수가 중요해요.
제목
변수 이름 작명 마스터클래스
설명
#개발자 ⭐️ 코드팩토리 통합링크 (모든 강의 및 서적) ⭐️ https://links.codefactory.ai 👉 NestJS 마스터클래스 https://bit.ly/fcnestjs 👉 플터터 초급 https://inf.run/Sjuw 👉 플터터 중급 https://inf.run/hf1E 👉 Typescript 마스터 클래스 https://inf.run/3r8Jd 👉 플러터 서적 (3판) https://bit.ly/4gXg1li