λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
BackEnd🌱/Java

[Java] (Project, Package, Class, Method) Naming κ·œμΉ™

by μ•ˆμ£Όν˜• 2022. 5. 16.

곡톡

  1. λŒ€μ†Œλ¬Έμžκ°€ κ΅¬λΆ„λ˜λ©° 길이에 μ œν•œμ΄ μ—†λ‹€.
  2. μ˜ˆμ•½μ–΄λ₯Ό μ‚¬μš©ν•΄μ„œλŠ” μ•ˆ λœλ‹€.
  3. 숫자둜 μ‹œμž‘ν•΄μ„œλŠ” μ•ˆ λœλ‹€.
  4. νŠΉμˆ˜λ¬ΈμžλŠ” '_' ν˜Ήμ€ '$'만 ν—ˆμš©ν•œλ‹€.
  5. 파슀칼 ν‘œκΈ°λ²•(PascalCase)κ³Ό 카멜 ν‘œκΈ°λ²•(camelCase)을 μ‚¬μš©ν•œλ‹€.
  6. λ°˜μ˜μ–΄λŠ” λ°˜λ“œμ‹œ λŒ€μ‘ν•˜λŠ” κ°œλ…μœΌλ‘œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

1. Project(ν”„λ‘œμ νŠΈ)

  • λŒ€/μ†Œλ¬Έμž ꡬ뢄없이 μ‹œμž‘ κ°€λŠ₯ν•˜λ‹€.
  • λŒ€λ¬Έμž μ‚¬μš©μ„ ꢌμž₯ν•œλ‹€.

2. Package(νŒ¨ν‚€μ§€)

  • νŒ¨ν‚€μ§€λͺ…은 λŒ€μ†Œλ¬Έμžλ₯Ό λͺ¨λ‘ ν—ˆμš© ν•˜μ§€λ§Œ 클래슀λͺ…κ³Ό μ‰½κ²Œ κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄μ„œ μ†Œλ¬Έμžλ‘œ ν•˜λŠ” 것을 원칙 으둜 ν•˜κ³  μžˆλ‹€.
  • ν‘œμ€€ νŒ¨ν„΄μ„ λ”°λ₯Έλ‹€. Ex) [com].[Company].[Project].[toppackage].[lowerpackage]
  • 가급적 ν•œ 단어 μ‚¬μš©μ„ ꢌμž₯ν•œλ‹€.
  • 쒋은 예: com.nexon.maplestory.member.object
  • λ‚˜μœ 예:  com.nexon.maplestoryMemberObject

3. Class(클래슀)

  • 파슀칼 ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•œλ‹€.
  • λͺ…μ‚¬λ‘œ μ‹œμž‘ν•œλ‹€.
  • Ex) HelloWorld, TestWorld, ByeClass 

4. interface(μΈν„°νŽ˜μ΄μŠ€)

  • νŠΉλ³„ν•œ μ ‘λ‘μ‚¬λ‚˜ 접미사λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  파슀칼 ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•œλ‹€.
  • ν˜•μš©μ‚¬λ₯Ό μ‚¬μš©ν•œλ‹€.
  • Ex) Runnable, Remote λ“±

5. Methods(λ©”μ„œλ“œ)

  • 카멜 ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•œλ‹€.
  • λ™μ‚¬λ‘œ μ‹œμž‘ν•œλ‹€.

5.1) 속성에 μ ‘κ·Όν•˜λŠ” λ©”μ„œλ“œ λͺ…μ˜ μ ‘λ‘μ‚¬λŠ” 'get','set'을 μ‚¬μš©ν•œλ‹€.
     (ex. public void setDisplayName)
     (ex. public void getDisplayName)

5.2) 데이터λ₯Ό μ‘°νšŒν•˜λŠ” λ©”μ†Œλ“œλͺ…μ˜ μ ‘λ‘μ‚¬λŠ” findλ₯Ό μ‚¬μš©ν•œλ‹€.
     (ex. public void findData(String data){})

5.3) 데이터λ₯Ό μž…λ ₯ν•˜λŠ” λ©”μ†Œλ“œλͺ…μ˜ μ ‘λ‘μ‚¬λŠ” input을 μ‚¬μš©ν•œλ‹€.
     (ex. public void inputData(HashMap data){})

