온라인 어플리케이션 명명규칙
1. 어플리케이션
어플리케이션 단위는 관리 주체가 다르고, 어플리케이션 간 기능 호출을 최소화 할 수 있는 단위로 구분 한다. 어플리케이션은 Studio의 'Bxm 어플리케이션' 메뉴를 통해 생성한다.
본 장에서 나오는 예시는 Bxm 표준 샘플 코드를 대상으로 하므로 프로젝트 상황에 따라 유동적으로 변경이 가능하다.
| 구분 | 설명 | 
|---|---|
| 구성 | L1코드 + L2코드 + L3코드 | 
| 적용사례 | BxmDftSmp | 
| 기본원칙 | 
 | 
2. Service
Service는 Studio 의 'Service 클래스' 메뉴를 통해 생성 되며 Service의 클래스 이름과 Service 이름은 다음과 같이 작성한다.
| 구분 | 설명 | 
|---|---|
| Package - 구성 | L1코드 + . + L2코드 + . +L3코드 + . + online + . + service | 
| Package - 적용사례 | bxm.dft.smp.online.service | 
| Package - 기본원칙 | 
 | 
| 클래스 - 구성 | S + L3코드 + 화면번호 4자리(고유번호) + Service 구분 1자리(알파벳) | 
| 클래스 - 적용사례 | SSMP1001A, SSMP1002S | 
| 클래스 - 기본원칙 | 
 | 
| 클래스 - 부가정보 | 
 | 
| 클래스 - 작성 예 |  | 
| 오퍼레이션 - 구성 | Service 명의 소문자 + 일련번호 3자리 | 
| 오퍼레이션 - 적용사례 | ssmp1001a001 | 
| 오퍼레이션 - 기본원칙 | 
 | 
| 오퍼레이션 - 부가정보 | 
 | 
| 오퍼레이션 - 작성 예 |  | 
3. Bean
프레임워크에서 BC(비즈니스 컴포넌트)는 Bean으로 사용되며 @BxmBean 어노테이션으로 정의 한다. BC는 Studio 의 'Bean 클래스' 메뉴를 통해 생성되며 BC의 이름은 다음과 같이 작성한다.
| 구분 | 설명 | 
|---|---|
| Package - 구성 | L1코드 + . + L2코드 + . +L3코드 + . + online 또는 batch + . + bean | 
| Package - 적용사례 | bxm.dft.smp.online.bean | 
| Package - 기본원칙 | 
 | 
| 클래스 - 구성 | M + L3코드 + (표준단어)* + (일련번호 2자리)? | 
| 클래스 - 적용사례 | MSmpEmpInfMng, MSmpEmpInfMng01 | 
| 클래스 - 기본원칙 | 
 | 
| 클래스 - 부가정보 | 
 | 
| 클래스 - 작성 예 |  | 
| 메소드 - 구성 | 메소드 prefix + (표준단어)* | 
| 메소드 - 적용사례 | getEmpInf - 샘플 직원정보를 얻는다. addEmpInf - 샘플 직원정보를 추가한다. | 
| 메소드 - 기본원칙 | 
 | 
| 메소드 - 부가정보 | 
 | 
| 메소드 - 작성 예 |  | 
4. DBIO
DBIO는 데이터베이스에 직접 접근하는 객체로 Bean을 통해서만 호출이 가능하다. DBIO는 Studio 의 'DBIO' 메뉴를 통해 생성되며 DBIO의 이름은 다음과 같이 작성한다.
| 구분 | 설명 | 
|---|---|
| Package - 구성 | L1코드 + . + L2코드 + . +L3코드 + . + online 또는 batch + . + dbio | 
| Package - 적용사례 | bxm.dft.smp.online.dbio | 
| Package - 기본원칙 | 
 | 
| 클래스 - 구성 | 
 | 
| 클래스 - 적용사례 | 
 | 
| 클래스 - 기본원칙 | 
 | 
| 클래스 - 부가정보 | - DBIO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. | 
| 클래스 - 작성 예 | 소스코드를 직접 생성하지 않는다. | 
| SQL ID - 구성 | 
 | 
| SQL ID - 적용사례 | selectOne01 selectOneEmpNm selectOneEmpNm01 | 
| SQL ID - 기본원칙 | 
 | 
5. Default DBIO
테이블을 기반으로 DBIO와 IO를 자동 생성 해주는 Studio의 편의 기능중 하나로 Default DBIO의 표준은 다음과 같다.
(1) 생성된 DBIO
| 구분 | 설명 | 
|---|---|
| Package - 구성 | L1코드 + . + L2코드 + . +L3코드 + . + online 또는 batch + . + dbio | 
| Package - 적용사례 | bxm.dft.smp.online.dbio | 
| Package - 기본원칙 | 
 | 
