🎱

08μž₯ - 경계 κ°„ λ§€ν•‘ν•˜κΈ°

 

맀핑에 μ°¬μ„±ν•˜λŠ” 개발자

  • κ³„μΈ΅μ˜ 결합을 λ§‰μž!!
 

맀핑에 λ°˜λŒ€ν•˜λŠ” 개발자

  • λ³΄μΌλŸ¬ν”Œλ ˆμ΄νŠΈ μ½”λ“œκ°€ λ„ˆλ¬΄ μ‹¬ν•˜λ‹€!
  • λ‚˜λ„ μ•Œμ•„ μ•ˆλ‹€κ³ ! 근데 딱봐도 CRUD 밖에 μ•ˆν•˜μž–μ•„μš”!
  • λ„ˆλ¬΄ κ³Όν•©λ‹ˆλ‹€!
 
정닡은 μ—†λ‹€. μ—¬λŸ¬ λ§€ν•‘ μ „λž΅μ„ μ•Œμ•„λ³΄μž
 

λ§€ν•‘ν•˜μ§€ μ•ŠκΈ° μ „λž΅

notion image
포트 μΈν„°νŽ˜μ΄μŠ€κ°€ 도메인 λͺ¨λΈμ„ μž…μΆœλ ₯ λͺ¨λΈλ‘œ μ‚¬μš©ν•œλ‹€.
 

μ–‘λ°©ν–₯ λ§€ν•‘ μ „λž΅

notion image
각 μ–΄λŒ‘ν„°(μ›Ή μ–΄λŒ‘ν„°(컨트둀러)), μ˜μ†μ„± μ–΄λŒ‘ν„°(리포지토리))κ°€ μ „μš© λͺ¨λΈμ„ κ°€μ§„λ‹€.
μ›Ή μ–΄λŒ‘ν„°λŠ” μ›Ή λͺ¨λΈ(컨트둀러 DTO)을 도메인 μ—”ν‹°ν‹° λͺ¨λΈλ‘œ μ˜μ†μ„± μ–΄λŒ‘ν„°λŠ” 도메인 μ—”ν‹°ν‹°λ₯Ό μ˜μ†μ„± λͺ¨λΈ(JpaEntity)둜 λ°”κΏ€ μ±…μž„μ„ κ°€μ§„λ‹€
 
 

μ™„μ „ λ§€ν•‘ μ „λž΅

notion image
각 μ–΄λŒ‘ν„°λŠ” λ¬Όλ‘  포트 κΉŒμ§€ μ „μš© λͺ¨λΈμ„ κ°€μ§„λ‹€.
이 λ§€ν•‘ μ „λž΅μ„ μ „μ—­ νŒ¨ν„΄μœΌλ‘œ μΆ”μ²œν•˜μ§€ μ•ŠλŠ”λ‹€. 이 μ „λž΅μ€ μ›Ή 계측과 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 사이 μƒνƒœ λ³€κ²½ μœ μŠ€μΌ€μ΄μŠ€μ˜ 경계λ₯Ό λͺ…ν™•ν•˜κ²Œ ν•  λ•Œ κ°€μž₯ λΉ›λ‚œλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό μ˜μ†μ„± 계측 μ‚¬μ΄μ—μ„œλŠ” λ§€ν•‘ μ˜€λ²„ ν—€λ“œ λ•Œλ¬Έμ— μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 μ’‹λ‹€. λ˜ν•œ μ–΄λ–€ κ²½μš°μ—λŠ” μ—°μ‚°μ˜ μž…λ ₯ λͺ¨λΈμ— λŒ€ν•΄μ„œλ§Œ 이 맀핑을 μ‚¬μš©ν•˜κ³ , 도메인 객체λ₯Ό κ·ΈλŒ€λ‘œ 좜λ ₯ λͺ¨λΈλ‘œ μ‚¬μš©ν•˜λŠ” 것도 μ’‹λ‹€.

단방ν–₯ λ§€ν•‘ μ „λž΅

notion image
 
μ—”ν‹°ν‹°μ˜ ν•„λ“œμ— λŒ€ν•œ getter λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•˜λŠ” AccountState μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ‘”λ‹€ μ„œλΉ„μŠ€λ₯Ό μ œμ™Έν•˜κ³  μ „μ—­μ μœΌλ‘œ ν™œμš©ν•œλ‹€. μ—”ν‹°ν‹° μžμ²΄λ„ AccountState μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œλ‹€!!
μž₯점 및 넀이밍 이유λ₯Ό μ†Œκ°œν•˜μ§€λ§Œ λ‹€λ₯Έ μ „λž΅λ³΄λ‹€ 쑰금 μ–΄λ ΅λ‹€.
 
도메인 λͺ¨λΈ μžμ²΄λŠ” Rich ν•˜κ²Œ κ°€μ Έκ°ˆ 수 μžˆλ‹€.
 

λ†€λΌμš΄ 사싀

  • μ–΄λ–€ λ§€ν•‘ μ „λž΅μ„ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”κ°€μ— λŒ€ν•œ λŒ€λ‹΅μ€ λ¬Όλ‘  κ·Έλ•Œ κ·Έλ•Œ λ‹€λ₯΄λ‹€.
  • ν•œ μ „λž΅μ„ 전체 μ½”λ“œμ— λŒ€ν•œ μ–΄λ–€ κ²½μš°μ—λ„ λ³€ν•˜μ§€ μ•ŠλŠ” μ „μ—­ κ·œμΉ™μœΌλ‘œ μ •μ˜ν•˜λ €λŠ” 좩동을 이겨내야 ν•œλ‹€.
    • μ–Έμ œ μ–΄λ–€ μ „λž΅μ„ μ‚¬μš©ν• μ§€ κ²°μ •ν•˜λ €λ©΄ νŒ€ λ‚΄μ—μ„œ ν•©μ˜ν•  수 μžˆλŠ” κ°€μ΄λ“œλΌμΈμ„ 정해둬야 ν•œλ‹€.
    • 예λ₯Ό λ“€μ–΄, λ³€κ²½ μœ μŠ€μΌ€μ΄μŠ€(μ»€λ§¨λ“œ)와 쿼리 μœ μŠ€μΌ€μ΄μŠ€μ—μ„œ μ„œλ‘œ λ‹€λ₯Έ λ§€ν•‘ κ°€μ΄λ“œλΌμΈμ„ λ‘˜ 수 μžˆλ‹€.
    • 또 컨트둀러 <-> μ„œλΉ„μŠ€ 계측 사이와 μ„œλΉ„μŠ€ <-> μ˜μ†μ„± 계측 사이 μ „λž΅μ„ λ‹€λ₯΄κ²Œ κ°€μ Έκ°ˆ μˆ˜λ„ μžˆλ‹€.
    • μˆ™μ†Œ 도메인과 νšŒμ› λ„λ©”μΈμ˜ μ „λž΅μ„ λ‹€λ₯΄κ²Œ κ°€μ Έκ°ˆ μˆ˜λ„ μžˆλ‹€.
    •