Skip to content

Commit

Permalink
Part 1/chapter 1 (#4)
Browse files Browse the repository at this point in the history
* change for gitignore

* part-1/chapter-1
  • Loading branch information
currenjin authored Aug 24, 2021
1 parent b5c9504 commit b45f2e1
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 1 deletion.
26 changes: 26 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,28 @@
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
nbproject/private/
build/
nbbuild/
dist/
nbdist/
.nb-gradle/

### ETC ###
.DS_Store
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,12 @@
# TDD
Test-Driven Development

## ์ฃผ๊ธฐ
1. ์ž‘์€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•œ๋‹ค.
2. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ด์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•œ๋‹ค.
3. ์กฐ๊ธˆ ์ˆ˜์ •ํ•œ๋‹ค.
4. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ด์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ์„ฑ๊ณตํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•œ๋‹ค.
5. ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌํŒฉํ† ๋ง์„ ํ•œ๋‹ค.

## ETC
- [์˜์กด์„ฑ๊ณผ ์ค‘๋ณต](./etc/dependency_and_duplication.md)
15 changes: 15 additions & 0 deletions etc/dependency_and_duplication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# ์˜์กด์„ฑ๊ณผ ์ค‘๋ณต

์Šคํ‹ฐ๋ธŒ ํ”„๋ฆฌ๋งŒ(Steve Freeman)์€ ํ…Œ์ŠคํŠธ์™€ ์ฝ”๋“œ ๊ฐ„์˜ ๋ฌธ์ œ๋Š” ์ค‘๋ณต์ด ์•„๋‹˜์„ ์ง€์ ํ•œ ๋ฐ” ์žˆ๋‹ค(์ค‘๋ณต์— ๋Œ€ํ•ด์„œ๋Š” ์•„์ง ์ด์•ผ๊ธฐํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ์ด ์—ฌ๋‹ด์ด ๋๋‚˜๋Š” ๋Œ€๋กœ ์–ธ๊ธ‰ํ•  ์ƒ๊ฐ์ด๋‹ค). ๋ฌธ์ œ๋Š” ํ…Œ์ŠคํŠธ์™€ ์ฝ”๋“œ ์‚ฌ์ด์— ์กด์žฌํ•˜๋Š” ์˜์กด์„ฑ์ด๋‹ค. ์ฆ‰ ์ฝ”๋“œ๋‚˜ ํ…Œ์ŠคํŠธ ์ค‘ ํ•œ์ชฝ์„ ์ˆ˜์ •ํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ ๋‹ค๋ฅธ ํ•œ์ชฝ๋„ ์ˆ˜์ •ํ•ด์•ผ๋งŒ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋ญ”๊ฐ€ ์˜๋ฏธ ์žˆ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜ ๋” ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ํ˜„์žฌ์˜ ๊ตฌํ˜„์œผ๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.<br/>

### ์˜์กด์„ฑ(Dependency)

์˜์กด์„ฑ์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ๋ชจ๋“  ๋ถ€๋ถ„์—์„œ ํ•ต์‹ฌ์ ์ธ ๋ฌธ์ œ๋‹ค. ๋งŒ์•ฝ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒค๋”๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„ธ์„ธํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ฝ”๋“œ ์—ฌ๊ธฐ์ €๊ธฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฅธ ๋ฒค๋”์˜ ์ œํ’ˆ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ์ฝ”๋“œ๊ฐ€ ํ•ด๋‹น ๋ฒค๋”์— ๋Œ€ํ•ด ์˜์กด์„ฑ์„ ๊ฐ–๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋Š” ๋ฒค๋”๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค.

### ์ค‘๋ณต(Duplication)

์˜์กด์„ฑ์ด ๋ฌธ์ œ ๊ทธ ์ž์ฒด๋ผ๋ฉด ์ค‘๋ณต์€ ๋ฌธ์ œ์˜ ์ง•ํ›„๋‹ค. ์ค‘๋ณต์˜ ๊ฐ€์žฅ ํ”ํ•œ ์˜ˆ๋Š” ๋กœ์ง์˜ ์ค‘๋ณต์ด๋‹ค. ์ค‘๋ณต๋œ ๋กœ์ง์ด๋ž€ ๋™์ผํ•œ ๋ฌธ์žฅ์ด ์ฝ”๋“œ์˜ ์—ฌ๋Ÿฌ ์žฅ์†Œ์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ค‘๋ณต๋œ ๋กœ์ง์„ ํ•˜๋‚˜๋กœ ๋„์ง‘์–ด๋‚ด๋Š” ์ผ์—” ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ์ตœ๊ณ ๋‹ค.

### ...

๋ฌธ์ œ ์ž์ฒด๋Š” ๋‚จ๊ฒจ๋‘” ์ฑ„๋กœ ์ง•ํ›„๋งŒ์„ ์ œ๊ฑฐํ•˜๋ฉด ๋‹ค๋ฅธ ์–ด๋”˜๊ฐ€์—์„œ ์ตœ์•…์˜ ํ˜•ํƒœ๋กœ ๋ฌธ์ œ๊ฐ€ ๋“œ๋Ÿฌ๋‚˜๊ณค ํ•˜๋Š” ํ˜„์‹ค ์„ธ๊ณ„์˜ ์ผ๋ฐ˜์ ์ธ ์–‘์ƒ๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ์ค‘๋ณต๋งŒ ์ œ๊ฑฐํ•ด ์ฃผ๋ฉด ์˜์กด์„ฑ๋„ ์ œ๊ฑฐ๋œ๋‹ค. ์ด๊ฒŒ ๋ฐ”๋กœ TDD์˜ ๋‘ ๋ฒˆ์งธ ๊ทœ์น™์ด ์กด์žฌํ•˜๋Š” ์ด์œ ๋‹ค. ๋‹ค์Œ ํ…Œ์ŠคํŠธ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ์ค‘๋ณต์„ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ, ์˜ค์ง ํ•œ ๊ฐ€์ง€(one and only one)์˜ ์ฝ”๋“œ ์ˆ˜์ •์„ ํ†ตํ•ด ๋‹ค์Œ ํ…Œ์ŠคํŠธ๋„ ํ†ต๊ณผ๋˜๊ฒŒ ๋งŒ๋“ค ๊ฐ€๋Šฅ์„ฑ์„ ์ตœ๋Œ€ํ™”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.tdd.test.money;

public class Dollar {

public int amount;

public Dollar(int amount) {
this.amount = amount;
}

public void times(int multipler) {
amount *= multipler;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.tdd.test.money;

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class MoneyTests {

@Test
public void testMultiplication() {
Dollar five = new Dollar(5);
five.times(2);
assertEquals(10, five.amount);
}
}
5 changes: 4 additions & 1 deletion test_driven_development_by_example/todo.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,10 @@
|CHF|USD|1.5|
```
$5 + 10CHF = $10(ํ™˜์œจ์ด 2:1์ผ ๊ฒฝ์šฐ)
$5 x 2 = $10
~~$5 x 2 = $10~~
amount๋ฅผ private์œผ๋กœ ๋งŒ๋“ค๊ธฐ
Dollar ๋ถ€์ž‘์šฉ(side effect)?
Money ๋ฐ˜์˜ฌ๋ฆผ?
```

- [ ] ํ†ตํ™”๊ฐ€ ๋‹ค๋ฅธ ๋‘ ๊ธˆ์•ก์„ ๋”ํ•ด์„œ ์ฃผ์–ด์ง„ ํ™˜์œจ์— ๋งž๊ฒŒ ๋ณ€ํ•œ ๊ธˆ์•ก์„ ๊ฒฐ๊ณผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
Expand Down

0 comments on commit b45f2e1

Please sign in to comment.