웹 개발자를 위한 Naming Rule 가이드
이 글은 웹 응용 프로그램을 개발할 때, 필요한 Naming Rule 을 정리한 것이다. 개발자들 사이의 커뮤니케이션과 관리를 위해서 가능한 규칙을 따르는 것이 좋다고 생각한다. 이 규칙들은 정답은 아니지만, 컨설팅을 수행하면서 어느 정도의 시행착오를 거쳐서 정리한 내용이고 웹 개발자들에게 참고가 되기를 바란다. 이 규칙을 각자의 개발 환경에 맞게 보완해서 사용한다면 도움이 될거라 생각된다.
분류 | 대상 | 비고 |
Presentation Services(ASP) | ASP File Name, HTML File Name, Image File Name, Session Level Variable Name(PascalCasing Naming Conversion or CamelCasing Naming Conversion), Script Variable Name, Tag Name, Cookie Name | |
Business Services (Component) | Project File Name(DLL Name), Class Name, Interface(Method, Property) Name | |
Data Services(Database) | Table Name, Field Name, Stored Procedure Name, View Name, Trigger Name | |
모든 이름은 Hungarian 표기법과 PascalCasing Naming Convention을 따르는 것을 원칙으로 한다.
Presentation Services Naming Rule
1. ASP File Name ASP 파일 명은 관리를 쉽게 할 수 있도록 업무에 관련된 이름을 부여한다.
[명명 규칙] 시스템단축명_기능.asp
예) 웹메일 시스템의 자유 게시판의 ASP 파일 명은 wm_FreeBoard.asp로 명명한다.
시스템 단축 명은 프로젝트 관리자가 부여한다.
2. HTML File Name
HTML 파일 명은 관리를 쉽게 할 수 있도록 업무에 관련된 이름을 부여하며, HTML 파일의 확장자는 htm로 명명한다.
[명명 규칙] 시스템단축명_기능.htm
예) 웹메일 시스템의 자유 게시판의 HTML 파일 명은 wm_FreeBoard.htm으로 명명한다.
시스템 단축 명은 프로젝트 관리자가 부여한다.
3. Image File Name
Image 파일 명은 다음과 같은 이름 부여 규칙을 사용한다.
[명명 규칙] 업무단축명_위치_기능.gif
업무 단축명은 가능하다면 ASP 파일의 단축 명을 사용한다.
위치 : 상(t), 중(m), 하(b), 좌(l), 중(m), 우(r)
예1) 웹메일 시스템의 자유 게시판의 우측상단에 있는 목록보기 이미지는 fb_tr_list.gif로 명명한다.
여기서 fb는 FreeBoard의 단축 명이다.
예2) 메인 페이지의 좌측 중앙에 있는 로그온 이미지는 main_ml_LogOn.gif로 명명한다.
웹 응용 프로그램 전반에 공통적으로 사용되는 이미지는 명명 규칙에 “위치”를 포함하지 않으며,
“업무단축명”으로 “cn_”을 사용한다.
예3) 메인 화면에 사용하는 읽기에 대한 공통 이미지는 cn_read.gif로 명명한다.
4. Application Level Variable Name
Application Level의 변수는 다음과 같은 이름 부여 규칙을 사용한다.
[명명 규칙] ap_기능
예) 웹 사이트 방문자 수를 나타내는 Application Level 변수는 ap_VisitCount로 명명한다.
5. Session Level Variable Name
Session Level의 변수는 다음과 같은 이름 부여 규칙을 사용한다.
[명명 규칙] se_기능
예) 사용자 계정을 나타내는 Session Level 변수는 se_UserID로 명명한다.
6. Script Variable Name
스크립트 변수 명은 변수의 Scope에 따라 접두어(“g_” 전역, “l_” 로컬, “p_” 매개변수)를 붙인다.
단, 로컬 변수인 경우에는 Scope를 나타내는 접두어는 생략 가능하다.
[명명 규칙] 접두어_기능
예) 사용자가 선택한 색상을 저장하는 로컬 변수는 “l_Color” 이다.
스크립트에서는 모든 데이터 타입이 Variant이기 때문에, 변수 명에 데이터 형을 표기하지 않는다.
7. Tag Name
태그 명은 태그의 종류를 나타내는 접두어와 기능으로 이름을 부여한다.
[명명 규칙] 접두어_기능
태그는 종류별로 다음과 같은 접두어를 붙인다.
접두어 태그
frm 폼
btn_ 버튼
txt_ 텍스트 박스
mtx_ 멀티라인 텍스트 박스
lbl_ 라벨
chk_ 체크박스
opt_ 옵션버튼
이미지 파일은 확장자로 알 수 있기 때문에 태그의 접두어를 사용하지 않는다.
여기서는 주로 많이 사용하는 태그들의 이름 부여 규칙만을 정의하며,
그 외의 태그들은 개발자가 임의로 이름을 부여해서 사용한다.
예) 사용자 이름을 입력하는 텍스트 박스의 명은 txt_UserName으로 명명한다.
8. Cookie Name
Cookie 명은 관리를 쉽게 할 수 있도록 업무에 관련된 이름을 부여한다.
[명명 규칙] 시스템단축명_기능
예) 웹메일 시스템의 사용자 이름을 저장하는 쿠키의 명은 wm_UserName으로 명명한다.
서브 쿠키 명은 개발자가 임의로 부여한다.
Business Services Naming Rule 1. Visual Basic Project File Name (DLL File Name)
DLL 파일 명은 관리를 쉽게 할 수 있도록 업무에 관련된 이름을 부여한다.
[명명 규칙] 시스템단축명_기능.dll
예) 웹메일 시스템의 자유 게시판을 구현하는 DLL의 파일 명은 wm_FreeBoard.dll로 명명한다.
시스템 단축 명은 프로젝트 관리자가 부여한다.
2. Class Name
비주얼 베이직 프로젝트에 포함된 클래스 파일의 이름은 기본적으로 Query와 Modify로 분류하고,
별도의 비즈니스 로직을 포함하는 클래스는 프로젝트 관리자와 협의 후 부여한다.
Query 클래스는 조회용 메서드를 포함하는 클래스의 명칭이며,
Modify 클래스는 삽입, 수정, 삭제와 같은 트랜잭션이 발생하는 메서드를 포함하는 클래스의 명칭이다.
[명명 규칙] Query, Modify, 업무명
예) 웹메일 시스템의 자유 게시판의 글을 읽는 클래스 파일의 이름은 Query로 명명하며,
ASP에서 사용하기 위한 이 클래스의 ProgID는 wm_FreeBoard.Query이다.
일반적으로 Query와 Modify 이외의 클래스 명을 요하는 경우는 거의 발생하지 않는다.
3. Interface Name (Method, Property)
인터페이스 명은 메서드에 대해서만 기술한다.
MS의 COM+에 등록되는 컴포넌트는 Stateless한 컴포넌트이어야 하기 때문에,
일반적인 경우에는 Property를 사용하지 않는다.
개발팀 별로 메서드에 대한 공통 인터페이스를 정의해야 하며, 정의된 공통 인터페이스를
기준으로 메서드의 이름을 부여해야 한다.
다음은 공통 인터페이스의 몇 가지를 정리한 것이다.
메서드 명 | 설명 |
Insert | 하나의 레코드를 삽입하는 기능 |
Update | 하나의 레코드를 수정하는 기능 |
Delete | 하나의 레코드를 삭제하는 기능 |
Save | 여러 개의 레코드를 삽입, 수정, 삭제하는 기능 |
SelectByWhere | 하나의 조건으로 데이터를 조회하는 기능 |
SelectByName | 이름으로 데이터를 조회하는 기능 |
SelectByCode | 코드로 데이터를 조회하는 기능 |
발생 가능한 모든 메서드를 Brainstorming을 통해서 추출한 후, 협의를 통해서
공통 인터페이스를 정의해야 한다.
Data Services Naming Rule 데이터베이스 명은 별로의 이름 부여 규칙을 정하지 않고 프로젝트 관리자가 시스템에 적합하게 부여한다.
1. Table Name
테이블 명은 관리를 쉽게 할 수 있도록 업무에 관련된 이름을 부여하며,
레코드들의 집합이기 때문에 복수형으로 부여한다.
[명명 규칙] 기능의 복수형
예) 웹메일 시스템의 자유 게시판의 테이블 명은 FreeBoards로 명명한다.
2. Field Name
필드 명은 기능과 관련된 의미로 부여하며, 업무에 관련된 의미는 테이블 명에서 이미 표기하였기 때문에
업무에 관련된 의미는 부여하지 않는다.
[명명 규칙] 기능
예) 웹메일 시스템의 자유 게시판의 날짜 필드 명은 Date로 명명한다.
FreeBoardDate로 표기하지 않도록 주의한다.
3. Stored Procedure Name
저장 프로시저 명은 기준이 되는 테이블 명과 기능과 관련된 의미로 부여한다.
시스템 저장 프로시저와 구별하기 위해서 접두어 “up_”를 붙인다.
[명명 규칙] up_테이블명_기능
예) 웹메일 시스템의 자유 게시판의 쓰기 기능의 저장 프로시저 명은 up_FreeBoards_Insert로 명명한다.
4. View Name
뷰 명은 기준이 되는 테이블 명을 단수형으로 부여한다. 뷰를 나타내기 위해서 접두어 “view_”를 붙인다.
[명명 규칙] view_테이블명의단수형
예) 웹메일 시스템의 자유 게시판의 데이터를 일자를 조건으로 조회하기 위해서 사용될 뷰의 명은
view_FreeBoard로 명명한다.
5. Trigger Name
트리거 명은 기준이 되는 테이블 명과 기능으로 부여한다.
[명명 규칙] 테이블명_기능
예) 웹메일 시스템의 자유 게시판의 데이터를 삭제할 경우에 발생할 트리거의 명은
FreeBoards_Delete로 명명한다.