MapleStory Cookie With Halo

πŸ“œ CleanCode

[CleanCode]경계 1

뉴이 NUEY 2024. 10. 1. 00:49
λ°˜μ‘ν˜•

 

μ˜€λŠ˜μ€ λ‹€λ₯Έ κ±Έ κ³΅λΆ€ν•΄λ³ΌκΉŒ ν•˜λ‹€κ°€λ„..μ±… λ‚΄μš©μ΄ ν₯λ―Έλ‘œμ›Œ μ­‰ μ½κ²Œλ©λ‹ˆλ‹€

 

μ™ΈλΆ€ μ½”λ“œ μ‚¬μš©ν•˜κΈ°

 

2024.09.29 - [β˜• μžλ°” JAVA/β˜• λ³€μˆ˜μ™€ μžλ£Œν˜• Variables & Data Type] - [JAVA]Map<Key, Value>

κ°€μž₯ 많이 μ“°μ΄λŠ” Map을 톡해 μ•Œμ•„λ³Έλ‹€.

  • Map의 κΈ°λŠ₯μ„±κ³Ό μœ μ—°μ„±μ΄ μœ μš©ν•œλ§ŒνΌ μœ„ν—˜λ„ 크닀.
  • μ‚¬μš©μžλŠ” Map λ‚΄μš©μ„ μ§€μš°κ±°λ‚˜ μΆ”κ°€ν•  수 μžˆλ‹€.

ν˜•λ³€ν™˜μ˜ μ±…μž„μ„ μ‚¬μš©μžμ—κ²Œ λ„˜κΈ°κΈ° λ•Œλ¬Έμ—
μ œλ„€λ¦­μ„ μ‚¬μš©ν•˜λ©΄ ν˜•λ³€ν™˜(Sensor)의 였λ₯˜κ°€ 사라지고 가독성이 μ˜¬λΌκ°„λ‹€.

 

2024.09.30 - [β˜• μžλ°” JAVA/β˜• λ³€μˆ˜μ™€ μžλ£Œν˜• Variables & Data Type] - [JAVA]μ œλ„€λ¦­ Generic

ν•˜μ§€λ§Œ 이 방법도 μ‚¬μš©μžμ—κ²Œ ν•„μš”ν•˜μ§€ μ•Šμ€ κΈ°λŠ₯κΉŒμ§€ μ œκ³΅ν•œλ‹€.
Map<String, Sensor>λ₯Ό μ‚¬μš©ν•˜λŠ” ν•˜μœ„ ν΄λž˜μŠ€κ°€ λ§Žμ„ 수둝
Map<String, Sensor>κ°€ 변경될 μ‹œ μˆ˜μ •ν•  μ½”λ“œκ°€ λ§Žμ•„μ§„λ‹€.

Map을 클래슀 μ•ˆμœΌλ‘œ

  • Map<String, Sensor> sensors = new HashMap<>()λ₯Ό Class μ•ˆμœΌλ‘œ 넣은 κ²ƒμž…λ‹ˆλ‹€.
  • λ”°λΌμ„œ Map μΈν„°νŽ˜μ΄μŠ€κ°€ λ³€ν•˜λ”λΌλ„ λ‚˜λ¨Έμ§€ ν”„λ‘œκ·Έλž¨μ—λŠ” 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • Sensors ν΄λž˜μŠ€λŠ” λ‚˜λ¨Έμ§€ ν”„λ‘œκ·Έλž¨λ“€μ΄ 섀계/λΉ„μ§€λ‹ˆμŠ€ κ·œμΉ™μ„ λ”°λ₯΄λ„둝 κ°•μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
Map 을 μ‚¬μš©ν•  λ•Œλ§ˆλ‹€ μœ„μ™€ 같이 μΊ‘μŠν™”ν•˜λΌλŠ” μ†Œλ¦¬κ°€ μ•„λ‹ˆλΌ
Mapκ³Ό 같은 경계 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ—¬κΈ°μ €κΈ° λ‹€λ₯Έ 클래슀 λ°–μœΌλ‘œ λ…ΈμΆœμ‹œν‚€μ§€ 말아야 ν•œλ‹€λŠ” μ–˜κΈ°λ‹€.
λ§Œμ•½ μ–΄μ©” 수 없이 μ™ΈλΆ€ ν΄λž˜μŠ€μ—μ„œ μ‚¬μš©ν•  일이 μžˆλ‹€λ©΄ μœ„μ™€ 같이 Map 자체λ₯Ό 클래슀 μ•ˆμ— λ‹΄μ•„ κ·œκ²©ν™”ν•΄μ•Ό ν•œλ‹€.

