HTML&CSS 본문

Naming Guide

다양하고 많은 사람이 개발에 참여할 때 작업 효율화를 위해 가장 중요한 것 중의 하나가 바로, 사전에 약속한 규칙에 따라 이름을 정하는 것입니다. 본 Naming Guide는 크게 "Naming 규칙"과 "Prefix/Subfix/Suffix 정의" 두 부분으로 나뉩니다. 먼저 Naming 규칙에서는 CSS와 HTML 및 각종 파일, 디렉토리들의 공통된 네이밍 규칙에 대해 정리합니다. 그리고 Prefix/Subfix/Suffix 규칙에서는 다양한 개발환경에 대비한 예약단축어들을 소개하며 이를 조합하는 방식에 대해 설명합니다.

naming 규칙

공통규칙
  • naming의 첫 시작에 숫자, 특수문자, 대문자의 사용은 지양한다.
    ex) 2list_notice ( x )
    list_notice2 ( o )
  • naming은 '형태_의미_상태' 순서로 조합하며, 3단계를 넘어가지 않도록 권장한다.
    ex) btn_apply_on, box_news, box_reply_open 등
  • naming 정의 시 prefix, subfix, suffix를 최대한 활용한다.
id/class 규칙
  • id는 camelcase 방식으로 하며, class는 underscore 방식으로 사용한다.
    ex) id="boardView" class="link_view"
  • id는 화면에서의 고유 기능을 명시하도록 naming 한다.
    ex) id="btnSearch" ( x )
    id="btnGnbSearch" ( o )
  • class는 요소 기능을 표현하도록 naming한다.
  • id는 문서 내 한 번만 사용되며, id, class naming은 가급적 같지 않게 naming 한다.
folder/file 규칙
HTML

대, 중 프로젝트 경우

  • 서비스의 대분류에 따라 폴더를 생성하고 대분류의 폴더 안에 HTML 파일을 생성한다.
  • 생성되는 HTML의 파일명은 '의미_상태'의 순서로 네이밍한다.(상태는 필요에 따라 사용)
    ex) /대분류명/notice.html
    /대분류명/notice_view.html

소 프로젝트 경우

  • 따로 폴더를 생성하지 않고 HTML 파일 한곳에 생성한다.
  • 생성되는 HTML의 파일명은 'serviceName_의미_상태'의 순서로 네이밍한다.
    ex) /serviceName_intro.html
    /serviceName_intro_write.html
CSS

대, 중 프로젝트 경우

  • 공통요소 모음인 common.css 가 서비스별로 생성되며, 서비스의 대분류에 따라 서비스명_대분류 명으로 CSS의 name을 만들어 사용한다.
    ex) common.css, serviceName_intro.css
  • 각 서비스페이지에 import 되는 css는 common.css, serviceName_대분류명.css가 되며 2개 이하로 import 되도록 한다.

소 프로젝트 경우

  • 공통요소모음인 common.css 하나만 생성하여 사용한다.

프로모션프로젝트의 경우

  • 페이지 내 head 사이에 internal 방식으로 style을 추가한다.
images

대, 중 프로젝트 경우

  • images 폴더를 생성하고 common폴더 및 대분류별 폴더가 생성되며 그 하위에 관련 image들이 저장된다.
    ex) images/common/btn_comm.gif 
    images/대분류명/intro_music.gif

소 프로젝트 경우

  • images 폴더에 모두 생성하며, 임시 image 사용 시 temp 폴더만 생성한다.

사용되는 image 중 운영성 image 또는 임시 image는 temp 폴더를 생성하여 그 안에 위치시킨다.

image 서버에 올라간 image를 수정 시 덮어쓰기는 하지 않고, 다른 이름으로 image 파일을 만드는데, image 수정네이밍은 '기존네이밍_수정날짜'로 네이밍하며, 같은 날짜에 한 image 파일을 두 번 수정하게 되는 경우는 '기본네이밍_수정날짜_v2'로 네이밍하며 숫자로 카운팅한다.

ex) btn_apply (기존)
btn_apply_110922 (수정)
btn_apply_110922_v2 (재수정)

