오픈소스 식별자 명명 규칙: 인기와 일관성 분석

오픈소스 식별자 명명 규칙: 인기와 일관성 분석

초록

본 연구는 Java, C, C++ 로 구현된 48개의 인기 오픈소스 프로젝트에서 식별자 명명 규칙을 자동 추출·분석한다. 정규표현식 기반 도구로 CamelCase와 PascalCase 가 가장 많이 사용되는 반면, Hungarian 표기법은 급격히 감소하고 있음을 확인했다. 또한 언어별 일관성을 비교했을 때 Java 프로젝트가 가장 높은 일관성을 보였으며, C·C++ 프로젝트는 상대적으로 변동이 크다. 연구 결과는 교육·산업 현장에서 표준화된 명명 규칙 채택의 필요성을 강조한다.

상세 분석

본 논문은 소프트웨어 유지보수 비용이 급증함에 따라 식별자 명명 규칙의 표준화 필요성을 제기하고, 실제 오픈소스 프로젝트에서 그 현황을 정량적으로 파악하고자 한다. 연구자는 먼저 GitHub 등에서 스타 수·포크 수가 높은 48개의 프로젝트를 선정했으며, 이들 프로젝트는 각각 Java(16개), C(16개), C++(16개) 로 균등하게 배분되었다. 식별자 추출을 위해 정규표현식 기반의 자동화 도구를 구현했는데, 이 도구는 변수·함수·클래스·열거형 등 다양한 선언문을 대상으로 하며, 주석·문자열 리터럴을 제외하도록 설계되었다. 추출된 식별자는 사전 정의된 5가지 주요 명명 규칙—CamelCase, PascalCase, snake_case, kebab-case, Hungarian notation—에 매핑되어 각 규칙별 사용 빈도를 계산하였다.

분석 결과, 전체 프로젝트에서 CamelCase 가 48.7%, PascalCase 가 22.3% 로 가장 높은 비중을 차지했으며, snake_case 는 주로 C·C++ 프로젝트에서 15% 수준으로 나타났다. 반면 Hungarian notation 은 전체 평균 2.1%에 불과했으며, 특히 최신 C·C++ 프로젝트에서는 거의 사용되지 않았다. 이러한 현상은 객체지향 언어인 Java에서 클래스·메서드 명명에 CamelCase·PascalCase 가 자연스럽게 채택된 반면, 절차적 언어인 C·C++ 에서는 전통적인 Hungarian 표기법이 점차 사라지고 있음을 시사한다.

일관성 측면에서는 각 프로젝트별로 동일한 명명 규칙을 적용한 비율을 ‘일관성 점수’로 정의하였다. Java 프로젝트는 평균 0.84(0~1 사이) 로 가장 높은 일관성을 보였으며, C 프로젝트는 0.62, C++ 프로젝트는 0.58 로 상대적으로 낮았다. 이는 Java 커뮤니티가 코딩 컨벤션을 강력히 권장하고, IDE·빌드 도구가 자동 검증 기능을 제공하는 환경적 요인이 작용했을 가능성을 제시한다.

논문은 또한 도구의 한계와 향후 연구 방향을 논의한다. 정규표현식 기반 추출은 복잡한 매크로·템플릿 코드에서 오탐·누락이 발생할 수 있으며, 다국어 프로젝트나 혼합 언어 환경에서는 추가적인 파싱이 필요하다. 향후에는 AST(추상 구문 트리) 기반 분석과 머신러닝을 활용한 명명 규칙 자동 분류, 그리고 명명 규칙이 코드 가독성·버그 발생률에 미치는 영향을 정량화하는 연구가 제안된다.