MapleStory Cookie With Halo

πŸ“œ CleanCode

[CleanCode]λ‹¨μœ„ ν…ŒμŠ€νŠΈ

뉴이 NUEY 2024. 10. 3. 16:52
λ°˜μ‘ν˜•
λ“€μ–΄κ°€κΈ° 전에

 ν΄λ¦°μ½”λ“œ μ €μžμ˜ 말에 λ”°λ₯΄λ©΄ 1997λ…„λ§Œ 해도 TDDTest Driven Development κ°œλ…μ„ 아무도 λͺ°λžλ‹€κ³  ν•œλ‹€.

λ‹Ήμ‹œλ§Œ 해도 λ‹¨μœ„ ν…ŒμŠ€νŠΈλž€ ν”„λ‘œκ·Έλž¨μ΄ 'λŒμ•„κ°„λ‹€'λŠ” 사싀을 증λͺ…ν•˜λŠ” μΌνšŒμ„± μ½”λ“œμ— λΆˆκ³Όν–ˆλ‹€.

 λ˜ν•œ 아직도 ν΄λ¦°μ½”λ“œ λΌλŠ” κ°œλ…μ€ ν˜„μž¬ λ– μ˜€λ₯΄λŠ” κ°œλ…μ΄λ©°, μ‹€μ œ μ—…λ¬΄μ—μ„œλŠ” μƒμ‚¬μ˜ μ§€μ‹œλŒ€λ‘œ κ°œλ°œμ„ μ§„ν–‰ν•˜λŠ” 것이 λ°”λžŒμ§ν•˜λ‹€.


κΉ¨λ—ν•œ ν…ŒμŠ€νŠΈ μ½”λ“œ

 

μ‹€μ œ μ½”λ“œκ°€ λ³€ν•˜λ©΄ ν…ŒμŠ€νŠΈ μ½”λ“œλ„ λ³€ν•΄μ•Ό ν•œλ‹€.
→ ν…ŒμŠ€νŠΈ μ½”λ“œκ°€ μ§€μ €λΆ„ν• μˆ˜λ‘ ν…ŒμŠ€νŠΈμ½”λ“œλ₯Ό μˆ˜μ •ν•˜λŠ”λ° 더 λ§Žμ€ μ‹œκ°„μ΄ 걸리고 μ‹€νŒ¨λ‘œ 뜰 ν™•λ₯ μ΄ 높아진닀.

 

ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” μ‹€μ œ μ½”λ“œ λͺ»μ§€ μ•Šκ²Œ μ€‘μš”ν•˜λ‹€.


ν…ŒμŠ€νŠΈλŠ” μœ μ—°μ„±, μœ μ§€λ³΄μˆ˜μ„±, μž¬μ‚¬μš©μ„±μ„ μ œκ³΅ν•œλ‹€.

 μ½”λ“œκ°€ λ³€κ²½λœ μƒν™©μ—μ„œ μš°λ¦¬λŠ” 클릭 ν•œλ²ˆμœΌλ‘œ λ³€κ²½λœ μ½”λ“œκ°€ μ„±κ³΅μ΄λΌλŠ” 것을 μ•Œμ•„μ•Ό ν•œλ‹€.

이것을 μ œκ³΅ν•˜λŠ” 것이 λ°”λ‘œ λ‹¨μœ„ ν…ŒμŠ€νŠΈμ΄λ‹€.

 μš°λ¦¬λŠ” ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€κ°€ 있으면 변경이 두렡지 μ•Šκ²Œ λœλ‹€.

μ‹€μ œ μ½”λ“œλ₯Ό μ κ²€ν•˜λŠ” μžλ™ν™”λœ λ‹¨μœ„ ν…ŒμŠ€νŠΈ μŠˆνŠΈλŠ” 섀계와 아킀텍쳐λ₯Ό κΉ¨λ—ν•˜κ²Œ λ³΄μ‘΄ν•˜λŠ” μ—΄μ‡ λ‹€.


이쀑 ν‘œμ€€
  • ν…ŒμŠ€νŠΈ API μ½”λ“œμ— μ μš©ν•˜λŠ” ν‘œμ€€μ€ μ‹€μ œ μ½”λ“œμ— μ μš©ν•˜λŠ” ν‘œμ€€κ³Ό λ‹€λ₯Έλ‹€.
  • κ°„κ²°ν•˜κ³ , ν‘œν˜„λ ₯이 풍뢀해야 ν•˜μ§€λ§Œ, μ‹€μ œ μ½”λ“œλ§ŒνΌ 효율적일 ν•„μš”λŠ” μ—†λ‹€.