5.4) 데이터λ₯Ό λ³€κ²½ν•˜λŠ” λ©”μ†Œλ“œλͺ…μ˜ μ ‘λ‘μ‚¬λŠ” modifyλ₯Ό μ‚¬μš©ν•œλ‹€.
     (ex. public void modifyData(HashMap data){})

5.5) 데이터λ₯Ό μ‚­μ œν•˜λŠ” λ©”μ†Œλ“œλͺ…μ˜ μ ‘λ‘μ‚¬λŠ” deleteλ₯Ό μ‚¬μš©ν•œλ‹€.
     (ex. public void deleteData(String data){})

5.6) 데이터λ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” λ©”μ„œλ“œ λͺ…μ˜ μ ‘λ‘μ‚¬λŠ” initialize을 μ‚¬μš©ν•œλ‹€.
     (ex. public void initData(String data){})

5.7) λ°˜ν™˜ κ°’μ˜ νƒ€μž…μ΄ boolean인 λ©”μ„œλ“œλŠ” μ ‘λ‘μ‚¬λ‘œ isλ₯Ό μ‚¬μš©ν•œλ‹€.
     (ex. public void isData(String Data){})

5.8) 데이터λ₯Ό λΆˆλŸ¬μ˜€λŠ” λ©”μ„œλ“œ λͺ…μ˜ μ ‘λ‘μ‚¬λŠ” loadλ₯Ό μ‚¬μš©ν•œλ‹€.
     (ex. public void loadData(){})

5.9) 데이터가 μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” λ©”μ†Œλ“œλͺ…μ˜ μ ‘λ‘μ‚¬λŠ” hasλ₯Ό μ‚¬μš©ν•œλ‹€.
     (ex. public void hasData(){})

5.10) μƒˆλ‘œμš΄ 객체λ₯Ό λ§Œλ“  λ’€ ν•΄λ‹Ή 객체λ₯Ό λ¦¬ν„΄ν•΄μ£ΌλŠ” λ©”μ„œλ“œ λͺ…μ˜ μ ‘λ‘μ‚¬λŠ” createλ₯Ό μ‚¬μš©ν•œλ‹€.
     (ex. public void createAccount(){})

5.11) ν•΄λ‹Ή 객체λ₯Ό λ‹€λ₯Έ ν˜•νƒœμ˜ 객체둜 λ³€ν™˜ν•΄μ£ΌλŠ” λ©”μ„œλ“œ λͺ…μ˜ μ ‘λ‘μ‚¬λŠ” toλ₯Ό μ‚¬μš©ν•œλ‹€.
     (ex. public void toString(){})

5.12) ν•΄λ‹Ή 객체가 λ³΅μˆ˜μΈμ§€ 단일인지 κ΅¬λΆ„ν•˜λŠ” λ©”μ„œλ“œ λͺ…μ˜ μ ‘λ―Έμ‚¬λŠ” sλ₯Ό μ‚¬μš©ν•œλ‹€.
     (ex. public void getMembers(){})

5.13) Bλ₯Ό κΈ°μ€€μœΌλ‘œ Aλ₯Ό ν•˜κ² λ‹€λŠ” λ©”μ†Œλ“œλͺ…μ˜ μ „μΉ˜μ‚¬λŠ” Byλ₯Ό μ‚¬μš©ν•œλ‹€.
     (ex. public void getUserByName(String name){})

6) Variable(λ³€μˆ˜)

  • μ†Œλ¬Έμžλ‘œ μ‹œμž‘ν•œλ‹€.
  • 카멜 ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•œλ‹€.
  • ex) firstName , lastName , birthday λ“±

7. Constant(μƒμˆ˜)

  • μ „λΆ€ λŒ€λ¬Έμžλ‘œ ν‘œκΈ°ν•œλ‹€.
  • μŠ€λ„€μ΄ν¬μΌ€μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ '_'둜 κ΅¬λΆ„ν•œλ‹€.
  •  ex) MAX_PRIORITY , LIFESPAN λ“±

λŒ“κΈ€