Skip to content

Commit

Permalink
Merge pull request #335 from SujinEmilyCho/week10_sujin
Browse files Browse the repository at this point in the history
[#68][2κΈ°] 일반적으둜 ν†΅μš©λ˜λŠ” λͺ…λͺ… κ·œμΉ™μ„ λ”°λ₯΄λΌ
  • Loading branch information
ksy90101 authored Oct 30, 2021
2 parents 1173a1a + fa0bfd2 commit b1fe3fb
Showing 1 changed file with 80 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# μ•„μ΄ν…œ 68. 일반적으둜 ν†΅μš©λ˜λŠ” λͺ…λͺ… κ·œμΉ™μ„ λ”°λ₯΄λΌ

### 철자 κ·œμΉ™ - λ°˜λ“œμ‹œ 따라야 ν•œλ‹€

1. νŒ¨ν‚€μ§€
- 각 μš”μ†Œλ₯Ό 점(.)으둜 κ΅¬λΆ„ν•˜μ—¬ κ³„μΈ΅μ μœΌλ‘œ μ§“λŠ”λ‹€
- λͺ¨λ“  μš”μ†Œλ“€μ€ λͺ¨λ‘ μ†Œλ¬Έμž μ•ŒνŒŒλ²³ ν˜Ήμ€ (λ“œλ¬Όκ²Œ) 숫자둜 이뀄진닀
- 쑰직 λ°–μ—μ„œλ„ μ‚¬μš©λ  νŒ¨ν‚€μ§€λΌλ©΄ 쑰직의 인터넷 도메인 이름을 μ—­μˆœμœΌλ‘œ μ‚¬μš©ν•œλ‹€
ex edu.cmu, com.google, org.eff
- ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ 선택적 νŒ¨ν‚€μ§€λ“€μ€ μ˜ˆμ™Έμ μœΌλ‘œ java, javax둜 μ‹œμž‘
- νŒ¨ν‚€μ§€μ˜ λ‚˜λ¨Έμ§€ 뢀뢄은 8자 μ΄ν•˜μ˜ 짧은 단어, ν•˜λ‚˜ μ΄μƒμ˜ μš”μ†Œλ‘œ 이뀄진닀
- utilities보닀 util처럼 μ˜λ―Έκ°€ ν†΅ν•˜λŠ” μ•½μ–΄λ₯Ό μΆ”μ²œ, μ•½μ–΄(ex. awt)도 κ°€λŠ₯
- λ§Žμ€ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” κ²½μš°μ—λŠ” 계측을 λ‚˜λˆ μ„œ 더 λ§Žμ€ μš”μ†Œλ‘œ ꡬ성해도 μ’‹λ‹€(ν•˜μœ„ νŒ¨ν‚€μ§€)
ex. java.util.concurrent.atomic
2. 클래슀, μΈν„°νŽ˜μ΄μŠ€(μ—΄κ±° νƒ€μž…, μ• λ„ˆν…Œμ΄μ…˜ 포함)
- ν•˜λ‚˜ μ΄μƒμ˜ λ‹¨μ–΄λ‘œ 이뀄지며, 각 λ‹¨μ–΄λŠ” λŒ€λ¬Έμžλ‘œ μ‹œμž‘(ex. List, FutherTask λ“±)
- μ—¬λŸ¬ λ‹¨μ–΄μ˜ 첫 κΈ€μžλ§Œ λ”΄ μ•½μ–΄λ‚˜ max, min처럼 널리 ν†΅μš©λ˜λŠ” μ€„μž„λ§μ„ μ œμ™Έν•˜κ³  단어λ₯Ό 쀄여쓰지 μ•ŠλŠ”λ‹€
- μ•½μžμ˜ 경우 첫 κΈ€μžλ§Œ λŒ€λ¬Έμžλ‘œ μ“°κ±°λ‚˜ λͺ¨λ‘ λŒ€λ¬Έμžλ‘œ μ“Έ 수 μžˆλŠ”λ°, 가독성과 단어 의미 ꡬ뢄을 μœ„ν•΄ 첫 κΈ€μžλ§Œ λŒ€λ¬Έμžλ‘œ ν•˜λŠ” μͺ½μ΄ λ§Žλ‹€(HttpUrl vs HTTPURL)
3. λ©”μ„œλ“œ, ν•„λ“œ
- 첫 κΈ€μžλ₯Ό μ†Œλ¬Έμžλ‘œ μ“΄λ‹€λŠ” 점만 λΉΌλ©΄ 클래슀 λͺ…λͺ… κ·œμΉ™κ³Ό κ°™λ‹€ (ex. remove, ensureCapacity λ“±)
- 단, 첫 단어가 약어라면 κ·Έ 단어 전체가 μ†Œλ¬Έμžμ—¬μ•Ό ν•œλ‹€
4. μƒμˆ˜ ν•„λ“œ(= static final ν•„λ“œ)
- λͺ¨λ“  단어λ₯Ό λŒ€λ¬Έμžλ‘œ μ“°λ©° 단어 μ‚¬μ΄μ—λŠ” λ°‘μ€„λ‘œ κ΅¬λΆ„ν•œλ‹€ (ex. VALUES, NEGATIVE_INFINITY λ“±)
- 이름에 밑쀄을 μ‚¬μš©ν•˜λŠ” μš”μ†ŒλŠ” μƒμˆ˜ ν•„λ“œκ°€ 유일
5. 지역 λ³€μˆ˜
- λ‹€λ₯Έ 멀버와 λΉ„μŠ·
- μ•½μ–΄λ₯Ό 써도 μ’‹λ‹€ (ex. i, denom, houseNum λ“±)
- μž…λ ₯ λ§€κ°œλ³€μˆ˜λŠ” 쑰금 더 μ‹ κ²½μ¨μ„œ 지을 것
6. νƒ€μž… λ§€κ°œλ³€μˆ˜
- 보톡 ν•œ 문자둜 ν‘œν˜„
- μ»¬λ ‰μ…˜ μ›μ†Œ νƒ€μž… E, 맡의 킀와 값은 K, V, μ˜ˆμ™ΈλŠ” X, λ©”μ„œλ“œμ˜ λ°˜ν™˜ νƒ€μž…μ€ R
- κ·Έ μ™Έμ˜ μž„μ˜ νƒ€μž… T, U, V ν˜Ήμ€ T1, T2, T3

### 문법 κ·œμΉ™ - μœ μ—°ν•˜λ‹€

1. νŒ¨ν‚€μ§€
- κ·œμΉ™ μ—†μŒ
2. 객체λ₯Ό 생성할 수 μžˆλŠ” 클래슀(μ—΄κ±° νƒ€μž… 포함)
- 보톡 λ‹¨μˆ˜ λͺ…μ‚¬λ‚˜ λͺ…사ꡬλ₯Ό μ‚¬μš©ν•œλ‹€ (ex. Thread, PriorityQueue, ChessPiece λ“±)
3. 객체λ₯Ό 생성할 수 μ—†λŠ” 클래슀
- 보톡 λ³΅μˆ˜ν˜• λͺ…μ‚¬λ‘œ μ§“λŠ”λ‹€ (ex. Collectors, Collections λ“±)
4. μΈν„°νŽ˜μ΄μŠ€
- ν΄λž˜μŠ€μ™€ λ˜‘κ°™μ΄ μ§“κ±°λ‚˜ able, ible둜 λλ‚˜λŠ” ν˜•μš©μ‚¬λ‘œ μ§“λŠ”λ‹€ (ex. Collection, Comparator, Runnable, Iterable, Accessible)
5. μ• λ„ˆν…Œμ΄μ…˜
- 지배젹인 κ·œμΉ™ 없이 λͺ…사, 동사, μ „μΉ˜μ‚¬, ν˜•μš©μ‚¬ 두루 쓰인닀 (ex. BindingAnnotation, Inject, ImplementedBy, Singleton λ“±)
6. λ™μž‘μ„ μˆ˜ν–‰ν•˜λŠ” λ©”μ„œλ“œ
- λ™μ‚¬λ‚˜ (λͺ©μ μ–΄λ₯Ό ν¬ν•¨ν•œ) λ™μ‚¬κ΅¬λ‘œ μ§“λŠ”λ‹€ (ex. append, drawImage)
7. boolean 값을 λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œ
- isλ‚˜ (λ“œλ¬Όκ²Œ) has둜 μ‹œμž‘ν•˜κ³  λͺ…사, λͺ…사ꡬ, ν˜•μš©μ‚¬λ‘œ κΈ°λŠ₯ν•˜λŠ” λ‹¨μ–΄λ‚˜ ꡬ둜 λλ‚˜λ„λ‘ μ§“λŠ”λ‹€ (ex. isDigit, isProbablePrime, isEmpty, isEnabled, hasSiblings λ“±)
8. λ°˜ν™˜ νƒ€μž…μ΄ boolean이 μ•„λ‹ˆκ±°λ‚˜, μΈμŠ€ν„΄μŠ€μ˜ 속성을 λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œ
- λͺ…사, λͺ…사ꡬ, ν˜Ήμ€ get으둜 μ‹œμž‘ν•˜λŠ” 동사ꡬ (ex. size, hashCode, getTime λ“±)
- get으둜 μ‹œμž‘ν•˜λŠ” ν˜•νƒœλŠ” μžλ°”λΉˆμ¦ˆ λͺ…세에 뿌리λ₯Ό λ“œκ³  μžˆλ‹€. 이런 도ꡬ와 μ–΄μš°λŸ¬μ§€λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€λ©΄ 이 κ·œμΉ™μ„ 따라도 μ’‹λ‹€.
9. 객체의 νƒ€μž…μ„ λ°”κΏ”μ„œ λ°˜ν™˜ν•˜λŠ” μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ
- toType (ex. toString, toArray λ“±)
10. 객체의 λ‚΄μš©μ„ λ‹€λ₯Έ 뷰둜 λ³΄μ—¬μ£ΌλŠ” λ©”μ„œλ“œ
- asType (ex. asList λ“±)
11. 객체의 값을 κΈ°λ³Έ νƒ€μž… κ°’μœΌλ‘œ λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œ
- typeValue (ex. intValue λ“±)
12. 정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œ
- from
- of
- valueOf
- instance
- getInstance
- newInstance
- getType
- newType
13. ν•„λ“œ 이름
- 클래슀, μΈν„°νŽ˜μ΄μŠ€, λ©”μ„œλ“œ 이름에 λΉ„ν•΄ 덜 λͺ…ν™•ν•˜κ³  덜 μ€‘μš”
- API 섀계λ₯Ό 잘 ν–ˆλ‹€λ©΄ ν•„λ“œκ°€ 직접 λ…ΈμΆœλ  일이 거의 μ—†κΈ° λ•Œλ¬Έ
- boolean νƒ€μž…μ€ μ ‘κ·Όμžμ—μ„œ is, hasλ₯Ό μ œμ™Έν•œ ν˜•νƒœ(ex. initialized, composite λ“±)
- λ‹€λ₯Έ νƒ€μž… ν•„λ“œλΌλ©΄ λͺ…μ‚¬λ‚˜ λͺ…사ꡬ (ex. geight, digits, bodyStyle λ“±)

### 정리
ν‘œμ€€ λͺ…λͺ… κ·œμΉ™μ„ μ²΄ν™”ν•΄μ„œ μžμ—°μŠ€λŸ½κ²Œ μ‚¬μš©ν•˜λΌ.
철자 κ·œμΉ™μ€ 직관적이고 λ°˜λ“œμ‹œ λ”°λΌμ•Όν•˜λŠ” κ·œμΉ™μ΄λ‹€.
문법 κ·œμΉ™μ€ λŠμŠ¨ν•˜κ³  λ…Όλž€λ„ μžˆλŠ” νŽΈμ΄λ‹€. 상황에 따라 μƒμ‹μ μœΌλ‘œ νŒλ‹¨ν•΄μ„œ μž‘μ„±ν•˜μž.

### μ°Έκ³ 
- μžλ°” μ–Έμ–΄ λͺ…μ„Έ[JLS, 6.1]

0 comments on commit b1fe3fb

Please sign in to comment.