[.NET REFERENCE] 명명 규칙 (Naming Rule) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
개발 업무시 각 개발 요소에 대한 이름으로 명명 규칙(Naming Rule)을 준수함으로써 코드의 완전성과 가독성을 향상시키고 명확한 의미 부여를 생산성을 높힐 수가 있습니다. 1. 명명 규칙 준수를 통한 업무 생산성 효과 - 일종의 규약을 설정하여 프로젝트 개발자 및 구성원 들간의 원활한 업무적 의사소통 가능 - 업무 단계별 산출물 사이의 일관성 유지 - 명확한 의미 부여로 산출물 사이의 연관성 및 코드 가독성을 높힘 2. 명명 규칙 준수시 공통 사항 - 업무 영역에 적합하고 연관되게 정의된 용어를 사용 - 같은 유형의 요소에 대해서는 혼동을 방지하기 위해, 유사 명칭이나 대소문자만 다른 같은 명칭 사용 금지 3. 대소문자 혼용 - 여러 개의 단어로 이루어진 이름의 경우 대소문자를 적절히 혼용하여 코드의 가독성을 향상시킵니다. (예시) MemberInfo, ProductDetail, FlightReservation - 대소문자 혼용 기법
4. 약어 사용을 자제 - 가능한 한 단어 전체를 사용 ==> 코드의 가독성 및 의미 파악 명확 (예시) ProCat --> ProductCatalog - 명칭이 지나치게 길어지는 경우, 일반적으로 통용되거나 사전에 정의된 약어를 적절히 사용 (예시) Temporary --> Temp, Information --> Info, UserInterface --> UI, Number --> No - 약어 사용시, 2글자 단어는 Uppercase을, 2글자 초과시는 Pascal 또는 Camel case을 적용하여 사용 (예시) System.Web.Ui --> System.Web.UI, HTMLButton --> HtmlButton, UserControlCheck --> UCCheck 5. 단어 사용시 주의사항 - 업무에 적합하고 연관된 단어를 선정, 정의 - 같은 유형시 유사한 명칭이나 대소문자만 서로 다르게 한 명칭 사용 금지 - .NET Framework의 네임스페이스와 중복되지 않아야 함 - .NET Framework 및 각 언어 (C#, VB.NET)에서 미리 정의된 키워드(keyword) 이름과 중복되지 않아야 함 6. 네임스페이스(Namespace) 명명 규칙 - 네임스페이스 이름은 Pascal case을 적용 (기본 구조) 회사명.도메인/부서.애플리케이션/시스템명.하위시스템.논리적계층 (예시) Microsoft.Windows.WindowsServer.IIS - 필요에 따라서는 업무 시스템에 맞게 '도메인/부서', '하위 시스템', '논리적 계층' 등의 부분 이름은 생략이 가능
(예시) 회사명.부서.애플리케이션 --> COMPANY.Development.MessengerApp 7. 클래스(Class) 명명 규칙 - 명사 / 명사구 사용 - Pascal case 적용 - C++ 에서의 MFC 스타일처럼 클래스를 나타내는 C 등의 접두사를 사용하지 않음 (예시) CMessengerInfo --> MessengerInfo - 클래스의 성격에 따라 접두사 또는 접미사를 적절히 사용 - 권장되는 클래스 명명 규칙
8. 인터페이스(Interface) 명명 규칙 - 대문자 I 를 접두사로 사용하여 인터페이스임을 표시 (예시) IServiceProvider, IComponent - 다른 내용은 클래스 명명 규칙과 동일 9. 메서드(Method) 명명 규칙 - 동사 / 동사구(동사 + 명사) 사용 - Pascal case 적용 - Business Logic, Data Access 계층의 클래스 메서드는 사전에 약속된 동사 사용 * Business Logic : 동사 + 명사 (조합) * Data Access : 동사 - Business Logic과 Data Access 계층 클래스 메서드 명명 비교
10. 열거형(Enum) 명명 규칙 - Pascal case 적용 - 약어는 꼭 필요한 경우에만 사용 - 열거형 type 이름에 Enum 접두사를 사용하지 않음 - 열거형 type : 단수형 이름, 비트 필드 : 복수형 이름 사용 - 비트 필드 열거형에는 항상 FlgAttribute를 추가 11. 변수(Variant) 및 필드(Field) 명명 규칙 - 변수 이름은 짧으면서도 의미가 있는 단어 사용. 명사 / 명사구 사용 - 헝가리안 표기법은 가급적 사용하지 않음 - 루프 카운터(loop counter; 예 for문 등)를 제외하고는 모호한 이름(i, j, s, a 등)을 사용하지 않음 - 메서드의 매개변수(parameter) : 매개변수의 이름과 type을 통해 매개변수의 의미를 확인할 수 있을 정도로 설명적이어야 함 - 매개변수(parameter), 지역 변수, 인스턴스 필드(instance field) : Camel case 적용 - 정적 필드(static field) : Pascal case 적용 - 데이터 바인딩(data binding)시 데이터 바인딩 UI 컨트롤의 필드 이름과 데이터베이스의 필드 이름은 서로 동일하게 선언 12. 상수(Constants) 명명 규칙 - Uppercase 적용 (모두 대문자 사용) - 단어와 단어 사이는 _ 로 연결 (예시) int MAX_COUNT = 1000; 13. 속성(Property) 명명 규칙 - 명사 / 명사구 사용 - Pascal case 적용 - 헝가리안 표기법을 사용하지 않음 - 속성 : 내부 type (private)과 동일한 이름 사용 (단, VB.NET의 경우 내부 type 이름 앞에 m_ 접두사 사용, 예시 : m_Age) - Private 인스턴스 필드를 노출시, 속성명은 인스턴스 필드의 Camel case를 Pascal case로 전환 (단, VB.NET의 경우 내부 type 이름 앞에 m_ 접두사 사용) (예시) C# 언어를 사용하여 속성 명명 규칙을 적용한 코드 예시
14. 이벤트(Event) 명명 규칙 - Pascal case 적용 - 헝가리안 표기법을 사용하지 않음 - 이벤트 처리기 이름 : EventHandler 접미사 사용 (예시) MouseEventHandler - 2개의 매개변수 지정 : sender, e - 이벤트 인수 클래스 이름 : EventArgs 접미사 사용 (예시) MouseEventArgs (예시) public delegate void MouseEventHandler(object sender, MouseEventArgs e); - 시점을 나타내는 경우, BeforeXXX / AfterXXX 대신 ~ing / ~(e)d 형태를 사용 (예시) BeforeClose, AfterClose --> Closing, Closed |
'Framework' 카테고리의 다른 글
[펌]Mircrosoft Office 2007 Groove 사용 방법 (0) | 2009.09.02 |
---|---|
XML 특수문자 처리 (0) | 2009.08.11 |
.NET 암호화 (Cryptography in .NET) (0) | 2009.06.30 |
ASP.NET 3.5 & AJAX & LINQ Tutorial (0) | 2009.06.30 |
ASP.NET MVC View (뷰)에 데이터 출력하기~LINQ to SQL 만들기 (0) | 2009.06.29 |