Skip to content

Commit 799014a

Browse files
author
κΉ€ν˜„μˆ˜
committed
μΆ”κ°€
1 parent 812d48c commit 799014a

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

β€Ž07.λ‹¨μœ„ν…ŒμŠ€νŠΈ/정리.md

+26-5
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
8989
9090
91-
**μ˜ˆμ‹œ #1 private λ©”μ„œλ“œλ₯Ό ν…ŒμŠ€νŠΈ ν•˜μ§€ 마라.**
91+
**μ˜ˆμ‹œ #1 private λ©”μ„œλ“œλ₯Ό ν…ŒμŠ€νŠΈ ν•˜μ§€ 마라.** (= μ—°μ‚°κ³Ό μƒνƒœλ₯Ό μ΅œμ†Œν•œ λ…ΈμΆœν•˜μž)
9292
9393
ν΄λΌμ΄μ–ΈνŠΈκ°€ **λͺ©ν‘œ**λ₯Ό λ‹¬μ„±ν•˜λŠ”λ° 직접 도움 λ˜λŠ” **κ²°κ³Ό(식별할 수 μžˆλŠ” λ™μž‘)만 public으둜 κ³΅κ°œν•΄μ•Όν•˜λ©° 이λ₯Ό ν…ŒμŠ€νŠΈ**ν•˜μž.
9494
@@ -100,12 +100,8 @@
100100
101101
102102
103-
104-
105103
**μ˜ˆμ‹œ #2 stub으둜 μƒν˜Έ μž‘μš©μ„ κ²€μ¦ν•˜μ§€ 마라. (주의 : mock μ•„λ‹˜)**
106104
107-
108-
109105
μŠ€ν…κ³Όμ˜ μƒν˜Έμž‘μš©μ„ κ²€μ¦ν•˜λŠ” 것은 μ·¨μ•½ν•œ ν…ŒμŠ€νŠΈλ₯Ό μ•ΌκΈ°ν•˜λŠ” μ•ˆν‹°νŒ¨ν„΄μ΄λ‹€**.**
110106
111107
μŠ€ν…μœΌλ‘œμ˜ ν˜ΈμΆœμ€ μ΅œμ’… κ²°κ³Όλ₯Ό μ‚°μΆœν•˜κΈ° μœ„ν•œ μˆ˜λ‹¨μΌ 뿐이닀.
@@ -126,9 +122,30 @@ Assert.Equal(10, report.NumberOfUsers);// μŠ€ν…μœΌλ‘œ μƒν˜Έμž‘μš© 검증
126122
sut.Verify(x => x.GetNumberOfUsers(),Times.Once);}
127123
```
128124
125+
**μ˜ˆμ‹œ #3 μ‹œμŠ€ν…œ λ‚΄ ν΄λž˜μŠ€κ°„μ˜ 톡신을 κ²€μ¦ν•˜λŠ”λ° λͺ©μ„ μ‚¬μš©ν•˜λ©΄ κ΅¬ν˜„ 세뢀사항과 κ²°ν•©λ˜λ©° λ¦¬νŒ©ν„°λ§ 내성이 미흑해진닀.**
126+
127+
- μ‹œμŠ€ν…œ λ‚΄λΆ€ 톡신 : μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ‚΄ 클래슀 κ°„μ˜ 톡신이닀.
128+
- κ΅¬ν˜„ 세뢀사항이닀.
129+
- λ‚΄λΆ€ 톡신 (λ‚΄λΆ€ 클래슀 κ°„μ˜ ν˜‘λ ₯)κ³Ό κ²°ν•©ν•˜λ©΄ ν…ŒμŠ€νŠΈκ°€ 취약해진닀.
130+
- μ‹œμŠ€ν…œ κ°„ 톡신 : μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό ν†΅μ‹ ν•˜λŠ” 것을 λ§ν•œλ‹€.
131+
- κ΅¬ν˜„ 세뢀사항이 μ•„λ‹ˆλ‹€.
132+
- μ‹œμŠ€ν…œκ³Ό 톡신은 방식은 μ „μ²΄μ μœΌλ‘œ ν•΄λ‹Ή μ‹œμŠ€ν…œμ„ 식별할 수 μžˆλŠ” λ™μž‘μ„ λ‚˜νƒ€λ‚Έλ‹€.
129133
130134
131135
136+
**μ˜ˆμ‹œ #4 λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€ μ™ΈλΆ€ μ˜μ‘΄μ„±μ„ λͺ©μœΌλ‘œ λŒ€μ²΄ ν•΄μ•Όν•˜λŠ” 것은 μ•„λ‹ˆλ‹€**
137+
138+
- **λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€ μ™ΈλΆ€ μ˜μ‘΄μ„±μ„ λͺ©μœΌλ‘œ ν•΄μ•Όν•˜λŠ” 것은 μ•„λ‹ˆλ‹€**.
139+
- ν”„λ‘œμ„ΈμŠ€ μ™ΈλΆ€ μ˜μ‘΄μ„±κ³Ό 톡신은 **μ™ΈλΆ€μ—μ„œ κ΄€μ°°ν•  수 μ—†μœΌλ©΄ κ΅¬ν˜„ 세뢀사항** 이닀. 즉 ν”„λ‘œμ„ΈμŠ€ μ™ΈλΆ€ μ˜μ‘΄μ„±μ΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ν†΅ν•΄μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€λ©΄, μ΄λŸ¬ν•œ μ˜μ‘΄μ„±κ³Ό 톡신은 μ‹œμŠ€ν…œμ—μ„œ 식별할 수 μžˆλŠ” λ™μž‘μ΄ μ•„λ‹ˆλ‹€. λ¦¬νŒ©ν„°λ§ 후에 κ·ΈλŒ€λ‘œ μœ μ§€ν•  ν•„μš”κ°€ μ—†μœΌλ―€λ‘œ λͺ©μœΌλ‘œ κ²€μ¦ν•΄μ„œλŠ” μ•ˆλœλ‹€.
140+
- **μ™„μ „νžˆ ν†΅μ œκΆŒμ„ 가진 ν”„λ‘œμ„ΈμŠ€ μ™ΈλΆ€ μ˜μ‘΄μ„±μ— λͺ©μ„ μ‚¬μš©ν•˜λ©΄ 깨지기 μ‰¬μš΄ ν…ŒμŠ€νŠΈ**둜 이어진닀.
141+
142+
> - 곡유 μ˜μ‘΄μ„±μ΄ ν”„λ‘œμ„ΈμŠ€ 내뢀에 있으면 각 ν…ŒμŠ€νŠΈ μ‹€ν–‰ μ‹œ ν•΄λ‹Ή μ˜μ‘΄μ„±μ„ μƒˆ μΈμŠ€ν„΄μŠ€λ‘œ μ¨μ„œ μž¬μ‚¬μš© ν”Όν•˜κΈ° 쉬움
143+
> - 곡유 μ˜μ‘΄μ„±μ΄ ν”„λ‘œμ„ΈμŠ€ 외뢀에 있으면 각 ν…ŒμŠ€νŠΈ μ‹€ν–‰μ „ dbλ₯Ό μΈμŠ€ν„΄μŠ€ν™”ν•˜κ±°λ‚˜ λ©”μ‹œμ§€λ²„μŠ€λ₯Ό μƒˆλ‘œ μ€€λΉ„ν•  수 μ—†λ‹€. (μ΄λ ‡κ²Œν•˜λ©΄ λ„ˆλ¬΄ 느렀짐) -> 일반적인 접근은 ν…ŒμŠ€νŠΈ λŒ€μ—­, 즉 λͺ©κ³Ό μŠ€ν…μœΌλ‘œ κ΅μ²΄ν•œλ‹€.
144+
145+
> - λͺ©μ„ μ‚¬μš©ν•œ λ™μž‘ 검증
146+
> - μ’…μ’… λͺ©μ΄ λ™μž‘μ„ κ²€μ¦ν•œλ‹€κ³  ν•œλ‹€. ν•˜μ§€λ§Œ λŒ€λΆ€λΆ„ 그렇지 μ•Šλ‹€.
147+
> - λͺ©ν‘œλ₯Ό λ‹¬μ„±ν•˜κ³ μž 각 κ°œλ³„ ν΄λž˜μŠ€κ°€ 이웃 ν΄λž˜μŠ€μ™€ μ†Œν†΅ν•˜λŠ” 방식은 식별할 수 μžˆλŠ” λ™μž‘κ³ΌλŠ” μ•„λ¬΄λŸ° 관계가 μ—†λ‹€. (μ΄λŠ” κ΅¬ν˜„ 세뢀사항이닀.)
148+
> - **λͺ©μ€ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 경계λ₯Ό λ„˜λ‚˜λ“œλŠ” μƒν˜Έμž‘μš©μ„ 검증할 λ•Œμ™€ μ΄λŸ¬ν•œ μƒν˜Έμž‘μš©μ˜ μ‚¬μ΄λ“œ μ΄νŽ™νŠΈκ°€ μ™ΈλΆ€ ν™˜κ²½μ—μ„œ 보일 λ•Œλ§Œ λ™μž‘κ³Ό κ΄€λ ¨**이 μžˆλ‹€.
132149
133150
## **λ‘λ²ˆμ§Έ, ν—˜λΈ” 객체 νŒ¨ν„΄ μ‚¬μš© (= ν…ŒμŠ€νŠΈν•˜κΈ° μ–΄λ €μš΄ μ½”λ“œμ™€ μ‰¬μš΄ μ½”λ“œ 뢄리)**
134151
@@ -273,11 +290,15 @@ export class OrderService {
273290
### **ν•˜μ§€λ§Œ ν˜„μ‹€μ μœΌλ‘œ 객체지ν–₯μ—μ„œ λͺ¨λ“ κ±Έ 순수 ν•¨μˆ˜λ‘œ λ§Œλ“€ 수 μ—†λ‹€.**
274291
275292
- λͺ¨λ“  μ½”λ“œλ² μ΄μŠ€λ₯Ό ν•¨μˆ˜ν˜• μ•„ν‚€ν…μ²˜λ‘œ μ „ν™˜ν•  수 μ—†λ‹€. μ‹œμŠ€ν…œμ˜ **λ³΅μž‘λ„μ™€ μ€‘μš”μ„±μ„ κ³ λ €ν•΄μ„œ μ „λž΅μ μœΌλ‘œ 적용**
293+
- ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ˜ λͺ©ν‘œλŠ” μ‚¬μ΄λ“œ μ΄νŽ™νŠΈλ₯Ό μ™„μ „νžˆ μ œκ±°ν•˜λŠ” 것이 μ•„λ‹ˆλΌ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ²˜λ¦¬ν•˜λŠ” μ½”λ“œμ™€ μ‚¬μ΄λ“œ μ΄νŽ™νŠΈλ₯Ό μΌμœΌν‚€λŠ” μ½”λ“œλ₯Ό λΆ„λ¦¬ν•˜λŠ”κ²ƒμ΄λ‹€.
276294
277295
278296
279297
> - μ—¬κΈ°μ„œλŠ” μˆœμˆ˜ν•¨μˆ˜λ‘œλ§Œλ“œλŠ” ν•¨μˆ˜ν˜• μ•„ν‚€ν…μ²˜λ₯Ό μ˜ˆμ‹œλ‘œ λ“€μ—ˆμ§€λ§Œ
298+
> - μœ‘κ°ν˜• μ•„ν‚€ν…μ²˜λŠ” 도메인 κ³„μΈ΅μœΌλ‘œ μΈν•œ μ‚¬μ΄λ“œ μ΄νŽ™νŠΈλ„ λ¬Έμ œμ—†λ‹€.
280299
> - μˆœμˆ˜ν•¨μˆ˜λ‘œ λͺ»λ§Œλ“œλŠ”κ²½μš°λ„ ν—˜λΈ” 객체 νŒ¨ν„΄μ„ μ΄μš©ν•˜λ©΄ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 μ™ΈλΆ€ μ˜μ‘΄μ„±κ³Όμ˜ 톡신을 λΆ„λ¦¬ν•˜κ²Œ ν•¨μœΌλ‘œμ¨ ν˜‘λ ₯자 μˆ˜κ°€ 쀄고 도메인 μœ μ˜μ„±μ΄ λ†’μ•„μ Έμ„œ ν…ŒμŠ€νŠΈν•˜κΈ°κ°€ μ‰¬μ›Œμ§„λ‹€. (ν—₯사고날 μ•„ν‚€ν…μ²˜)
300+
> - ν•˜μ§€λ§Œ μƒνƒœκΈ°λ°˜ ν…ŒμŠ€νŠΈλŠ” 거짓 양성이 되기 쉽닀. ν™•λ₯ μ μœΌλ‘œ ν…ŒμŠ€νŠΈμ™€ μ œν’ˆ μ½”λ“œκ°„μ˜ 결합도가 클수둝 μœ μΆœλ˜λŠ” κ΅¬ν˜„ 세뢀사항에 ν…ŒμŠ€νŠΈκ°€ 얽맀일 κ°€λŠ₯성이 λ†’μŒ
301+
>
281302
>
282303
> <img src="https://raw.githubusercontent.com/hscom96/ImageStore/main/images/2023/06/17/image-20230617214941673.png" alt="image-20230617214941673" style="width:50%;" />
283304

0 commit comments

Comments
Β (0)