| 클래스 - 구성 | - D + 테이블 이름 ( 본 가이드에선 SMP_EMP_TST 테이블 사용 ) + 000 | 
| 클래스 - 적용사례 | - PK CRUD : DSmpEmpTst000 | 
| 클래스 - 기본원칙 | 
 | 
| 클래스 - 부가정보 | - DBIO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. | 
| 클래스 - 작성 예 | 소스코드를 직접 생성하지 않는다. | 
| SQL ID - 구성 | 
 | 
| SQL ID - 적용사례 | selectOneLock_SYS_C0011417 insert_SYS_C0011417 | 
| SQL ID - 기본원칙 | 
 | 
(2) 생성된 DBIO의 IO
| 구분 | 설명 | 
|---|---|
| Package - 구성 | L1코드 + . + L2코드 + . +L3코드 + . + online 또는 batch + . + dbio.dto | 
| Package - 적용사례 | bxm.dft.smp.online.dbio.dto | 
| Package - 기본원칙 | 
 | 
| 클래스 - 구성 | - 테이블 이름 ( 본 가이드에선 SMP_EMP_TST 테이블 사용 ) + 000 + Io | 
| 클래스 - 적용사례 | SmpEmpTst000Io | 
| 클래스 - 기본원칙 | 
 | 
| 클래스 - 부가정보 | - IO 자바 소스는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. | 
| 클래스 - 작성 예 | 소스코드를 직접 생성하지 않는다. | 
6. IO
IO 이름은 다음의 경우에 따라 구분되어 작성된다. Bean 용 IO는 가급적 Service, DBIO의 IO를 재사용 하도록 하고 필요한 경우에만 따로 만든다.
(1) Service Input/Output: Service의 입출력을 위한 IO
(2) DBIO Input/Output: DBIO의 입출력을 위한 IO
(3) 인터페이스 Input/Output: EAI/MCI 등의 인터페이스를 위한 IO
(4) Bean Input/Output: Bean의 입출력을 위한 IO
IO는 'IO' 메뉴를 통해 생성되며 IO의 이름은 다음과 같이 작성한다.
6.1. Service Input/Output을 위한 IO 작성
| 구분 | 설명 | 
|---|---|
| Package - 구성 | L1코드 + . + L2코드 + . +L3코드 + . + online 또는 batch + . + service.dto | 
| Package - 적용사례 | bxm.dft.smp.online.service.dto | 
| Package - 기본원칙 | 
 | 
| 클래스 - 구성 | 
 | 
| 클래스 - 적용사례 | 
 | 
| 클래스 - 기본원칙 | 
 | 
| 클래스 - 부가정보 | - IO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. | 
| 클래스 - 작성 예 | 소스코드를 직접 생성하지 않는다. | 
| 메소드 - 구성 | IO는 자바 소스코드가 자동생성 되므로 개발자가 직접 메소드를 구성할 필요가 없다. | 
6.2. DBIO를 위한 IO 작성
| 구분 | 설명 | 
|---|---|
| Package - 구성 | L1코드 + . + L2코드 + . +L3코드 + . + online 또는 batch + . + dbio.dto | 
| Package - 적용사례 | bxm.dft.smp.online.dbio.dto | 
| Package - 기본원칙 | 
 | 
| 클래스 - 구성 | 
 | 
| 클래스 - 적용사례 | 
 | 
| 클래스 - 기본원칙 | 
 | 
| 클래스 - 부가정보 | - IO는 소스코드 생성 방식으로 생성 되므로 사용자가 | 
| 클래스 - 작성 예 | 소스코드를 직접 생성하지 않는다. | 
| 메소드 - 구성 | IO는 자바 소스코드가 자동생성 되므로 개발자가 직접 | 
6.3. 인터페이스를 위한 IO 작성
| 구분 | 설명 | 
|---|---|
| Package - 구성 | L1코드 + . + L2코드 + . +L3코드 + . + online 또는 batch + . + inf.dto | 
| Package - 적용사례 | bxm.dft.smp.online.inf.dto | 
| Package - 기본원칙 | 
 | 
| 클래스 - 구성 | 
 | 
| 클래스 - 적용사례 | 
 | 
| 클래스 - 기본원칙 | 
 | 
