현실 세계에서 사람들이 헝가리 명명 규칙을 사용하나요?
헝가리 명명 규칙, 또는 헝가리 표기법은 여러 해 동안 프로그래머들 사이에서 논쟁의 주제가 되어 왔습니다. 좋은 의도로 개발되었지만, 그것이 오늘날에도 여전히 적용될 수 있는지 많은 사람들이 궁금해합니다. 이 규칙을 배우는 데 시간의 가치가 있는지, 아니면 프로그래밍 언어의 가독성과 유지보수성에 해가 되는지에 대한 질문입니다.
이번 포스트에서는 헝가리 표기법의 유효성, 두 가지 주요 변형, 그리고 현대 코딩 환경에서 유용한지 여부를 탐구해 보겠습니다.
헝가리 표기법이란?
헝가리 표기법은 프로그래밍에서 변수 이름에 해당 변수의 타입이나 의도된 사용에 대한 정보를 접두사로 붙이는 명명 규칙입니다. 헝가리 표기법에는 두 가지 주요 범주가 있습니다:
- 시스템 헝가리 표기법: 변수의 데이터 타입(예:
int
는 정수,str
은 문자열)에 따라 변수에 접두사를 붙입니다. - 앱 헝가리 표기법: 애플리케이션 내에서의 사용에 따라 변수에 접두사를 붙이며, 변수의 맥락을 이해하는 데 도움이 됩니다.
두 변형을 자세히 살펴보기
시스템 헝가리 표기법
- 예시:
int iLength;
시스템 헝가리 표기법에서는 데이터 타입에 중점을 둡니다. 따라서 한눈에 보기에는 조금 더 읽기 쉽습니다. 그러나 프리픽스를 사용함에 따라 단점도 있습니다. 현대 IDE와 스마트 편집기를 사용하면 이러한 프리픽스가 불필요해지는 경우가 많습니다. 이 도구들은 변수 타입을 신속하게 보여줄 수 있기 때문입니다.
앱 헝가리 표기법
- 예시: 길이를 나타내는 변수에
l
을 접두사로 붙이는 경우,int lLength;
앱 헝가리 표기법은 변수의 데이터 타입보다는 변수의 목적에 중점을 둡니다. 이는 코드를 더 잘 이해하는 데 도움이 될 수 있으며, 특히 방정식이나 연산을 형성할 때 유용합니다. 다음과 같은 예에서 볼 수 있습니다:
-
좋은 사용 예:
int vBox = aBottom * lVerticalSide; // 이는 타당합니다
-
혼란스러운 사용 예:
int aBottom = lSide1; // 이것은 의도에 대한 질문을 일으킵니다
헝가리 표기법이 중복으로 여겨질 수 있는 이유
원래의 목적에도 불구하고 많은 개발자들은 헝가리 표기법, 특히 시스템 헝가리 표기법이 그 relevancy를 잃었다고 믿고 있습니다. 고려해야 할 몇 가지 포인트는 다음과 같습니다:
- 스마트 편집기: 현대의 개발 환경과 편집기는 변수 선언을 한눈에 제공하여 프리픽스 기반의 타입 지시자가 필요성을 줄입니다.
- 가독성 문제: 프리픽스가 변수 이름을 복잡하게 만들어 코드의 가독성을 더욱 떨어뜨릴 수 있습니다.
결과적으로, 많은 프로그래머들은 주석과 같은 방식을 사용하지 않고도 코드 구성을 향상시키는 명확하고 설명적인 변수 명명 전략을 선택합니다.
명명 규칙에 대한 개인적인 경험
나는 일반적으로 헝가리 표기법의 두 가지 형태를 사용하지 않지만, 개인적인 접두사 스타일로 개인 클래스 필드에 밑줄(_)을 사용합니다. 이 독특한 명칭은 헝가리 프리픽스의 혼란이나 복잡성을 피하면서 변수 타입을 구분하는 데 도움이 됩니다. 나는 공개 속성에는 카멜 케이스를 포함한 일관된 명명 형식을 따르며, 이는 코드를 더 깔끔하고 읽기 쉽게 만듭니다.
결론: 헝가리 표기법은 가치가 있을까요?
헝가리 표기법에 대한 논쟁은 종종 그것이 과거에는 유용했을지라도 현대 프로그래밍에서의 실용적인 적용이 제한적이라는 인식으로 귀결됩니다.
결국 헝가리 표기법을 사용할지 여부는 개인의 취향에 달려 있습니다. 개발자는 현대 코딩 관행의 뉘앙스와 장점을 비교하여 판단해야 합니다. 자기 문서화된 코드와 설명적인 변수 이름에 집중하는 것이 장기적으로 더 명확하고 깔끔하며 유지보수하기 쉬운 코드를 제공합니다.
당신의 생각은 무엇인가요?
헝가리 표기법을 사용해본 경험이 있나요, 아니면 다른 명명 규칙을 선호하나요? 아래 댓글에 당신의 생각과 경험을 공유해 주세요!