prefix/subfix/suffix 정의

후보자
  • 접두사를 의미하는 것으로, 앞부분에 사용하며, 주로 형태를 나타내는 데 사용된다.
    ex) tab_notice, tbl_product 등
  • 기본 프리픽스는 형태별로 통일한다.
  • 서브 프리픽스가 필요한 부분은 underscore로 구분하여 표기한다 (line / line_dot)
  • 프리픽스 리스트에 한해 subfix, suffix에서 축약형 네이밍 사용한다 (이외 네이밍은 의미전달 가능하도록 기재)
  • prefix 2개 이상 중복 시 기능적인 prefix가 맨 앞부분에 위치할 수 있도록 한다.
  • 단독사용 클래스는 지양하며 prefix를 조합한 형태로 작성한다. 예외:fst, lst, hide, on
  • on 클래스인 경우, 단일 특정요소에 상태변화 클래스를 적용한다면 suffix로서 적용한다.
분류별 Prefix 부가설명
분류 prefix 부가설명
타이틀 tit 일반적인 타이틀
영역 section 제목 태그(Heading Tag)를 지닌 영역 구분 (선택적 사용, 중첩사용 지양)
wrap 일반 영역의 묶음 (선택적 사용, 중첩사용 지양)
inner 부모 wrapper 가 존재하며 자식 묶음이 단독으로 필요한 경우
내비게이션 gnb 서비스 전체 내비게이션
lnb 지역 내비게이션(gnb 영역)
snb 사이드 내비게이션(좌측메뉴)
tab
테이블 tbl
목록 list 일반 목록(ul, ol, 리스트 형식의 dl)
tf textfield (input 타입 text / textarea)
inp input 타입 radio, checkbox, file 등
opt selectbox
lab label
fld fieldset
버튼 btn
박스 box
아이콘 ico
line_방향 일반 실선
line_dot_방향 점선
배경 bg
섬네일 이미지 thumb
페이징 paging
배너 bnr/banner
텍스트 txt 일반 텍스트
txt_bar 구분선 텍스트
num ex) num1, num2, ... - 숫자 사용 시 언더바(underscore) 사용 X
copyright
time 날짜 및 시간
강조 emph
링크 link 일반 링크
link_more 더 보기 링크
순서 fst, mid, lst
팝업 popup
레이어 layer
광고 ad
스페셜 spe 검색 스페셜 용도
위젯 widget_소재명
상세내용 desc
댓글 cmt
subfix

하부 기호로서 subfix는 prefix와 함께 부가설명 용도로 사용한다.

ex) ico_arr_news.gif
분류별 subfix 부가설명
분류 subfix 부가설명
공용 comm 전역으로만 사용
위치변화 top/mid/bot/left/right
순서변화 fst/lst
그림자 shadow
화살표 arr
버튼상태변화 nor
방향 hori/vert
카테고리 cate
순위 rank
suffix

접미사를 의미하는 것으로, prefix와 함께 부가설명 용도로 사용하며 주로 상태를 나타내는 데 사용된다.

ex) btn_confirm_on, btn_prev 등
분류별 subfix 부가설명
분류 suffix 부가설명
상태변화 _on / _off / _over / _hit / _focus
위치변화 _top / _mid / _bot / _left / _right
순서변화 _fst / _lst
이전/다음 _prev / _next
대체 텍스트 / 예약어

대체텍스트 제공을 위한 여러 기법별 공용 클래스명 정의

예약어는 미리 정의된 네임을 사용하는 것으로 레이아웃 같은 경우에 주로 사용된다.

분류별 subfix 부가설명
분류 클래스명 부가설명
대체 텍스트 ir_pm image 대체텍스트 용도(text-indent)
ir_wa image 대체텍스트 용도(z-index)
screen_out 숨김 텍스트 용도(absolute)
screen_hide 숨김 텍스트 용도(visibility)
예약어 daumIndex 웹접근성용바로가기 영역
daumWrap 페이지를 감싸는 전체영역
daumHead 머리글 영역
daumContent 본문 영역
daumFoot 바닥글 영역