작성사유
. 현재 환경에서의 네이밍 규칙을 기록하고 차후 프로젝트나 시스템 구축시 활용하기 위하여 기록함
. 비지니스 로직 성향에 대한 네이밍 규칙으로 되어있으며 퍼블릭한 시스템이 경우 네이밍 규칙을 변경하여 사용하는게 좋을듯함
. 프로젝트 성향이나 시스템 성향에 따라 네이밍 규칙을 변경하도록,
. 더 나은 방식이나 구현 방향에 따라 해당 문서를 수정 할 수도 있고 별도의 게시물로 만들 수 있도록함
유의점
. 아래 네이밍 규칙은 메뉴구성에 따라 화면 명, 패키지 구성, Java 명이 모두 축약자로 되어있어서
업무에 익숙하지 않는 사람이 시스템을 인계 받을경우 조금더 어렵게 구성되어 보인다는 단점이 있다.
.
작업환경
: 넥사크로 14
Java Spring
* 메뉴구성
대분류 (4자 이하의 영문 약자) / 중분류 (4자 이하의 영문 약자) / 소분류 (4자 이하의 영문 약자)
ex ) 게시판 - 공지사항 (2레벨)
BRD - NTC
게시판 - 익명 게시판
BRD - ANON
게시판 - 게임 - 리그오브레전드
BRD - GAME - LOL
* 화면 네이밍 규칙
- 2레벨 화면
대분류_중분류_시퀀스(001)
ex) BRD_NTC_001
- 3레벨 화면
대분류_중분류_소분류_시퀀스(001)
ex ) BRD_GAME_LOL_001
팝업 화면 네이밍 규칙
- 2/3레벨 화면에서 사용하는 경우
대분류_중분류_POP_시퀀스
대분류_중분류_소분류_POP_시퀀스
ex ) BRD_GAME_LOL_POP_001
ex ) BRD_NTC_POP_001
참고: 팝업 네이밍할때 시퀀스를 무조건 넣을것, 화면에 종속되지 않는 별도의 시퀀스
참고 : 전 화면에서 사용하는 공통 팝업을 만들고자 한다면 그 범위에 따라 대분류/중분류를 새로 채번한다
ex ) 모든 화면에서 사용할 경우 : COM_POP_001
ex ) 중분류에서 공통으로 사용할 경우 : BRD_COM_POP_001
컴포넌트(오브젝트) 네이밍 규칙
- 오브젝트명
접두사(오브젝트) + 기능명 (카멜 표기법)
ex) btnSearch
ex) btnUserSearch
- 오브젝트별 접두사
버튼 | btn | Listbox | lsbx | 라디오 버튼 | rad | Label | lbl | ||
영역(DIV) | div | Menu | meu | 달력 | cal | Panel | pnl | ||
콤보박스 드랍다운박스 |
cbo | TextArea | Txar | 그리드 | grd | Table | tbl | ||
체크박스 | chk |
텍스트박스(textbox, Edit) |
edt | 데이터셋 | ds |
* 스크립트 (JS) 네이밍 규칙
- 함수 (Function)
접두사(fn) + 기능명 (카멜 표기법)
ex) fnSearchData
ex) fnGetCalendar
- 이벤트 함수
오브젝트명_이벤트명 (오브젝트명, 이벤트명 각각 카멜표기법)
오브젝트명_오브젝트명_이벤트명 (오브젝트명, 이벤트명 각각 카멜표기법)
ex) btnSearch_onClick
ex) divSearch_btnSearch_onClick (div 안에 버튼이 있는 경우)
- 변수
1) 전역변수
접두사(i) + 기능명 (카멜 표기법)
ex) iUserID
ex) iUserJoinTime
2) 지역변수 (내부선언)
접두사(v) + 기능명 (카멜 표기법)
ex) vUserName
ex) vUserID
3) 파라미터 변수
접두사(p) + 기능명 (카멜 표기법)
ex) pUserId
ex) pUserName
4) 스태틱 변수
지역접두사 + 접두사(s) + 기능명
ex) 전역 스태틱 변수 : isUserid
ex) 지역 스태틱 변수 : vsUserid
* Java 네이밍 규칙
패키지 구성
각 패키지는 메뉴 순서로 구성한다. 모든 패키지 명은 소문자로 한다.
src/프로젝트명/대분류/중분류/소분류
ex) 프로젝트명이 site 일경우 롤 게시판
src/site/brd/game/lol/
최 하위 패키지 구성
클래스 성격에 따라 service, dao, vo, query로 나누어서 생성한다.
src/site/brd/game/lol/service
src/site/brd/game/lol/dao
src/site/brd/game/lol/vo
src/site/brd/game/lol/query
Java/xml 파일 네이밍 규칙
인터페이스는 화면명 + 최 하위 패키지 명으로 생성한다.
구현체는 대응되는 인터페이스 +Impl 로 생성한다.
클래스명은 파일명과 동일하게 사용한다.
src/site/brd/game/lol/service 패키지
EX ) BRD_GAME_LOL_001Service.java
EX ) BRD_GAME_LOL_001ServiceImpl.java
EX ) BRD_GAME_LOL_POP_001Service.java
EX ) BRD_GAME_LOL_POP_001ServiceImpl.java
src/site/brd/game/lol/dao 패키지
EX ) BRD_GAME_LOL_POP_001Dao.java
EX ) BRD_GAME_LOL_POP_001DaoImpl.java
EX ) BRD_GAME_LOL_001Dao.java
EX ) BRD_GAME_LOL_001DaoImpl.java
src/site/brd/game/lol/vo패키지
EX ) BRD_GAME_LOL_001Vo.java
EX ) BRD_GAME_LOL_POP_001Vo.java
src/site/brd/game/lol/query 패키지
EX ) BRD_GAME_LOL_001Query.xml
EX ) BRD_GAME_LOL_POP_001Query.xml
함수, 메소드(Method) 네이밍 규칙
카멜 규칙을 사용한다. 접두사로 기능에 따라 select, update, delect, insert 를 붙힌다.
카멜 규칙을 사용할때 최대한 축약어를 최소화 한다.
ex ) selectBoardList
ex ) deleteBaord
ex ) updateBaordText
클래스 선언 규칙
클래스를 선언하여 사용할경우 선언된 클래스 명은 카멜 규칙을 사용한다.
ex) BRD_GAME_LOL_001DAO brdGameLol001Dao = new BRD_GAME_LOL_001DAO ();
brdGameLol001Dao.deleteBoardList( boardNum );
변수 선언 규칙
카멜 규칙을 사용한다.
ex ) String boardnum = String.Empty();
ex ) int sortSeq = 0;
그외 규칙
반의어는 반드시 반대되는 개념으로 사용한다.
출처 : https://jungwoon.github.io/tips/2016/12/27/Coding-Naming-Rules/
- get / set
- add / remove
- create / destroy
- start / stop
- insert / delete
- increment / decrement
- old / new
- begin / end
- first / last
- up / down
- min / max
- next / previous
- open / close
- show / hide
- suspend / resume
- parent / child
'프로그래밍 > Java(Spring)' 카테고리의 다른 글
프로젝트 생성 시 Group ID, Artifactid, Name 등의 설정 관련 (0) | 2021.09.17 |
---|---|
그래들(Gradle) 이란? (0) | 2018.04.02 |
Interface와 Implement (0) | 2018.04.02 |
Extend와 Orverrid (0) | 2018.04.02 |
Java는 다중상속을 지원하지 않는다. 대체방안은? (0) | 2018.04.02 |
댓글