밑줄 접두사는 쓰지 않기

밑줄 접두사는 쓰지 않기

어떤 프로그래밍 언어에서는 식별자 앞에 _like_this처럼 밑줄을 붙이는 게 흔해요. 키워드와의 충돌이나 이름 충돌을 피하고, 식별자에 붙는 추가 정보—가령 비공개(private) 여부, 복잡한 데이터 불변식의 존재, 시맨틱 버저닝(semantic versioning)에서 제외된다는 사실, 맥락별 타입 리플렉션의 의미 같은 것—를 표시하는 용도예요.

그런데 Zig에는 애초에 비공개 필드라는 개념이 없어요. 이 가이드는 '마치 비공개 필드가 있는 것처럼' 흉내 내는 걸 권하지 않습니다. 대신 필드는 그 의미(semantics)에 맞게 신중하게 이름을 짓고, 문서를 통해 데이터 불변식을 위반하지 않으면서 필드를 어떻게 사용해야 하는지 알려줘요. 만약 어떤 필드가 다른 요소들과 같은 시맨틱 버저닝 규칙을 따르지 않는다면, 그 예외를 Doc Comments에 표시해 두어야 해요.

타입 리플렉션과 관련해서는, 필드 이름에 의미를 담으려 하기보다 타입 시스템을 활용하는 쪽이 오류가 덜 나고 유지보수하기도 쉬워요.

이름 충돌 얘기로 넘어가면, 밑줄 하나로는 겉보기에 똑같은 두 이름이 실제로 어떻게 다른지 설명하기에 부족해요. 두 이름을 헷갈릴 위험이 없다면, 바깥 스코프에서는 더 길고 서술적인 이름을, 안쪽 스코프에서는 더 짧게 줄인 이름을 쓰는 걸 이 가이드는 추천해요. 마지막으로 키워드 충돌은 String Identifier Syntax로 피하는 게 더 낫고요.

출처: Zig Documentation

더 알아보기

  • 예외를 다르게 취급해야 할 필드는 필드 이름이 아니라 Doc Comments로 표시해요.
  • 밑줄 접두사 대신: 충돌은 String Identifier Syntax로, 의미 구분은 타입 시스템으로 해결해요.