- DB 컬럼 표현은 언더스코어 표기법 사용
- 그 외의 경우는 카멜 표기법을 사용
이름 | 설명 |
---|---|
헝가리언 표기법 (Hungarian) |
|
카멜 표기법 (Camel Casing) |
|
파스칼 표기법 (Pascal Casing) |
|
언더스코어 표기법 (Underscore) |
|
- ‘임시 변수 (Temporary Variable)’와 ‘상수(Constant)’는 예외
예 | 규칙 |
---|---|
DB 컬럼명 : FIRST_NAME 변수명 : first_name |
|
변수명 : today 의미 : Today 변수 |
|
firstName fileLength memberName |
|
memberId firstClass numberOfClass |
|
- Class 상수 또는 일반 상수로 정의된 변수 명은 ‘임시 변수 (Temporary Variable)’와 ‘상수(Constant)’는 예외
예 | 규칙 |
---|---|
public static final int MIX_VALUE = 0; public static final int MAX_VALUE = 100; |
|
- class명명규칙은 [용어사전][postfix].java로 한다.
예 | 규칙 |
---|---|
SamplePostfix | 용어 사전의 단어를 사용하는 경우 첫 글자만 대문자로 함 |
SampleDoPostfix | 복합 단어로 구성될 경우 첫 단어는 대문자로 시작하고, 이후 각 단어도 대문자로 시작 |
SamplePostfixTest | 테스트 클래스는 클래스 명명규칙을 유일성을 식별 (jUnit규칙을 따른다)하도록 함. (~Test.java) |
- Postfix Index
Postfix | 예 | 규칙 |
---|---|---|
Controller | SampleController.java | Controller Class |
Service | SampleService.java | Service Interface |
ServiceImpl | SampleServiceImpl.java | Service Interface 구현 Class |
DAO | SampleDAO.java | DAO Class |
VO | PersonVO.java | VO Class |
Test | SampleControllerTest.java | |
View | AjaxSimpleView.java | |
Handler | ExceptionHandler.java | |
Mapping | ExceptionMapping.java | |
Exception | ExceptionHandler.java | |
Wrapper | DBWrapper.java | |
Batch | CustBatch.java | |
Client | SampleClient.java | Rest Client Interface Class |
Invoke | SampleInvoke.java | Rest Invoke Class |
- Interface는 java class명과 동일한 방법으로 부여한다.
- java method 명명규칙에서 사용하는 단어는 [용어사전]을 참조한다.
- 클래스 명명은 필수로 하되 Method 명명규칙은 용어사전을 최대한 준용하도록 한다.
- Static Methods 도 다른 method와 동일한 규칙을 따른다.
예 | 규칙 |
---|---|
selectItem() insertItem() updateItem() deleteItem() |
|
selectItem() selectNewItem() selectItemById() |
|
getName() getAge() |
|
setName(String name) setAge(int age) |
|
작업유형 | 명명규칙 | 사용 예 | |
---|---|---|---|
단건조회 | select + 단어 | selectItem() | |
다건조회 | 전체조회 | select + 단어복수형 | selectItems() |
특정조건 | select + 단어복수형 + By + 조건 | selectItemsByCategory() | |
불특정조건 | select + 단어복수형 + ByCondition | selectItemsByCondition() | |
Paging 처리 | 맨 뒤에 Paging을 postfix로 추가 | selectItemsPaging() | |
등록 | 단건등록 | insert + 단어 | insertItem() |
다건등록 | insert + 단어복수형 | insertItems() | |
수정 | 단건수정 | update + 단어 | updateItem() |
다건수정 | update + 단어복수형 | updateItems() | |
삭제 | 단건삭제 | delete + 단어 | deleteItem() |
다건삭제 | delete + 단어복수형 | deleteItems() | |
다건 다중처리 (등록/수정/삭제 복합) |
multi + 단어복수형 | multiItems() |
Postfix | 규칙 |
---|---|
int[] intArray = { 1, 2, 3, 4, 5 }; int intArray[] = { 1, 2, 3, 4, 5 }; |
|
- library 명명규칙은 Maven의 규칙을 따라 부여하며, [ArtifactID]-[version].확장자를 사용한다.
- 개발이 수행될 때는 SNOPSHOT버전을 이용하고, 향후 통합테스트가 완료되어 정식 버전이 배포가 될 경우 1.0부터 시작한다.
예 | 규칙 |
---|---|
vinylc-core-1.0.0.jar | [ArtifactID]-[version].확장자를 사용 |
예 | 규칙 |
---|---|
jquery-1.6.2.js jquery-ui-1.6.2.js |
|
jquery-1.6.2.js |
|
jquery-1.6.2.min.js |
|
- ‘임시 변수 (Temporary Variable)’와 ‘상수(Constant)’는 예외
예 | 규칙 |
---|---|
DB 컬럼명 : FIRST_NAME 변수명 : first_name |
|
변수명 : today 의미 : Today 변수 |
|
firstName fileLength memberName |
|
memberId firstClass numberOfClass |
|
first-name |
|
for (int i = 0; i > 10; i++) { } |
|
예 | 규칙 |
---|---|
var MIX_VALUE = 0; var MAX_VALUE = 0; |
- 상수로 정의된 변수명은 단어간에 Underscore(_)로 분리되는 대문자로 표기 |
- javascript function 명명규칙에서 사용하는 단어는 [용어사전]을 참조한다.
- 클래스 명명은 필수로 하되 function 명명규칙은 용어사전을 최대한 준용하도록 한다.
예 | 규칙 |
---|---|
selectItem() insertItem() updateItem() deleteItem() |
|
selectItem() selectNewItem() selectItemById() |
|
getName() getAge() |
|
setName(String name) setAge(int age) |
|
- HTML에서 HTML Tag 선언은 소문자로, Tag 속성은 소문자로 작성
- <body> Tag 하위의 모든 HTML Tag들은 각 상위 Tag에 대한 Depth에 따라 4 칸의 Indentation을 기본으로 함
- element의 값을 지정할 경우는 값을 쌍따옴표 (“”)로 감싼다.
- 16진수 값을 표현할 때는 앞에 “#”을 붙이고 알파벳은 대문자로 표기
- jsp 파일의 명명규칙은 [용어사전][postfix].jsp로 한다.
- 용어사전의 단어를 사용하는 경우 첫 글자만 소문자로 한다.
- jsp파일을 WEB-INF하위에 위치한다. 이유는 보안상 브라우저로 부터의 파일접근을 막기 위함
- 용어사전을 사용할 경우에는 Postfix를 제외하고는 가능한 Full Name을 활용하도록 한다.
- 용어사전의 Postfix명명규칙은 다음과 같다.
Postfix | 예 | 규칙 |
---|---|---|
Main | bardMain.jsp | 메인 |
List | boardList.jsp | 목록 |
View | bardView.jsp | 상세 |
Regist | boardRegist.jsp | 등록 |
Modify | boardModify.jsp | 수정 |
Form | boardForm.jsp | 등록 + 수정 |
Delete | boardDelete.jsp | 삭제 |
Proc | boardProc.jsp | 처리 |
Search | boardSearch.jsp | 조회 |
Popup | boardListPopup.jsp | 팝업 (기능 + PostFix) |
Ajax | boardProcAjax.jsp | AJAX (기능 + Ajax) |
- jsp내의 form명명규칙은 기본으로 mainForm을 사용한다.
- mainForm, hiddenForm, downloadForm 외의 예외 사항에 대해서는 공통팀에 문의 하여 처리 한다.
- form태그를 남용하지 않는다.
- html은 작성은 가능한 지양하며, ProtoType 작성의 경우는 제외한다.
- html의 논리적 위치는 [web-root]/html/로 한다.
- html파일의 명명규칙은 JSP명명규칙과 동일하게 한다.
- pop-up은 스크롤이 없이 주소가 나타나지 않도록 하는 것이 원칙이나, 보안 설정에 의해서 주소가 나타나더라도 상하 scroll이 나타나지 않도록 한다.
- SQL MAP은 myBATIS에서 사용하는 SQL문을 담고 있다.
- SQL MAP 파일위치는 resources/sqlmap/ 에 위치한다
- sqlmap파일의 위치를 담고 있는 메타정보를 관리 한다.
명명규칙 | 위치 | 사용 예 |
---|---|---|
sql-map-config.xml | resources/sqlmap/ |
sql-map-config-mysql.xml sql-map-config-mssql.xml |
- [프로젝트 명 이후 sub package 구조]/[DAO클래스명].xml 로 한다.
- 업무프로세스 sqlmap파일 : 각 업무프로세스의 sql정보를 관리한다.
명명규칙 | 위치 | 사용 예 |
---|---|---|
[sub package명]/[DAO class 명].xml | resources/sqlmap/[sid명]/[sub package명] | SelectDAO.xml |
- SQL ID 명명규칙은 [DAO클래스명:첫 문자 소문자].method’의 형태를 사용한다.
- DAO의 method는 하나의 SQL만을 수행한다.
<select id="selectItem" parameterClass="hMap" resultClass="hMap"> <![CDATA[ SELECT /* ProgramID = selectDAO.selectItem */ * FROM item ]]> </select>
- sqlMap namespace명명규칙은 [프로젝트 명 이후 sub package 구조]_[DAO클래스명]으로 한다.
- sub package 구조 표현시 "_" 를 사용한다.
<sqlMap namespace="test.biz.SelectDAO">
- 테이블명 및 컬럼명은 [용어사전] 기준으로 한다.
- 용어별로 명명 규칙에 맞게 언더바(_)로 표현하되 용어기준 3개까지만 정의한다.(언더바 2개까지 허용)
아래 명명 규칙은 제약조건 및 인덱스, 시퀀스, 프로시저, 함수의 명명규칙이다.
Primaray : "PK_" + 테이블명 Foreign Key : "FK" + 일련번호 + "_" + 테이블명 INDEX : "IDX" + 일련번호 + "_" + 테이블명 Sequnence : 컬럼명 + “_” + “SEQ” Procedure : PRC+”_”+용어사전참조 Function : FUN+”_”+용어사전참조
Primaray : "PK_" + 테이블명 : PK_MDUL_TYPE Foreign Key : "FK" + 일련번호 + "_" + 테이블명 : FK1_MDUL_TYPE INDEX : "IDX" + 일련번호 + "_" + 테이블명 : IDX1_MDUL_TYPE Sequnence : 컬럼명 + “_” + “SEQ” : MDUL_SN_SEQ Procedure : PRC+”_”+용어사전참조 : PRC_MDUL_NM Function : FUN+”_”+용어사전참조 : FUN_MD
- 물리명은 영문 대문자를 이용함. 논리명을 사용자가 알 수 있는 정도에서 명사 및 명사형동사를 사용함
- Column에 대한 자리수는 총 12자리로 하며, 제한은 없음. 단, 사용하는 Database의 특성에 따라 제한될 수 있음
- Word와 Word 사이에는 ‘_’로 구분함
- 한 Word는 8자리를 넘을 수 없음
- 모든 Column은 Dictionary List에 등록된 약어사전 및 자료사전을 기초로 작성함
- Dictionary List에 등록되지 않은 약어는 책임자의 동의 하에 등록함
- Column Name은 약어의 조합으로 구성
- 컬럼명에 컬럼을 대표하는 접미사를 사용하여 컬럼명의 성격을 나타냄
<의미있는 컬럼명> 혹은 <의미있는 컬럼명> + ‘_’ + 접미사 종종 자주 사용하는 접미사는 다음과 같다.
접미사 | 내용 | 사용 예 |
---|---|---|
_CD | CODE |
주로 코드 테이블의 코드, 각종 코드에 사용된다. 숫자나 문자로 이루어진 코드에 해당되며, 숫자나 문자의 각 부분이 의미가 있는 경우에 코드를
사용한다.대부분 PK에 해당한다. 예) 대분류 코드 CTGRY_CD, 시도코드 SIDO_CD, 사용자 그룹 코드 USER_GROUP_CD 등 |
_NM | NAME |
코드에 대한 명칭에 주로 사용된다. 논리명이 이름,명칭인 경우에 해당된다. 예) 사용자이름 USER_NM, 자원명 RES_NM, 중분류 코드명 DVSN_NM, 메뉴명 MENU_NM |
_NO | NUMBER |
숫자로만 이루어진 경우, 주로 논리명이 번호인 경우에 사용. 예) 주민등록번호 JUMIN_NO, 조문번호 JO_NO |
_SN | SERIAL NUMBER |
숫자로 자동증가로 이루어진 경우, 자동 증가 컬럼에만 사용 예) 게시물번호 BOARD_NO |
_SQ | SEQUENCE |
오라클의 Sequence, MSSQL의 Identity의 경우에 사용한다. 숫자 일련번호로 PK를 설정할 경우 SQ를 사용한다. MSSQL의
Identity의 경우 주로 _ID를 사용하는경우가 많은데, 사용자 아이디 – USER_ID의 ID와 의미가 틀려 SQ를 사용한다. 예) 작업번호 WORK_SQ, 이력번호 HISTORY_SQ |
_ID | ID |
주로 사용자 아이디의 경우에 사용한다. 예) 사용자아이디 USER_ID, 등록자아이디 REG_ID |
_DT | DATE |
날짜의 경우 사용한다. DT는 날짜 타입이 DATE형인경우에만 사용한다. 보통 날짜의 경우 CHAR(8)형으로20050718식으로 저장을 많이
한다. 이런 경우에는_YMD를 사용한다. 예) 삭제일자 DEL_DT, 변경일자 CHG_DT |
_YMD | YYYYMMDD | 날짜의 경우 사용한다. 날짜 타입이 CHAR 인경우 사용한다. 년월일인 경우 _YMD를 사용하고, 년월형식으로 CHAR(6)로 저장될 경우 _YM을 사용한다. 년도,월, 일자 인경우에는 YEAR, MONTH, DAY등의 컬럼명을 사용한다. |
_GB | 구분 |
구분값을 나타낼 때 사용한다. CD는 주로 코드테이블을 별도로 사용할 때 적당하고, 테이블 없이 코드상에서 구별할 때 사용한다. 가령 사용자구분
필드가있을 때 일반사용자, 내부사용자가 있다면 별도의 사용자 그룹테이블로 분리하여 사용할 경우 GROUP_CD가필드명이 되지만, 코드상에서
일반(G), 내부(I)로 사용하기로 결정했다면 GROUP_GB 필드명을 사용하면 된다. 예) 통계구분 STAT_GB |
_ST | STATE |
상태값이다. 주로 CHAR(1) 형식을 사용한다. 예) 사용자 상태 USER_ST |
_FL | FLAG |
플레그값이다. 종종 삭제하지 않는 테이블에 삭제플레그를 많이 사용된다. 값은 0/1 이나 Y/N를 많이 사용한다. 예) 삭제여부 DEL_FL, 요청여부 REQ_FL |
_ORD | ORDER |
순서를 나타낼 때 사용한다. 예) 컬럼순서 COLUMN_ORD |
_CNT | COUNT | 예) 조회수 VIEW_CNT |
_AMT | AMOUNT | 예) 재고량 STOCK_AMT |
_SUM | SUM | 예) 분기합계 QTR_SUM, 년도합계 YEAR_SUM |