Skip to content

[πŸ› οΈ REFACTOR] DDD μ•„ν‚€ν…μ²˜λ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ§„ν–‰Β #73

@polyglot-k

Description

@polyglot-k

πŸ› οΈ λ¦¬νŒ©ν† λ§ λŒ€μƒ

λΆ€λΆ„ DDD ꡬ쑰λ₯Ό μ™„μ „ DDD ꡬ쑰둜 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ§„ν–‰

πŸš€ λ¦¬νŒ©ν† λ§ λͺ©μ 

Third-Party λ‚˜ 기타 라이브러리의 μ˜μ‘΄μ„±μ„ μ΅œμ†Œν™”ν•˜κ³ , 도메인에 λŒ€ν•œ μ±…μž„ μ€‘μ‹¬μœΌλ‘œ service λ ˆμ΄μ–΄λ₯Ό κ°„μ†Œν™” ν•˜κΈ° μœ„ν•΄μ„œ

πŸ”„ λ¦¬νŒ©ν† λ§ μ„ΈλΆ€ 사항

β”œβ”€β”€ domain 1
β”‚   β”œβ”€β”€ application
β”‚   β”œβ”€β”€ domain
β”‚   β”œβ”€β”€ infrastructure
β”‚   └── presentation
β”œβ”€β”€ domain 2
β”‚   β”œβ”€β”€ application
β”‚   β”œβ”€β”€ domain
β”‚   β”œβ”€β”€ infrastructure
β”‚   └── presentation
β”œβ”€β”€ common
β”‚   β”œβ”€β”€ config
β”‚   β”œβ”€β”€ exception
β”‚   └── util
계측 μ—­ν•  및 μ±…μž„
Domain - λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ ν¬ν•¨ν•˜λŠ” 핡심 계측. - 도메인 λͺ¨λΈ(Entity, Value Object, Aggregate λ“±)을 μ •μ˜ν•˜κ³ , λΉ„μ¦ˆλ‹ˆμŠ€ κ·œμΉ™μ„ 적용. - μ‹œμŠ€ν…œμ˜ 핡심 κΈ°λŠ₯을 κ΅¬ν˜„.
Application - λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ‘°μ •ν•˜κ³  μ—¬λŸ¬ μ„œλΉ„μŠ€ κ°„μ˜ ν˜‘μ—…μ„ 관리. - Use Caseλ₯Ό μˆ˜ν–‰ν•˜λŠ” μ„œλΉ„μŠ€λ‘œ, νŠΈλžœμž­μ…˜ 관리, 이벀트 λ°œμƒ, μ™ΈλΆ€ API 호좜 등을 처리. - 도메인 κ³„μΈ΅μ˜ 객체듀을 μ‘°μž‘.
Infrastructure - μ €μž₯μ†Œλ‚˜ μ™ΈλΆ€ μ‹œμŠ€ν…œκ³Όμ˜ 톡합을 처리. - μ˜μ†μ„±(예: λ°μ΄ν„°λ² μ΄μŠ€)κ³Ό μ™ΈλΆ€ μ„œλΉ„μŠ€(예: 이메일, λ©”μ‹œμ§• μ‹œμŠ€ν…œ)에 λŒ€ν•œ κ΅¬ν˜„μ„ λ‹΄λ‹Ή. - 리포지토리, λ©”μ‹œμ§• 큐, API ν΄λΌμ΄μ–ΈνŠΈ λ“± 포함.
Presentation - μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©ν•˜λŠ” 계측. - UI, Controller, REST APIλ₯Ό 처리. - μ‚¬μš©μžμ˜ μž…λ ₯을 λ°›μ•„μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측과 도메인 계측에 전달. - κ²°κ³Όλ₯Ό μ‚¬μš©μžμ—κ²Œ λ°˜ν™˜.

πŸ“ μΆ”κ°€ 사항

layer 기반 ddd 와 도메인 기반 ddd κ°€ μžˆλŠ”λ° ν•΄λ‹Ή 뢀뢄은 도메인 λͺ¨λ“ˆ λ‹¨μœ„λ‘œ κ΅¬μ„±ν•˜μ—¬ μͺΌκ°œμ–΄ κ΅¬μ„±ν–ˆλ‹€.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

μ™„λ£Œ

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions