Eclipse 플랫폼
이름 지정 규칙

2002년 6월 24일 최종 개정판 - Eclipse 프로젝트 R2.0용 버전

Eclipse 플랫폼의 이름 지정 규칙 및 도움말

Java 패키지

Eclipse 플랫폼은 Java 패키지 콜렉션으로 구성되어 있습니다. 패키지 이름 공간은 Sun의 패키지 이름 지정 도움말에 따라 관리되며, 패키지 서브트리 소유자의 사전 승인 없이는 서브패키지를 작성할 수 없습니다. Eclipse 플랫폼의 패키지는 모두 org.eclipse 서브패키지입니다. org.eclipse 다음의 첫 번째 패키지 이름 컴포넌트를 패키지 이름이라고 합니다. 다음의 org.eclipse 주 패키지는 Eclipse 2.0 릴리스에서 지정됩니다.
org.eclipse.ant[.*] - Ant 지원
org.eclipse.compare[.*] - 비교 지원
org.eclipse.core[.*] - 플랫폼 코어
org.eclipse.debug[.*] - 디버그
org.eclipse.help[.*] - 도움말 지원
org.eclipse.jdi[.*] - JDI(Java Debug Interface)의 Eclipse 구현
org.eclipse.jdt[.*] - JDT(Java Development Tool)
org.eclipse.jface[.*] - JFace
org.eclipse.pde[.*] - PDE(Plug-in Development Environment)
org.eclipse.search[.*] - 검색 지원
org.eclipse.swt[.*] - SWT(Standard Widget Toolkit)
org.eclipse.team[.*] - 팀 지원 및 버전과 구성 관리
org.eclipse.tomcat[.*] - Apache tomcat 지원
org.eclipse.ui[.*] - Workbench
org.eclipse.update[.*] - 갱신/설치
org.eclipse.webdav[.*] - WebDAV 지원
다음의 패키지 이름 세그먼트는 예약되어 있습니다.
internal - API가 포함되지 않은 내부 구현 패키지를 표시합니다.
tests - 테스트 스위트만 포함된 비API 패키지를 표시합니다.
examples - 예만 포함된 비API 패키지를 표시합니다.
이러한 이름은 규정자로 사용되며 주 패키지 이름 다음에만 나타나야 합니다. 예를 들어,
org.eclipse.core.internal.resources - 올바른 사용법
org.eclipse.internal.core.resources - 올바르지 않음. internal이 주 패키지 이름 앞에 있습니다.
org.eclipse.core.resources.internal - 올바르지 않음. internal이 주 패키지 이름 바로 다음에 있지 않습니다.
Eclipse 플랫폼의 구성 방법과는 별도로 Eclipse 플랫폼은 코어UI로 나눠집니다. 코어로 분류되는 항목은 창 시스템과 독립적이며, UI가 아닌 코어에 따라 달라지는 응용프로그램 및 플러그인은 헤드 없이 실행될 수 있습니다. 코어와 UI 간의 차이는 API와 비API 간의 차이와 다르며 코어와 UI에는 모두 API가 포함되어 있습니다. Eclipse 플랫폼의 UI 부분은 Workbench라고 합니다. Workbench는 연결형 컴포넌트에서 빌드된 복잡한 UI를 사용하여 제품을 빌드하기 위한 상위 레벨의 UI 프레임워크입니다. Workbench는 JFace, SWT 및 플랫폼 코어 맨 위에 빌드됩니다. SWT(Standard Widget Toolkit)는 기본 창 시스템에 정보를 전달하는 하위 레벨의 OS 플랫폼 독립 수단입니다. JFace는 특성 표시기 등의 복잡한 UI 부분을 빌드하는 데 유용한 중간 레벨의 UI 프레임워크입니다. SWT와 JFace는 정의에 따른 UI입니다. Java 도구는 Workbench의 맨 위에 빌드되는 Java IDE입니다. 여기에서 다시 본 주제로 돌아갑니다.

API 패키지  API 패키지에는 ISV에서 사용 가능한 클래스 및 인터페이스가 포함됩니다. API 패키지의 이름은 ISV에 적합하게 지정해야 합니다. ISV가 기억해야 하는 패키지 유형의 수는 적어야 합니다. API 패키지가 많으면 ISV가 가져와야 하는 패키지를 인식하기 어려울 수 있기 때문입니다. API 패키지에서 모든 public 클래스 및 인터페이스는 API로 간주됩니다. 비API 패키지의 이름 지정 설계와 혼동되지 않도록, API 패키지 이름에는 internal, tests 또는 examples가 포함될 수 없습니다.

내부 구현 패키지  플랫폼 구현의 일부이지만 ISV에 노출되어야 하는 API가 없는 모든 패키지는 내부 구현 패키지로 간주됩니다. 모든 구현 패키지는 주 패키지 이름 바로 다음에 발생하는 태그를 사용하여 internal로 플래그되어야 합니다. ISV는 internal로 표시된 모든 패키지가 경계 외부에 있는 것으로 명령을 받습니다. 즉, ".internal."에 대한 간단한 텍스트 검색에서 소스 파일에 있는 불확실한 참조를 발견하면 이에 따라 .class 파일에서는 "/internal/"이 불확실한 항목이 됩니다.