| 클래스 - 부가정보 | - IO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. | 
| 클래스 - 작성 예 | 소스코드를 직접 생성하지 않는다. | 
| 메소드 - 구성 | IO는 자바 소스코드가 자동생성 되므로 개발자가 직접 메소드를 구성할 필요가 없다. | 
6.4. Bean을 위한 IO 작성
Bean 메소드의 입력은 기본타입, 일반 객체를 자유롭게 사용할 수 있다. Bean
메소드의 IO가 필요한 경우에는 Service의 IO와 DBIO의 IO를 재사용한다.
재사용이 어려운 경우 다음을 참고하여 생성하여 사용한다.
| 구분 | 설명 | 
|---|---|
| Package - 구성 | L1코드 + . + L2코드 + . +L3코드 + . + online 또는 batch + . + bean.dto | 
| Package - 적용사례 | bxm.dft.smp.online.bean.dto | 
| Package - 기본원칙 | 
 | 
| 클래스 - 구성 | 
 | 
| 클래스 - 적용사례 | 
 | 
| 클래스 - 기본원칙 | 
 | 
| 클래스 - 부가정보 | - IO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. | 
| 클래스 - 작성 예 | 소스코드를 직접 생성하지 않는다. | 
| 메소드 - 구성 | IO는 자바 소스코드가 자동생성 되므로 개발자가 직접 메소드를 구성할 필요가 없다. | 
7. Variables / Constants
Service, Bean 클래스의 멤버 변수로 사용되는 변수 명명 규칙에 대해 설명한다. 변수 및 상수 이름의 제한은 다음의 항목에 적용한다.
(1) 멤버 변수 선언
| 구분 | 설명 | 
|---|---|
| 맴버변수 선언 - 구성 | 클래스 이름에서 첫 글자는 소문자 | 
| 맴버변수 선언 - 적용사례 | mSmpEmpInfMng | 
| 맴버변수 선언 - 기본원칙 | 
 | 
| 맴버변수 선언 - 작성 예 |  | 
(2) Service 오퍼레이션 파라미터
| 구분 | 설명 | 
|---|---|
| Service 오퍼레이션의 파라미터 - 구성 | Service 오퍼레이션의 input 파라미터 이름은 input + (일련번호 1자리)? 로 한다. | 
| Service 오퍼레이션의 파라미터 - 적용사례 | ssmp1001a001(SSMP1001A001InDto input) | 
| Service 오퍼레이션의 파라미터 - 기본원칙 | 
 | 
| Service 오퍼레이션의 파라미터 - 작성 예 |  | 
(3) 상수
| 구분 | 설명 | 
|---|---|
| 상수 - 구성 | 표준단어 + (_ + 표준단어)* | 
| 상수 - 적용사례 | 
 | 
| 상수 - 기본원칙 | 
 | 
| 상수 - 작성 예 |  | 
8. Service 테스트 케이스
| 구분 | 설명 | 
|---|---|
| 폴더명 - 구성 | testcases/serviceTest | 
| 파일명 - 구성 | Test + Service 이름 + 일련번호3자리 | 
| 파일명 - 적용사례 | TestSSMP1001A003.case TestSSMP1001A001.case | 
| 파일명 - 기본원칙 | Test prefix + Service이름과 일련번호 3자리로 이루어진다. 테스트 케이스의 Service 이름은 모두 대문자로 작성한다. 프로젝트의 testcases/serviceTest 폴더에 생성한다. 파일의 확장자는 case를 사용한다. | 
| 파일명 - 작성 예 | 
9. Module 테스트 케이스
| 구분 | 설명 | 
|---|---|
| 폴더명 - 구성 | testcases/moduleTest | 
| 파일명 - 구성 | Test + Bean 클래스 이름 + 일련번호3자리 | 
| 파일명 - 적용사례 | TestMSmpEmpInfMng001.mtest TestMSmpIntrLinkCall001.mtest | 
| 파일명 - 기본원칙 | Test prefix + Bean 클래스 이름과 일련번호 3자리로 이루어진다. 프로젝트의 testcases/moduleTest 폴더에 생성한다. 파일의 확장자는 mtest를 사용한다. | 
| 파일명 - 작성 예 | 
11. 명명규칙 예제
본 장에서 가이드 한 명명규칙을 지키면 다음 표와 같은 이름의 리소스가 생성 되어야 한다.
| 구분 | 설명 | 
|---|---|
| 프로젝트 | 
 | 
| Service 클래스 이름 및 Package | 
 | 
| Service IO 이름 및 Package | 
 | 
| Bean 이름 및 Package | 
 | 
| Bean IO 이름 및 Package | 
 | 
| DBIO 이름 및 Package | 
 | 
| DBIO IO 이름 및 Package | 
 | 
 
