πŸ“œ CleanCode

[CleanCode]μ‹œμŠ€ν…œ 2

뉴이 NUEY 2024. 10. 10. 18:33
λ°˜μ‘ν˜•

 

ν™•μž₯
: 관심사λ₯Ό 적절히 뢄리해 관리 ν•œλ‹€λ©΄
μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜λŠ” μ μ§„μ μœΌλ‘œ λ°œμ „ν•  수 μžˆλ‹€.
  • μ²˜μŒλΆ€ν„° μ‹œμŠ€ν…œμ— λ§žλŠ” 규λͺ¨μ˜ μ„€κ³„λŠ” λΆˆκ°€λŠ₯ν•˜λ‹€.
  • 였늘 주어진 μ‚¬μš©μžμ˜ μš”κ΅¬μ‚¬ν•­μ— 맞좰 μ‹œμŠ€ν…œμ„ κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€.
    → 이것이 반볡/점진적인 μ• μžμΌ λ°©μ‹μ˜ 핡심이닀.
  • ν…ŒμŠ€νŠΈ 주도 개발 TDD, λ¦¬νŒ©ν„°λ§μœΌλ‘œ λ§Œλ“€μ–΄μ§„ κΉ¨λ—ν•œ μ½”λ“œμ—μ„  μ‹œμŠ€ν…œμ„ ν™•μž₯ν•˜κΈ° 쉽닀.
μ±…μ—μ„œλŠ” 관심사λ₯Ό 잘 λΆ„λ¦¬ν•˜μ§€ λͺ»ν•œ μ‚¬λ‘€λ‘œ
EJB 1, 2 ν”„λ ˆμž„μ›Œν¬λ₯Ό μ˜ˆμ‹œλ₯Ό λ“€κ³ μžˆλ‹€.

 


νš‘λ‹¨cross-cutting 관심사
: 핡심 κΈ°λŠ₯을 κ°€λ‘œμ§€λ₯΄λŠ” κΈ°λŠ₯.
  • 관점 지ν–₯ ν”„λ‘œκ·Έλž˜λ°(AOP, Aspect-Oriented Programing)λŠ” νš‘λ‹¨ 관심사에 λŒ€μ²˜ν•΄ λͺ¨λ“ˆμ„±μ„ ν™•λ³΄ν•˜λŠ” 일반적인 방법둠이닀.
  • AOPμ—₯μ„œ 관점aspectμ—μ„œ λͺ¨λ“ˆ ꡬ성 κ°œλ…
    → "νŠΉμ • 관심사λ₯Ό μ§€μ›ν•˜λ €λ©΄ μ‹œμŠ€ν…œμ—μ„œ νŠΉμ • 지점듀이 λ™μž‘ν•˜λŠ” 방식을 일관성 있게 λ°”κΏ”μ•Ό ν•œλ‹€."
  • λͺ…μ‹œλŠ” κ°„κ²°ν•œ μ„ μ–Έμ΄λ‚˜ ν”„λ‘œκ·Έλž˜λ° λ§€μ»€λ‹ˆμ¦˜μœΌλ‘œ μˆ˜ν–‰ν•œλ‹€.
  • μžλ°”μ—μ„œ μ‚¬μš©ν•˜λŠ” μœ μ‚¬ν•œ λ§€μ»€λ‹ˆμ¦˜μœΌλ‘œ μžλ°” ν”„λ‘μ‹œ, 순수 μžλ°” AOP ν”„λ ˆμž„μ›Œν¬AspectJ κ°€ μžˆλ‹€.

μ΅œμ„ μ˜ μ‹œμŠ€ν…œ κ΅¬μ‘°λŠ”
각기 POJO Plain Old Java Object 객체둜 κ΅¬ν˜„λ˜λŠ” λͺ¨λ“ˆν™”λœ 관심사 μ˜μ—­(도메인)으둜 κ΅¬μ„±λœλ‹€.
μ„œλ‘œ λ‹€λ₯Έ μ˜μ—­μ—μ„œ ν•΄λ‹Ή μ˜μ—­ μ½”λ“œμ— μ΅œμ†Œν•œμ˜ 영ν–₯을 λ―ΈμΉ˜λŠ” κ΄€μ μ΄λ‚˜ 도ꡬλ₯Ό μ‚¬μš©ν•΄ ν†΅ν•©ν•œλ‹€.

DSL을 μ‚¬μš©ν•˜λΌ

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

  • DSL을 μ‚¬μš©ν•˜λ©΄ κ³ μ°¨μ›μ—μ„œ 저차원 세뢀사항에 이λ₯΄λŠ” λͺ¨λ“  좔상화 μˆ˜μ€€κ³Ό λͺ¨λ“  도메인을 POJO둜 ν‘œν˜„ν•  수 μžˆλ‹€.

κ²°λ‘ 
 λͺ¨λ“ˆμ„ λ§Œλ“€λ“ , μ‹œμŠ€ν…œμ„ λ§Œλ“€λ“  μ‹€μ œλ‘œ λŒμ•„κ°€λŠ” κ°€μž₯ λ‹¨μˆœν•œ μˆ˜λ‹¨μ„ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€λŠ” 것이닀.
μžλ°”μ—μ„œ Spring Frameworkμ—μ„œ AspectJλ₯Ό μ§€μ›ν•˜λ―€λ‘œ 이λ₯Ό ν•¨κ»˜ μ‚¬μš©ν•˜κ³ , DSL을 μ κ·Ήμ‚¬μš©ν•˜κΈΈ μΆ”μ²œν•œλ‹€.

 

λ°˜μ‘ν˜•

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

[CleanCode]μ‹œμŠ€ν…œ 1  (0) 2024.10.10
[CleanCode]클래슀 2  (1) 2024.10.08
[CleanCode]클래슀 1  (0) 2024.10.08
[CleanCode]λ‹¨μœ„ ν…ŒμŠ€νŠΈ  (2) 2024.10.03
[CleanCode]경계 2  (1) 2024.10.01