온라인 어플리케이션 명명규칙
1. 어플리케이션
어플리케이션 단위는 관리 주체가 다르고, 어플리케이션 간 기능 호출을 최소화 할 수 있는 단위로 구분 한다. 어플리케이션은 Studio의 'BX 클라우드 프로젝트' 메뉴를 통해 생성한다.
구분 | 설명 |
---|---|
구성 |
L1코드 + '-' + L2코드(영문명) + '-' + online |
적용사례 |
bxcm-sample-online |
기본원칙 |
1. 어플리케이션 이름 작성은 다음과 같은 표기법을 따른다. L1코드,L2코드(영문명)의 소문자로 표기 단어와 단어 사이에 '-' 로 구분 2. 어플리케이션 이름은 중복되어서는 안되므로 전체 업무를 통틀어 유일한 이름을 갖도록 작성한다. |
2. Controller
Controller는 Studio 의 'Controller 클래스' 메뉴를 통해 생성 되며 Controller의 클래스 이름과 Controller 이름은 다음과 같이 작성한다.
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드 + . + online + . + controller |
Package - 적용사례 |
bxcm.sample.online.controller |
Package - 기본원칙 |
|
클래스 - 구성 |
L2코드(영문명) + (표준단어)* 조합 + Controller |
클래스 - 적용사례 |
SmpEmployeeController, SmpDeptController |
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
1. 논리명(logicalName) : Controller의 논리명을 입력한다. |
클래스 - 작성 예 |
|
URL - 구성 |
역할에 따른 HTTP메소드 + (메소드 식별 단어)* |
URL - 적용사례 |
조회 : GetMapping("/get") 등록 : PutMapping("/add") 수정 : PostMapping("/modify") 삭제 : DeleteMapping("/remove") |
메소드 - 구성 |
메소드 prefix + (표준단어)* |
메소드 - 적용사례 |
getEmployee - 샘플 직원정보를 얻는다. addEmployee - 샘플 직원정보를 등록한다. |
메소드 - 기본원칙 |
|
메소드 - 부가정보 |
1. 논리명(logicalName): Service 메소드의 논리명을 입력한다. |
메소드 - 작성 예 |
|
3. Service
Service는 Studio 의 'Service 클래스' 메뉴를 통해 생성 되며 Service의 클래스 이름과 Service 이름은 다음과 같이 작성한다.
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드 + . + online 또는 batch + . + service |
Package - 적용사례 |
bxcm.sample.online.service |
Package - 기본원칙 |
|
클래스 - 구성 |
L2코드(영문명) + (표준단어)* 조합 + Service |
클래스 - 적용사례 |
SmpEmployeeService, SmpDeptService |
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
1. 논리명(logicalName) : Service의 논리명을 입력한다. |
클래스 - 작성 예 |
|
메소드 - 구성 |
메소드 prefix + (표준단어)* |
메소드 - 적용사례 |
getEmployee - 샘플 직원정보를 얻는다. addEmployee - 샘플 직원정보를 추가한다. |
메소드 - 기본원칙 |
|
메소드 - 부가정보 |
1. 논리명(logicalName): Service 메소드의 논리명을 입력한다. |
메소드 - 작성 예 |
|
4. Component
프레임워크에서 BC(비즈니스 컴포넌트)는 Component으로 사용되며 @Component 어노테이션으로 정의 한다. Component는 Studio 의 '컴포넌트' 메뉴를 통해 생성되며 Component의 이름은 다음과 같이 작성한다.
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드(영문명) + . + online 또는 batch + . + component |
Package - 적용사례 |
bxcm.sample.online.component |
Package - 기본원칙 |
|
클래스 - 구성 |
L3코드(영문명) + (표준단어)* 조합 + (일련번호 2자리) + Component |
클래스 - 적용사례 |
SmpEmployeeComponent, SmpDeptComponent |
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
1. 논리명(logicalName) : Component의 논리명을 입력한다. |
클래스 - 작성 예 |
|
메소드 - 구성 |
메소드 prefix + (표준단어)* |
메소드 - 적용사례 |
getEmployee - 샘플 직원정보를 얻는다. addEmployee - 샘플 직원정보를 추가한다. |
메소드 - 기본원칙 |
|
메소드 - 부가정보 |
1. 논리명(logicalName): 메소드의 논리명을 입력한다. |
메소드 - 작성 예 |
|
5. DBIO
DBIO는 데이터베이스에 직접 접근하는 객체로 Bean을 통해서만 호출이 가능하다. DBIO는 Studio 의 'DBIO' 메뉴를 통해 생성되며 DBIO의 이름은 다음과 같이 작성한다.
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드(영문명) + . + online 또는 batch + . + dbio |
Package - 적용사례 |
bxcm.sample.online.dbio |
Package - 기본원칙 |
|
클래스 - 구성 |
1. PK CRUD : D + 테이블 이름 ( 본 가이드에선 SMP_EMP_TST 테이블 사용 ) + 000 2. 그외 : D + 테이블 이름 + [001-999] |
클래스 - 적용사례 |
1. PK CRUD : DSmpEmpTst000 2. 그외 : DSmpEmpTst002 |
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
- DBIO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. |
클래스 - 작성 예 |
소스코드를 직접 생성하지 않는다. |
SQL ID - 구성 |
1. DBIO prefix + (일련번호 2자리) 2. DBIO Prefix + (표준단어)* 또는 3. DBIO Prefix + (표준단어)* + (일련번호2자리) |
SQL ID - 적용사례 |
selectOne01 selectOneEmpNm selectOneEmpNm01 |
SQL ID - 기본원칙 |
|
6. Default DBIO
테이블을 기반으로 DBIO와 IO를 자동 생성 해주는 Studio의 편의 기능중 하나로 Default DBIO의 표준은 다음과 같다.
(1) 생성된 DBIO
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드 + . + online 또는 batch + . + dbio |
Package - 적용사례 |
bxcm.sample.online.dbio |
Package - 기본원칙 |
|
클래스 - 구성 |
- D + 테이블 이름 ( 본 가이드에선 SMP_EMP_TST 테이블 |
클래스 - 적용사례 |
- PK CRUD : DSmpEmpTst000 |
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
- DBIO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. |
클래스 - 작성 예 |
소스코드를 직접 생성하지 않는다. |
SQL ID - 구성 |
1. 메소드 Prefix + _ + PK 이름 2. 메소드 prefix + _ + UK 이름 3. 메소드 Prefix + _ + 인덱스 이름 |
SQL ID - 적용사례 |
selectOneLock_SYS_C0011417 insert_SYS_C0011417 |
SQL ID - 기본원칙 |
|
(2) 생성된 DBIO의 IO
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드(영문명) + . online 또는 batch + . + dbio.dto |
Package - 적용사례 |
bxcm.sample.online.dbio.dto |
Package - 기본원칙 |
|
클래스 - 구성 |
- D + 테이블 이름 ( 본 가이드에선 SMP_EMP_TST 테이블 사용 ) + 000 + Dto |
클래스 - 적용사례 |
DSmpEmpTst000Dto |
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
- IO 자바 소스는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. |
클래스 - 작성 예 |
소스코드를 직접 생성하지 않는다. |
7. IO
IO 이름은 다음의 경우에 따라 구분되어 작성된다. IO는 Controller, Service, Component, DBIO의 IO를 재사용 하도록 표준을 정하여 IO 생성을 최소화 하고, 필요한 경우에만 따로 만들도록 한다.
(1) Controller Input/Output/공통: Controller의 입출력을 위한 IO
(2) Service Input/Output/공통: Service의 입출력을 위한 IO
(3) DBIO Input/Output: DBIO의 입출력을 위한 IO
(4) 인터페이스 Input/Output: EAI/MCI 등의 인터페이스를 위한 IO
(5) Component Input/Output/공통: Component의 입출력을 위한 IO
IO는 'IO' 메뉴를 통해 생성되며 IO의 이름은 다음과 같이 작성한다.
7.1. Controller를 위한 IO 작성
Controller 메소드의 입력은 기본타입, 일반 객체를 자유롭게 사용할 수 있다.
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드 + . + online 또는 batch + . + controller.dto |
Package - 적용사례 |
bxcm.sample.online.controller.dto |
Package - 기본원칙 |
|
클래스 - 구성 |
|
클래스 - 적용사례 |
|
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
- IO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. |
클래스 - 작성 예 |
소스코드를 직접 생성하지 않는다. |
메소드 - 구성 |
IO는 자바 소스코드가 자동생성 되므로 개발자가 직접 메소드를 구성할 필요가 없다. |
7.2. Service Input/Output을 위한 IO 작성
Service 메소드의 입력은 기본타입, 일반 객체를 자유롭게 사용할 수 있다. Service 메소드의 IO가 필요한 경우에는 Controller, Component의 IO와 DBIO의 IO를 재사용한다. 재사용이 어려운 경우 다음을 참고하여 생성하여 사용한다.
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드(영문명) + . + online 또는 batch + . + service.dto |
Package - 적용사례 |
bxcm.sample.online.service.dto |
Package - 기본원칙 |
|
클래스 - 구성 |
|
클래스 - 적용사례 |
|
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
- IO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. |
클래스 - 작성 예 |
소스코드를 직접 생성하지 않는다. |
메소드 - 구성 |
IO는 자바 소스코드가 자동생성 되므로 개발자가 직접 메소드를 구성할 필요가 없다. |
7.3. DBIO를 위한 IO 작성
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드 + . + online 또는 batch + . + dbio.dto |
Package - 적용사례 |
bxcm.sample.online.dbio.dto |
Package - 기본원칙 |
|
클래스 - 구성 |
1. 입력 IO: NAME + DBIO 메소드 이름 + InDto 2. 출력 IO: NAME + DBIO 메소드 이름 + OutDto |
클래스 - 적용사례 |
1. 입력 IO: DSmpEmpTst001selectPage01InDto 2. 출력 IO: DSmpEmpTst001selectPage01OutDto |
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
- IO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. |
클래스 - 작성 예 |
소스코드를 직접 생성하지 않는다. |
메소드 - 구성 |
IO는 자바 소스코드가 자동생성 되므로 개발자가 직접 메소드를 구성할 필요가 없다. |
7.4. 인터페이스를 위한 IO 작성
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드 + . + online 또는 batch + . + inf.dto |
Package - 적용사례 |
bxcm.sample.online.inf.dto |
Package - 기본원칙 |
|
클래스 - 구성 |
|
클래스 - 적용사례 |
|
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
- IO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. |
클래스 - 작성 예 |
소스코드를 직접 생성하지 않는다. |
메소드 - 구성 |
IO는 자바 소스코드가 자동생성 되므로 개발자가 직접 메소드를 구성할 필요가 없다. |
7.5. Component를 위한 IO 작성
Component 메소드의 입력은 기본타입, 일반 객체를 자유롭게 사용할 수 있다. Component 메소드의 IO가 필요한 경우에는 Controller, Service의 IO와 DBIO의 IO를 재사용한다. 재사용이 어려운 경우 다음을 참고하여 생성하여 사용한다.
구분 | 설명 |
---|---|
Package - 구성 |
L1코드 + . + L2코드 + . + online 또는 batch + . + component.dto |
Package - 적용사례 |
bxcm.sample.online.component.dto |
Package - 기본원칙 |
|
클래스 - 구성 |
|
클래스 - 적용사례 |
|
클래스 - 기본원칙 |
|
클래스 - 부가정보 |
- IO는 소스코드 생성 방식으로 생성 되므로 사용자가 부가 정보를 입력하지 않는다. |
클래스 - 작성 예 |
소스코드를 직접 생성하지 않는다. |
메소드 - 구성 |
IO는 자바 소스코드가 자동생성 되므로 개발자가 직접 메소드를 구성할 필요가 없다. |
8. Variables / Constants
Controller, Service, Component 클래스의 멤버 변수로 사용되는 변수 명명 규칙에 대해 설명한다. 변수 및 상수 이름의 제한은 다음의 항목에 적용한다.
(1) 멤버 변수 선언
구분 | 설명 |
---|---|
맴버변수 선언 - 구성 |
클래스 이름에서 첫 글자는 소문자 |
맴버변수 선언 - 적용사례 |
mSmpEmpInfMng |
맴버변수 선언 - 기본원칙 |
|
맴버변수 선언 - 작성 예 |
|
(2) 상수
구분 | 설명 |
---|---|
상수 - 구성 |
표준단어 + (_ + 표준단어)* |
상수 - 적용사례 |
|
상수 - 기본원칙 |
|
상수 - 작성 예 |
|
8.1. 테스트 케이스
구분 | 설명 |
---|---|
폴더명 - 구성 |
bxcm.sample.online.component |
파일명 - 구성 |
Component(Class)이름 +Test |
파일명 - 적용사례 |
SmpEmployeeComponentTest.java SmpEmployeeControllerTest.java |
메소드명 - 구성 |
test + 메소드명 |
메소드명 - 적용사례 |
testGetEmployee() testGetEmployee01(), testGetEmployee02() testGetEmployeeFail(), testGetEmployeeSuccess() |
파일명, 메소드명 - 기본원칙 |
package는 테스트를 하려는 서비스, 컴퍼넌트와 동일하게 작성한다. 클래스명은 뒤에 Test를 붙여 작성한다. 테스트 메소드명은 테스트하려는 메소드 앞에 test 를 붙여 작성한다. 하나의 메소드에 대해 여러 개의 테스트 케이스를 작성할 경우에는 테스트 메소드에 일련번호 혹은 식별할 수 있는 단어를 조합한다. |
파일명 - 작성 예 |
8.3. 명명규칙 예제
본 장에서 가이드 한 명명규칙을 지키면 다음 표와 같은 이름의 리소스가 생성 되어야 한다.
구분 | 설명 |
---|---|
프로젝트 |
|
Controller 클래스 이름 및 Package |
|
Controller 클래스 이름 및 Package IO 이름 및 Package |
|
Service 클래스 이름 및 Package |
|
Controller 클래스 이름 및 Package IO 이름 및 Package |
|
Component 이름 및 Package |
|
Component IO 이름 및 Package |
|
DBIO 이름 및 Package |
|
DBIO IO 이름 및 Package |
|