ASP.NET 에서의 페이지 명명에 대하여 ASP.NET

작명은 언제나 괴로운 일이다. 잘 짜여진 코딩 가이드가 있건 없건간에, 오직 생각없는 사람만이 이 일을 아무런 수고 없이 할 수 있다 :-)
내 경우 최근 프로젝트 진행하면서 기존 방식을 버리고 타 회사의 가이드를 강제로 따라야 했는데,
그쪽에서 혹시 미비한 점이 있으면 알려달라고 하여 ASP.NET 에서의 작명에 대해서 몇가지 느낀 것들을 나누어 풀어볼까 한다.

우선 페이지 명명부터 시작해 보자.

보통 ASP.NET에서 많이 사용하는 페이지 명명 방식은 Default.aspx 처럼 첫 글자를 대문자로 시작하는 것이다(Pascal Case). 왜냐면 보통 ASP.NET 프로젝트를 생성하거나 웹폼 페이지를 추가하려 하면 기본으로 위와 같이(WebForm1.aspx) 생성되기 때문이다. 그러나 내 경우 소문자로 명명하는 것을 선호하며, 단어와 단어 사이는 밑줄(_)로 연결하는 것을 선호한다. 이렇게 하면 몇 가지 잇점이 있다.

첫째. 사용하는 데 편리하다. 주문 페이지와 그에 따른 엔티티를 생성하는 일을 상상해 보자. 아마도 주문하는 페이지의 이름은 Order.aspx 일 것이고, 해당 엔티티의 이름도 Order 일 것이다. 이제 Order.aspx의 코드 비하인드에서 해당 클래스를 이용하고자 하면, 반드시 다음과 같이 사용해야 한다.

namespace1.Order order = new namespace1.Order();

페이지를 소문자로 하면 이와 같은 불편을 줄일 수 있다.

둘째. 구성원들이 페이지 명명 규칙을 어길 가능성이 줄어든다. CS 혹은 HTML 코드상에 URL을 기입할 경우 대문자를 소문자로 쓴다고 해서 문제가 생기는 일은 흔치 않기 때문에, 여러 사람이 작성한 최종 코드 안에는 http://url/Default.aspxhttp://url/default.aspx 가 마구 섞여 어지럽게 된다. 또 파일명을 무심하게 소문자로 작성하는 경우에도 별 문제가 안 생기기 때문에 추후에야 발견되는 경우가 많다. 이 경우 PascalCase로 바로잡으려고 해도 대소문자를 가리지 않는 윈도우의 파일 시스템에서는 SCM에 따라 종종 귀찮은 일을 겪어야 한다. (SVN의 경우, default.aspx를 삭제 후 Default.aspx를 재등록하는 과정이 필요하다. TortoiseSVN 같은 일부 툴에서 제공하는 Rename도 결국 이것이다. 이때 History가 이어지지 않는 것이 문제가 된다.)


Rename 기능을 사용한 파일

한편 url 기입시의 불편을 덜고자 모든 링크를 소문자로만 작성하게 한다고 하면 가독성도 떨어질 뿐더러, 유닉스/아파치 같은 다른 환경에서는 URL의 대소문자를 면밀히 따지기 때문에 그다지 좋은 습관이 아니라고 할 수 있다. Classic ASP에서 VBScript 변수의 대소문자를 선언 당시와 맞추어 쓰기를 권장하는 것과 같은 맥락이다.

혹자는 일반적인 클래스 명명법과 페이지명을 소문자로 작성하였을 때의 괴리감을 언급할 수도 있을 것 같다. 그러나 내가 접한 사례들을 보면 페이지명을 대문자로 하는 경우라도, 많은 경우 디렉터리 명명부터 이미 일반적인 네임스페이스 명명법을 어기고 있다. 웹 폼 페이지를 생성할 때 디렉터리 경로가 곧 네임스페이스가 되기 때문에, /web/user/Order.aspx 는 web.user.Order 라는 클래스가 되는데, 이미 (네임스페이스는 Pascal Case로 한다는, MSDN 등지의) 일반적인 작명 규칙을 벗어나는 것이다. 내 생각에 차라리 웹 사이트의 경로와 파일명은 모두 소문자로 하여 url 작성시의 수고도 줄이고, 클래스명만 보고도 페이지라는 것을 직관적으로 알 수 있게 해주는 편이 더 나을 것 같다.

Tag :
,

Leave Comments