Naming Conventions

Capitalization

Casing Styles

  • 아래의 표기 형식을 사용하며, 식별자별로 구분하여 사용한다.
Style Description
lowercase 모든 단어를 띄어쓰기 하지 않은 소문자로 표기한다.
lower_case_with_underscores 모든 단어를 소문자로 표기하고, 단어와 단어는 _ 를 삽입하여 구분한다.
UPPERCASE 모든 단어를 띄어쓰기 하지 않은 대문자로 표기한다.
UPPER_CASE_WITH_UNDERSCORES 모든 단어를 대문자로 표기하고, 단어와 단어는 _ 를 삽입하여 구분한다.
lowerCamelCase 첫글자 를 소문자로 표기하고, 나머지 단어의 첫글자는 대문자로 표기한다.
UpperCamelCase 첫글자 를 대문자로 표기하고, 나머지 단어의 첫글자는 대문자로 표기한다.
Capitalized_Words_With_Underscores 각 단어의 첫글자를 대문자로 표기하고, 단어와 단어는 _ 를 삽입하여 구분한다.

Style for Identifiers

  • 추가적인 세부규칙은 각 항목에서 다루며, 기본 규칙은 아래와 같다.
Idenfidier Style Example
Variable lowerCamelCase, lowercase $fooBar, $i
Class UpperCamelCase FooBar
Namespace UpperCamelCase FooBar
Property lowerCamelCase $fooBar
Method lowerCamelCase fooBar
Constant UPPER_CASE_WITH_UNDERSCORES FOO_BAR
Internal Function lower_case_with_underscore mysql_query
Database lower_case_with_underscores, UPPER_CASE_WITH_UNDERSCORES gd_goods, USP_GET_GD_GOODS_LIST
Column lower_case_with_underscores goods_name

Filenames

PHP

  • 클래스명과 파일명이 같아야 한다.

Resources

  • Image : lower_case_with_underscores 를 사용하되, 구분자는 _ 대신 . 을 사용해도 된다.
  • CSS : lower_case_with_underscores 를 사용하되, 구분자는 _ 대신 . 을 사용해도 된다.
  • JS : lower_case_with_underscores 를 사용하되, 구분자는 _ 대신 . 을 사용해도 된다.

General

Word Choice

  • 의미가 전달 될 수 있도록, 쉽고 간단한 단어를 사용하여 작명한다.
  • 흔히 쓰이는 용어(ex: email, XML, file, error 등)를 사용할 경우, 반드시 1개 이상의 수식어를 함께 사용한다.
  • 헝가리안 표기를 사용하지 않는다.
  • Control Structures 에 i, j, k, v 등의 네이밍을 사용하는 것은 복잡한 중첩 구조가 아닌 경우에는 허용된다.

Abbreviations

  • 약속된 약어 외에는 단어를 모두 풀어쓰도록 한다.
getMemberInformation (O)
getMbInfo (X)
openPopupWindow (O)
openPopupWin (X)
register_date (O)
regdt (X)

Namespaces & Classes

  • UpperCamelCase 형태로 표기한다.
  • Interface 는 접미사로 Interface 를 붙인다.
  • Trait 는 접미사로 Trait 를 붙인다.
  • Abstract 클래스는 접두사로 Abstract 를 붙인다.
  • Exception 클래스는 접두사로 Exception 을 붙인다.

Methods

  • lowerCamelCase 형태로 표기한다.
  • 동사로 시작한다.
  • Visibility를 반드시 지정한다.
  • private method일 경우에만 _ 로 시작한다.
class SomeClass
{
    public function getResultSet()
    {}

    protected function getResult()
    {}

    private function _getResultSet()
    {}
}

Properties

  • lowerCamelCase 형태로 표기한다.
  • 명사로 시작한다.
  • Visibility를 반드시 지정한다.
  • private method일 경우에만 _ 로 시작한다.
class SomeClass
{
    private $_data;
    public $resultSet;
}

Constants

  • UPPER_CASE_WITH_UNDERSCORES 형태로 표기한다.
  • true, false, null 은 소문자를 유지한다.
define('DEFINE_CONSTANT', '...');

class SomeClass {
    const SOME_CONSTANT;
}

Internal Functions

  • 내장 함수는 모두 소문자와 _로 표기한다.
  • PHP코드와 프로젝트 코드를 구분하기 위해 반드시 gd_를 prefix로 붙힌다.
define('DEFINE_CONSTANT', '...');

class SomeClass {
    const SOME_CONSTANT;
}

Databases

Table Name Prefix

  • 프로젝트별 구분을 위해 Table Name Prefix 를 사용할 수 있다.
  • 고도몰의 Table Name Prefix 는 es_ 이다.

Tables

  • lower_case_with_underscores 형태로 표기한다.
  • DBMS 내장 키워드명, 함수명을 사용하지 않는다.
  • 의미 없는 단어나, 약속되지 않은 약어를 사용하지 않는다.

Columns

  • lower_case_with_underscores 형태로 표기한다.
  • DBMS 내장 키워드명, 함수명을 사용하지 않는다.
  • 의미 없는 단어나, 약속되지 않은 약어를 사용하지 않는다.
confirm_yn (O)
cyn (X)
delivery_yn (O)
dyn (X)

Indexes

  • lower_case_with_underscores 형태로 표기한다.

  • 인덱스에 포함된 모든 컬럼명을 모두 입력한다.

  • 인덱스 형태별로 아래의 prefix 를 사용한다.

    • Unique : uidx
    • Index : idx

Triggers

  • 사용금지

Stored Procedures

  • 사용금지

User Defined Functions

  • 사용금지

Viewes

  • 사용금지