- Published on
๐คNaming Convention(๋ค์ด๋ฐ ์ปจ๋ฒค์ )์ด๋ ๋ฌด์์ผ๊น?
Naming Convention(๋ค์ด๋ฐ ์ปจ๋ฒค์ ) ์ด๋?
ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค๋ณด๋ฉด ๋ค์ํ ์๋ณ์๊ฐ ์ฌ์ฉ๋๋ฉฐ, ํด๋น ์๋ณ์๋ค์ ๋ฌธ์์ด ๋ช ์นญ์ผ๋ก ๊ตฌ๋ถ๋๋ค. ํ๋ ์ฌํ ์ ํ๋ก๊ทธ๋จ๋ค์ ๊ท๋ชจ์ ๋ณต์ก์ฑ์ด ๋น๋ํด ์ก๊ณ , ๋ฐ๋ผ์ ๋ค์ํ ์ฌ๋๋ค๊ณผ ํจ๊ป ํ์ ํฉ์ณ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ์ํฉ์ด ํ์ค ์ํ์ด๋ค. ์ด๋ฌํ ๊ฐ๋ฐ ๊ณผ์ ์ค, ์๋ณ์์ ์ฑ์ง์ ๋ฐ๋ผ ๋ช ์นญ์ ๊ท์น์ ์ธ์ฐ๊ฒ ๋์๊ณ , ํด๋น ๊ท์น์ Naming Convention, ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ง์ญ ํ๋ฉด ๋ช ๋ช ๊ท์น, ๋ช ๋ช ๊ท์ฝ์ผ๋ก ํด์ ํ ์์๋ค.
Naming Convention(๋ค์ด๋ฐ ์ปจ๋ฒค์ )์ ์ฅ์
์ํค ๋ฌธ์์์๋ ๋ค์์ 3๊ฐ์ง ์ฌํญ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ผ๋ก ์ ์ํ๋ค.
- ๊ฐ๋
์ฑ (legibility)
๋ฌธ์, ๊ธฐํธ ๋๋ ๋ํ์ด ์ผ๋ง๋ ์ฝ๊ฒ ์ฝํ๋๊ฐ ํ๋ ๋ฅ๋ฅ ์ ์ ๋. ์์ฑ์ ๊ฒฝ์ฐ ์์ธ์ฑ ํน์ ๋ช ์์ฑ์ด ๋์ ๋ฉ๋ฆฌ์๋ ์ ๋ณด์ด๋ ์ ๋๋ฅผ ๋งํ๋ค. ๋ช ์์ฑ์ ๋์ด๋ ค๋ฉด ๋ช ๋ ์ฐจ๋ฅผ ๋์ด ๋ฐฐ์ํ๊ณ , ๋ช ์์ฑ์ด ๊ฐ์ฅ ๋์ ๋ฐฐ์์ ๋ ธ๋ ๋ฐฐ๊ฒฝ์ ๊ฒ์ ๊ธ์จ์ด๋ค.
[๋ค์ด๋ฒ ์ง์๋ฐฑ๊ณผ] - ์์ธ์ฑ (Visibility
๋์๋ฌผ์ ์กด์ฌ ๋๋ ๋ชจ์์ด ์๊ฑฐ๋ฆฌ์์๋ ์๋ณ์ด ์ฌ์ด ์ฑ์ง. ์ ๋ชฉ์ฑ ํน์ ์ฃผ๋ชฉ์ฑ๊ณผ ๊ตฌ๋ณ๋๋ฉฐ, ๋ช ๋ ์ฐจ๊ฐ ํด์๋ก ์์ธ์ฑ์ด ๋๋ค.
[๋ค์ด๋ฒ ์ง์๋ฐฑ๊ณผ] - ํจ์จ์ฑ (efficiency)
๋ค์ธ ๋ ธ๋ ฅ๊ณผ ์ป์ ๊ฒฐ๊ณผ์ ๋น์จ์ด ๋์ ํน์ฑ. [๋ค์ด๋ฒ ์ง์๋ฐฑ๊ณผ]
ํ์ ํ๊ฒฝ ์ ํ๋ก๊ทธ๋จ ์์ค์ฝ๋ ์์ฑ๊ณผ ์ฌํ ๊ด๋ฆฌ์ ๋ฅ๋ฅ ๊ณผ ํธ์์ฑ์ ํฅ์์ํฌ ์ ์๋ค.
Naming Convention(๋ค์ด๋ฐ ์ปจ๋ฒค์ )์ ์์
1. Camel case
ํ๋ก๊ทธ๋๋ฐ์์ ํ์ผ, ๋ณ์, ํจ์ ๋ฑ ๋์์ ์ด๋ฆ์ ๋์ด์ฐ๊ธฐ ์์ด ์ง๊ธฐ ์ํ์ฌ ๋ฐ๋ฅด๋ ๊ด๋ก
- Upper camel case(== Pascal case)
ํ์ค์นผ ์ผ์ด์ค๋ผ๊ณ ๋ง์ด ๋ถ๋ฆฌ์ฐ๋ ๋ค์ด๋ฐ ์ปจ๋ฒค์ . ์ฒซ ๋จ์ด๋ถํฐ ๊ฐ ๋จ์ด์ ์์ ์ํ๋ฒณ์ ๋๋ฌธ์๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋จ์ด์ ๋จ์ด ์ฌ์ด๋ ๋ชจ๋ ์ฐ๊ฒฐํ๋ค.
ํด๋์ค๋ช ์ ๋ง์ด ์ฌ์ฉ๋๋ค.
์๋ฌธ : infinite programming language
ํ์ค์นผ ์ผ์ด์ค : InfiniteProgrammingLanguage
- Lower camel case(== Dromedary case)
์นด๋ฉ ์ผ์ด์ค๋ผ๊ณ ๋ง์ด ๋ถ๋ฆฌ์ฐ๋ ๋ค์ด๋ฐ ์ปจ๋ฒค์ . ๋ํ์ ๋ฑ ๋ชจ์์์ ๋ฐ์จ ๋ฐฉ๋ฒ์ด๋ค. ์ฒซ ๋จ์ด๋ ์๋ฌธ์, ๋๋ฒ์งธ ๋จ์ด๋ถํฐ ๋๋ฌธ์๋ก ์ฌ์ฉํ๋ค. ๋จ์ด์ ๋จ์ด ์ฌ์ด๋ ๋ชจ๋ ์ฐ๊ฒฐํ๋ค.
๋ณ์๋ช , ํจ์๋ช ์ ๋ง์ด ์ฌ์ฉ๋๋ค.
์๋ฌธ : infinite programming language
๋ก์ฐ ์ผ์ด์ค : infinteProgrammingLanguage
2. Hungarian notation
์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์์ ๋ณ์๋ ํจ์์ ์ด๋ฆ์ ๊ทธ ์ข ๋ฅ, ๊ณง ํํ ๋ฐ์ดํฐ ํ์ ๋ฐ์๋ฅผ ๋ช ์ํ๋ ํ๊ธฐ๋ฒ์ผ๋ก, ๋ช ๋ช ๊ท์น์ ์ผ์ข ์ด๋ค. ์ต๊ทผ์๋ ๋์คํ๋ ์ด ํ๋ฉด๋ ์ปค์ง๊ณ IDE๊ฐ ๋ฐ์ ํ์ฌ์ ๋ง์ด ์ฌ์ฉ ๋์ง ์๋๋ค.
์์ : strName, nStudentnumber
3. Snake case
๋ฐ๋ฅ์ ๊ธฐ์ด๋ค๋๋ ๋ฑ์ ๋ชจ์ต์ ๋ฐ์จ ๋ค์ด๋ฐ ์ปจ๋ฒค์ . ๋จ์ด์ ๋จ์ด ์ฌ์ด๋ฅผ ์ธ๋ ๋ฐ(_)๋ฅผ ์ฌ์ฉํ์ฌ ๋์์ ํ๊ธฐํ๋ค.
ํ์ผ๋ช ์ ๋ง์ด ์ฐ์
์๋ฌธ : infinite programming language
์ค๋ค์ดํฌ ์ผ์ด์ค : infinite_programming_language
4. Kebab case
์ผ๋ฐฅ์ด ๊ผฌ์ฑ์ด๊ฒ ๊ฝํ ๋ชจ์ต์์ ์๊ธด ๋ฐฉ๋ฒ. ๋ชจ๋ ๋จ์ด๊ฐ ์๋ฌธ์ ์์, ๋จ์ด์ ๋จ์ด ์ฌ์ด "-"๋ก ์ฐ๊ฒฐ
์๋ฌธ : infinite programming language
์ผ๋ฐฅ ์ผ์ด์ค : infinite-programming-language