개발시 내용을 정확히 반영하는 변수명을 사용하는 것은 아주 중요합니다

개발을 오래 할수록 이름의 중요성을 더욱 인식하게 됩니다. 그것을 보여 주는 변수명 사례를 하나 보여 드리겠습니다.

아래 코드의 $category라는 변수명에서 무엇이 떠오르시나요? 이 예시는 $all_categories를 순회하며 체크박스를 생성하는 과정을 보여줍니다(문법은 라라벨 블레이드 문법인데, 문법을 몰라도 이해하는 데 별 어려움은 없으실 겁니다).

@foreach($all_categories as $category)
<label>
<input type="checkbox"
name="selected_categories[]"
value="{{ $category }}">
{{ $category }}
</label>
@endforeach

문제점: 명확하지 않은 변수명

저를 포함한 많은 개발자들에게 $category라는 변수명은 카테고리 객체를 나타내는 것으로 이해됩니다(value="{{ $category }}"라는 코드를 보고 혼란을 느끼기 전까지는 말입니다). 여기서 문제가 발생합니다.

실제로 이 변수가 담고 있는 것은 카테고리의 이름이기 때문입니다.

개발자는 카테고리라고 하면, id, name, order, description 등의 다양한 속성을 포함한 객체를 생각하게 됩니다. $category라는 이름은 이 변수의 실제 내용을 정확하게 반영하지 못하고 있습니다.

개발자는 일반인의 사고보다 엄밀하게 개발의 개념을 다뤄야 합니다. 일반인들은 카테고리라고 하면 카테고리 이름만을 떠올리곤 하죠. 따라서 이 코드는 아직 일반인의 사고를 온전히 벗어나지 못한 상태를 보여 줍니다.

해결: 변수명의 명확화

변수명을 어떻게 개선할 수 있을까요? 명확성을 위해 $category_name과 같이 변수의 실제 내용을 정확히 반영하는 이름을 사용해야 합니다.

수정된 코드는 다음과 같습니다:

@foreach($all_category_names as $category_name)
<label>
<input type="checkbox"
name="selected_category_names[]"
value="{{ $category_name }}">
{{ $category_name }}
</label>
@endforeach

결론

명확한 변수명을 선택하는 것은 코드의 이해도와 가독성을 높여 코딩을 효율적으로 만드는 매우 중요한 요소입니다. 변수명은 코드의 의도와 목적을 전달하는 역할을 하기 때문입니다.

예를 들어, 변수명을 보고 객체를 기대했으나 실제로는 문자열이 전달되는 경우, 운이 나쁜 경우에는 치명적인 이슈를 초래할 수도 있습니다. 동료 개발자나 미래의 자신을 함정에 빠뜨리는 일이 될 수 있는 것이죠.

코드를 작성할 때 이름이 명실상부한지 체크하는 습관을 들입시다.

읽어 주셔서 감사합니다. 🌟👩‍💻👨‍💻

👇 카테고리 글 목록

대표글

댓글 남기기