[Clean Architecture] Clean Coder Blog

1. κ΄€μ‹¬μ‚¬μ˜ 뢄리

  • Hexagonal Architecture, Onion Architecture λ“± μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜μ— κ΄€ν•œ 아이디어듀은 λͺ¨λ‘ β€œκ΄€μ‹¬μ‚¬μ˜ λΆ„λ¦¬β€λΌλŠ” λ™μΌν•œ λͺ©ν‘œλ₯Ό 가짐

    • μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ³„μΈ΅μœΌλ‘œ λ‚˜λˆ„μ–΄μ„œ λͺ©ν‘œλ₯Ό 달성 β†’ λΉ„μ¦ˆλ‹ˆμŠ€μš© λ ˆμ΄μ–΄ + μΈν„°νŽ˜μ΄μŠ€μš© λ ˆμ΄μ–΄

    • ν”„λ ˆμž„μ›Œν¬, UI, λ°μ΄ν„°λ² μ΄μŠ€, μ™ΈλΆ€ κΈ°κ΄€κ³Ό 무관

      • Oracle DBλ₯Ό Mongo둜 μ‰½κ²Œ ꡐ체할 수 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 말

    • λΉ„μ¦ˆλ‹ˆμŠ€ κ·œμΉ™μ„ λ…λ¦½μ μœΌλ‘œ ν…ŒμŠ€νŠΈν•  수 있음

      • UI, λ°μ΄ν„°λ² μ΄μŠ€ 등이 없어도 ν…ŒμŠ€νŠΈν•  수 μžˆμ–΄μ•Ό 함

2. 쒅속성 κ·œμΉ™

  • 클린 μ•„ν‚€ν…μ²˜κ°€ μž‘λ™ν•˜λŠ” μš°μ„  κ·œμΉ™μ€ β€œμ’…μ†μ„± κ·œμΉ™β€

    • λ‚΄λΆ€ μ„œν΄μ˜ μ–΄λ–€ 것도 μ™ΈλΆ€ μ„œν΄μ˜ 무언가에 λŒ€ν•΄ μ „ν˜€ μ•Œ 수 μ—†μŒ.

      • λ°”κΉ₯μͺ½ 원에 μ„ μ–Έλœ ν•¨μˆ˜,클래슀,λ³€μˆ˜ 등은 μ•ˆμͺ½ μ›μ˜ μ½”λ“œμ—μ„œ μ–ΈκΈ‰λ˜μ–΄μ„œλŠ” μ•ˆλ¨

  • λ„€ κ°€μ§€ 계측을 μ œμ‹œ

    • Entitiy

      • Enterprise wide business rules

      • 일반적이고 κ°€μž₯ 높은 μˆ˜μ€€μ˜ κ·œμΉ™

    • Use case

      • application specific business rules

      • μ‘μš©ν”„λ‘œκ·Έλž¨λ³„ λΉ„μ¦ˆλ‹ˆμŠ€ κ·œμΉ™μ„ μΊ‘μŠν™”ν•˜κ³  κ΅¬ν˜„

    • Apdapter

      • μ™ΈλΆ€ ν˜•μ‹μ˜ 데이터λ₯Ό Use case 및 μ—”ν„°ν‹°μ—μ„œ μ‚¬μš©ν•˜λŠ” λ‚΄λΆ€ μš”μ†Œλ‘œ λ³€ν™˜

      • Framewor and driver

      • λ°μ΄ν„°λ² μ΄μŠ€, μ›Ή ν”„λ ˆμž„μ›Œν¬ λ“± ν”„λ ˆμž„μ›Œν¬μ™€ 도ꡬ

  • κΌ­ 4개의 μ›λ§Œ μ‚¬μš©ν•˜μ§„ μ•Šμ•„λ„ λ˜μ§€λ§Œ, 쒅속성 κ·œμΉ™μ„ 항상 μ μš©ν•΄μ•Όν•¨.

  • 데이터가 경계λ₯Ό λ„˜λŠ” κ²½μš°λŠ”, λ‚΄λΆ€ 원에 κ°€μž₯ νŽΈν•œ ν˜•μ‹(most convenient for the inner circle)으둜.

    • Entitiesλ₯Ό λ„˜κΈ°κ±°λ‚˜, Database rowλ₯Ό λ„˜κΈ°λ©΄ μ•ˆλœλ‹€.

    • isolated, simple, data structures λ₯Ό λ„˜κ²¨μ•Ό 함

3. κ²°λ‘ 

  • μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ³„μΈ΅μœΌλ‘œ λΆ„λ¦¬ν•˜κ³ 

  • 쒅속성 κ·œμΉ™μ„ μ€€μˆ˜ν•˜μ—¬

  • ν…ŒμŠ€νŠΈ κ°€λŠ₯ν•œ μ‹œμŠ€ν…œμ„ λ§Œλ“€μž

Last updated