ν•™μŠ΅ ν…ŒμŠ€νŠΈ
 - Jim Newkirk
μ™ΈλΆ€ μ½”λ“œλ₯Ό μ‚¬μš©ν•  경우, μ™ΈλΆ€ νŒ¨ν‚€μ§€ ν…ŒμŠ€νŠΈλŠ” 우리 μ±…μž„μ€ μ•„λ‹ˆλ‹€.
ν•˜μ§€λ§Œ μš°λ¦¬κ°€ μ‚¬μš©ν•  μ½”λ“œλ₯Ό ν…ŒμŠ€νŠΈν•˜λŠ” 편이 λ°”λžŒμ§ν•˜λ‹€.

우리μͺ½ μ½”λ“œμ—μ„œ λ°”λ‘œ μ™ΈλΆ€ μ½”λ“œλ₯Ό ν˜ΈμΆœν•˜λŠ” λŒ€μ‹ 
λ¨Όμ € κ°„λ‹¨ν•œ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μž‘μ„±ν•΄ μ™ΈλΆ€ μ½”λ“œλ₯Ό μ΅νžˆλŠ” 것을 ν•™μŠ΅ν…ŒμŠ€νŠΈλΌκ³  ν•œλ‹€.

ν•™μŠ΅ ν…ŒμŠ€νŠΈλŠ” 이해도λ₯Ό λ†’μ—¬μ£ΌλŠ” 곡짜 μ΄μƒμ˜ κ°’μ–΄μΉ˜κ°€ μžˆλ‹€.
μ™œλƒλ©΄ μƒˆ 버전이 우리 μ½”λ“œμ™€ ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” 지 ν•™μŠ΅ ν…ŒμŠ€νŠΈκ°€ κ³§λ°”λ‘œ λ°ν˜€λ‚΄κΈ° λ•Œλ¬Έμ΄λ‹€.
  • ν•™μŠ΅ ν…ŒμŠ€νŠΈλŠ” ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©ν•˜λ €λŠ” λ°©μ‹λŒ€λ‘œ μ™ΈλΆ€ APIλ₯Ό ν˜ΈμΆœν•œλ‹€.
  • ν†΅μ œλœ ν™˜κ²½μ—μ„œ APIλ₯Ό μ‚¬μš©ν•˜λ €λŠ” λͺ©μ μ— μ΄ˆμ μ„ λ§žμΆ˜λ‹€.

κΉ¨λ—ν•œ 경계
  • 섀계가 μš°μˆ˜ν•˜λ‹€λ©΄ λ³€κ²½ν•˜λŠ”λ° λ§Žμ€ νˆ¬μžμ™€ μž¬μž‘μ—…μ΄ ν•„μš”ν•˜μ§€ μ•Šλ‹€.
  • 경계에 μœ„μΉ˜ν•˜λŠ” μ½”λ“œλŠ” κΉ”λ”νžˆ λΆ„λ¦¬ν•œλ‹€.
  • ν†΅μ œκ°€ λΆˆκ°€λŠ₯ν•œ μ™ΈλΆ€ νŒ¨ν‚€μ§€μ— μ˜μ‘΄ν•˜λŠ” λŒ€μ‹ 
    ν†΅μ œ κ°€λŠ₯ν•œ 우리 μ½”λ“œμ— μ˜μ‘΄ν•˜λŠ” 편이 훨씬 μ’‹λ‹€.
  • μƒˆλ‘œμš΄ 클래슀둜 경계λ₯Ό κ°μ‹Έκ±°λ‚˜ ADAPTER νŒ¨ν„΄μ„ μ‚¬μš©ν•΄
    μš°λ¦¬κ°€ μ›ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό νŒ¨ν‚€μ§€κ°€ μ œκ³΅ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€λ‘œ λ³€ν™˜ν•˜μž.

 

λ°˜μ‘ν˜•