테스트 스위트 패키지  테스트 스위트가 포함된 모든 패키지는 주 패키지 이름 바로 다음에 발생하는 태그를 사용하여 tests로 플래그되어야 합니다. 완전히 자동화된 테스트가 표준이므로 예를 들어, org.eclipse.core.tests.resources에는 org.eclipse.core.resources의 API에 대한 자동화 테스트가 포함됩니다. 실제 테스터가 있어야 하는 대화식 테스트는 마지막 패키지 이름 세그먼트에 interactive로 플래그되어야 합니다. 예를 들어, org.eclipse.core.tests.resources.interactive에는 해당되는 대화식 테스트가 포함됩니다.

예제 패키지  ISV에 제공되는 예제가 포함된 모든 패키지는 주 패키지 이름 바로 다음에 발생하는 태그를 사용하여 examples로 플래그되어야 합니다. 예를 들어, org.eclipse.swt.examples에는 SWT API의 사용 방법을 보여주는 예가 포함됩니다.

추가 규칙:

클래스 및 인터페이스

Sun의 이름 지정 도움말에서는 다음과 같이 규정합니다.

클래스 이름은 각 내부 단어의 첫째 문자가 대문자로 표시된 대소문 혼용 문자로 명사여야 합니다. 클래스 이름에는 되도록 간단하고 설명적인 이름을 사용하십시오. 또한, URL이나 HTML과 같이 전체 단어가 아닌 축약형으로 더 많이 사용되는 경우를 제외하고는 두문자어 및 약어 대신 전체 단어를 사용하십시오.
 
예제:
    class Raster;
    class ImageSprite;
 
인터페이스 이름에도 클래스 이름과 같이 첫 글자를 대문자로 사용합니다.

인터페이스 이름의 경우에는 "I" 인터페이스 규칙을 따릅니다. 즉, 모든 인터페이스 이름에는 "I" 접두부를 사용합니다(예: "IWorkspace" 또는 "IIndex"). 이 규칙을 사용하면 인터페이스 이름을 보다 쉽게 인식할 수 있으므로 코드를 읽기가 쉬워집니다. Microsoft COM 인터페이스는 이 규칙을 따릅니다.

추가 규칙:

메소드

Sun의 이름 지정 도움말에서는 다음과 같이 규정합니다.

메소드 이름은 첫째 문자만 소문자로 표시되고 각 내부 단어의 첫째 문자는 대문자로 표시된 대소문자 혼용 동사여야 합니다.
 
예제:
    run();
    runFast();
    getBackground();
추가 규칙:

변수

Sun의 이름 지정 도움말에서는 다음과 같이 규정합니다.

변수만 제외하고, 모든 인스턴스, 클래스 및 클래스 상수에서는 첫째 문자를 소문자로 표시하는 대소문자 혼용 방식을 사용합니다. 내부 단어는 대문자로 시작합니다. 변수 이름은 밑줄(_) 또는 달러 부호($) 문자로 시작할 수 없습니다(두 문자 모두 허용되는 경우도 포함).
 
변수 이름은 짧으면서도 의미가 있어야 합니다. 변수 이름은 쉽게 연상할 수 있는 이름을 선택해야 합니다. 즉, 익숙하지 않은 사용자도 변수의 용도를 쉽게 알 수 있도록 해야 합니다. 임시용 "제거" 변수를 제외하고는 한 문자로 된 변수 이름을 사용하면 안됩니다. 임시 변수의 일반적인 이름은 정수에 사용하는 i, j, k, m, n과, 문자에 사용하는 c, d, e입니다.
 
예제:
    int i;
    char c;
    float myWidth;

참고: "fWidget" 같이 상수가 아닌 필드 이름에 "f" 접두부를 붙이는 규칙은 이제 사용하지 않습니다.

상수

Sun의 이름 지정 도움말에서는 다음과 같이 규정합니다.

변수 선언된 클래스 상수와 ANSI 상수의 이름은 모두 대문자로 표시하고 각 단어를 밑줄("_")로 구분해야 합니다.
 
예제:
    static final int MIN_WIDTH = 4;
    static final int MAX_WIDTH = 999;
    static final int GET_THE_CPU = 1;

플러그인 및 확장점

Eclipse 플랫폼의 일부인 플러그인을 포함하여, 자원 및 Workbench 플러그인 등 모든 플러그인에는 Java 패키지와 동일한 이름 지정 패턴을 따르는 고유 ID가 있어야 합니다. 예를 들어, Workbench 플러그인의 이름은 org.eclipse.ui[.*]로 지정됩니다.

플러그인 이름 공간은 계층 구조로 관리되며, 엔클로징 이름 공간 소유자의 사전 승인 없이는 플러그인을 작성할 수 없습니다.

다중 확장이 예상되는 확장점에는 복수형 이름이 있어야 합니다. 예를 들어, "builder" 대신 "builders"를 사용합니다.