ν…ŒμŠ€νŠΈ λ‹Ή assert ν•˜λ‚˜
  • assert 문이 ν•˜λ‚˜λ©΄ 결둠도 ν•˜λ‚˜μ΄κΈ°μ— μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κΈ° λΉ λ₯΄κ³  쉽닀.
  • ν•˜μ§€λ§Œ ν•„μš”μ‹œ assert문을 더 좔가해도 상관없닀.
  • λ˜λ„λ‘ μ΅œλŒ€ν•œ 쀄여야 μ’‹λ‹€λŠ” 것이닀.

F.I.R.S.T
  • Fast
    : ν…ŒμŠ€νŠΈλŠ” 빨리 λŒμ•„μ•Ό ν•œλ‹€. 느리면 ν…ŒμŠ€νŠΈλ₯Ό μžμ£Όν•  엄두λ₯Ό λͺ» λ‚Έλ‹€.
  • Independent
    : 각 ν…ŒμŠ€νŠΈλŠ” μ„œλ‘œ μ˜μ‘΄ν•˜λ©΄ μ•ˆλœλ‹€. ν•˜λ‚˜κ°€ μ‹€νŒ¨ν•˜λ©΄ λ‚˜λ¨Έμ§€λ„ μ‹€νŒ¨ν•˜λ―€λ‘œ.
  • Repeatable
    : μ–΄λ–€ ν™˜κ²½μ—μ„œλ„ 반볡 κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€.
    μ‹€μ œ ν™˜κ²½, QAν™˜κ²½, λ„€νŠΈμ›Œν¬κ°€ μ•ˆλ˜λŠ” ν™˜κ²½μ—μ„œλ„.
  • Self-Validating
    : ν…ŒμŠ€νŠΈ κ²°κ³ΌλŠ” True/False. 성곡 μ•„λ‹˜ μ‹€νŒ¨ν•˜λŠ” boolean 값이여야 ν•œλ‹€.
    κ²°κ³Όλ₯Ό ν™•μΈν•˜λ €κ³  파일 λ‘κ°œλ₯Ό μˆ˜μž‘μ—…μœΌλ‘œ λΉ„κ΅ν•˜κ²Œ λ§Œλ“€μ–΄μ„œλ„ μ•ˆλœλ‹€.
  • Timely
    : λ‹¨μœ„ ν…ŒμŠ€νŠΈλŠ” ν…ŒμŠ€νŠΈν•˜λ €λŠ” μ‹€μ œ μ½”λ“œλ₯Ό κ΅¬ν˜„ν•˜κΈ° 직전에 κ΅¬ν˜„ν•œλ‹€.
    μ½”λ“œλ₯Ό λ§Œλ“€κ³  ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό λ§Œλ“€λ©΄ μ‹€μ œ μ½”λ“œκ°€ ν…ŒμŠ€νŠΈν•˜κΈ° μ–΄λ ΅λ‹€λŠ” 사싀을 λ°œκ²¬ν•˜κ±°λ‚˜, ν…ŒμŠ€νŠΈκ°€ λΆˆκ°€λŠ₯ν•˜κ²Œ μ½”λ“œλ₯Ό 섀계할 수 도 μžˆλ‹€.

κ²°λ‘ 
 ν…ŒμŠ€νŠΈ APIλ₯Ό κ΅¬ν˜„ν•΄ 도메인 νŠΉν™” μ–Έμ–΄DSL을 λ§Œλ“€μž.

2024.10.03 - [πŸ“‘ 개발 사전/πŸ“– μš©μ–΄] - [ITμš©μ–΄]DSL:Domain Specific Language

그러면 그만큼 ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ§œκΈ°κ°€ μ‰¬μ›Œμ§„λ‹€.

 

 

λ°˜μ‘ν˜•

'πŸ“œ CleanCode' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[CleanCode]클래슀 2  (1) 2024.10.08
[CleanCode]클래슀 1  (0) 2024.10.08
[CleanCode]경계 2  (1) 2024.10.01
[CleanCode]경계 1  (1) 2024.10.01
[CleanCode]였λ₯˜μ²˜λ¦¬-정상 흐름을 μ •μ˜ν•˜λΌ  (0) 2024.09.28