[๐ ์ฌ์ดํด2 - ๋ฏธ์ (๋ธ๋์ญ ๋ฒ ํ )] ์๋ํค ๋ฏธ์ ์ ์ถํฉ๋๋ค.#1108
[๐ ์ฌ์ดํด2 - ๋ฏธ์
(๋ธ๋์ญ ๋ฒ ํ
)] ์๋ํค ๋ฏธ์
์ ์ถํฉ๋๋ค.#1108kcnsmoothie wants to merge 65 commits intowoowacourse:kcnsmoothiefrom
Conversation
feat: ๋ธ๋์ญ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ
Hyunta
left a comment
There was a problem hiding this comment.
์๋
ํ์ธ์ ์๋ํค,
2๋จ๊ณ ๋ฏธ์
๋ ์ ์งํํด์ฃผ์
จ๋ค์.
๋ช๊ฐ์ง ์ปค๋ฉํธ ๋จ๊ฒผ์ผ๋ ํ์ธํด๋ณด์๊ณ ๋ค์ ์์ฒญ์ฃผ์ธ์.
์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด ์์ผ์๋ฉด ์ปค๋ฉํธ๋ DM์ผ๋ก ์๋ ค์ฃผ์ธ์.
src/main/java/view/OutputView.java
Outdated
| private void printDealerResult(Participant dealer, Map<Player, Result> results) { | ||
| int dealerWin = countResult(results, Result.LOSE); | ||
| int dealerLose = countResult(results, Result.WIN); | ||
| System.out.println(dealer.getName() + ": " + dealerWin + "์น " + dealerLose + "ํจ"); | ||
| } |
There was a problem hiding this comment.
Dealer์ ์น์๋ฅผ ์ธ๋๋ฐ Player์ Lose ๋ฅผ ํตํด์ ์ญ์ผ๋ก ๊ณ์ฐํ๊ณ ์์ต๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋ฉ์๋ ์ด๋ฆ์ ํตํด์ ๊ฐ๋
์ฑ์ ๊ฐ์ ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
There was a problem hiding this comment.
์น์ ๊ณ์ฐ ์ฑ ์์ ๊ฒฐ๊ณผ๋ฅผ ๊ด์ฅํ๋ Results ๋๋ฉ์ธ ๋ด๋ถ๋ก ์ฎ๊ฒผ์ต๋๋ค. ์น, ํจ ๋ก์ง์ PlayerLose, PlayerWin ๋ฑ ๊ฐ๊ฐ ๋ถ๋ฆฌํ ๊น ๊ณ ๋ฏผํ์ง๋ง, ์ค๋ณต ๋ก์ง์ ์ง์ํ๊ธฐ ์ํด ํ๋์ ๊ณตํต ๋ก์ง์ ์ ์งํ์ต๋๋ค. ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค๋ ๋ถ๋ถ์ ๊ณต๊ฐํ์ฌ ๋ฉ์๋๋ช ์ countPlayerResult๋ก ๋ณ๊ฒฝํ์ต๋๋ค. ๋ฉ์๋๋ช ์ ์ ํ ๋ countPlayerResult์ countDealerResult ์ค ์ด๋ ์ชฝ์ด ์ ์ฒด์ ์ธ ๋ฌธ๋งฅ์ ๋ ์ง๊ด์ ์ด๊ณ ์ดํดํ๊ธฐ ์ฌ์ธ์ง์ ๋ํ ๊ณ ๋ฏผ์ด ์์ง ๋จ์์์ต๋๋ค. ๋ฆฌ๋ทฐ์ด๋์ ์ด๋ค ํธ์ด ๋ ์ง๊ด์ด๋ผ๊ณ ๋๊ปด์ง์๋์?
There was a problem hiding this comment.
countPlayerResuly๋ก ๋ณ๊ฒฝํ ๊ฒ์ผ๋ก ์ถฉ๋ถํ ๊ฒ ๊ฐ์ต๋๋ค.
Profit์ด ์ ๋ง ๊ด์ฐฎ์ ๊ฑธ๊น?ํ์ฌ ์์ ๋ณด์ฅ๊ณผ ๋ฐ์ดํฐ ๋งค์นญ์ ์ํด ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ Map<Player, Result> ํํ๋ก ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์์ต(Profit)์ ๊ณ์ฐํ ๋๋ ์ด ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ค ๋ณด๋, Profit์์๋ Result๊ฐ ํ์ํด์ ๋์ด์ ์ฐ๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์์๋ณด์ฅ์ ์ํด Player์ Map์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ ๋ง๋? ๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ์์ต ๊ณ์ฐ์ ์ํด ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ฌ์ฉํ๋ ๊ณผ์ ์์, Profit์ด Results์ ๋๋ฌด ๊น๊ฒ ์์กดํ๊ณ ์๋ค๋ ๋๋์ ๋ฐ์์ต๋๋ค. ์ด๋ฌํ ์ํฉ์์๋ DTO๋ฅผ ํ์ฉํ๋ ๋ฐฉ์์ด ๊ด์ฐฎ์ ์ ํ์ผ์ง ๊ถ๊ธํฉ๋๋ค. ํน์ ์ด ์ธ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น์? |
Hyunta
left a comment
There was a problem hiding this comment.
์๋
ํ์ธ์ ์๋ํค,
ํผ๋๋ฐฑ ๋ฐ์์ ์ํด์ฃผ์
จ๋ค์.
๋จ๊ธฐ์ ์ง๋ฌธ์ ๋ํด ๋ต๋ณ ๋ฌ์๋๋ ธ์ต๋๋ค.
ํ์ธํด๋ณด์๊ณ ๋ค์ ์์ฒญ์ฃผ์ธ์.
| public class Profits { | ||
| private final List<Profit> profits; | ||
|
|
||
| public Profits(Referee referee, Results results) { | ||
| this.profits = new ArrayList<>(); | ||
| for (Map.Entry<Player, Result> entry : results.getResults().entrySet()) { | ||
| Profit profit = new Profit((int) referee.calculateProfit(entry.getValue(), entry.getKey().getBetAmount())); | ||
| profits.add(profit); | ||
| } | ||
| } | ||
|
|
||
| public Profit getDealerProfit() { | ||
| int dealerProfit = 0; | ||
| for (Profit profit : profits) { | ||
| dealerProfit -= profit.getProfit(); | ||
| } | ||
| return new Profit(dealerProfit); | ||
| } | ||
|
|
||
| public List<Profit> getProfits() { | ||
| return profits; | ||
| } | ||
| } |
There was a problem hiding this comment.
Profit์ด ์ ๋ง ๊ด์ฐฎ์ ๊ฑธ๊น?
ํ์ฌ ์์ ๋ณด์ฅ๊ณผ ๋ฐ์ดํฐ ๋งค์นญ์ ์ํด ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ Map<Player, Result> ํํ๋ก ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์์ต(Profit)์ ๊ณ์ฐํ ๋๋ ์ด ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ค ๋ณด๋, Profit์์๋ Result๊ฐ ํ์ํด์ ๋์ด์ ์ฐ๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์์๋ณด์ฅ์ ์ํด Player์ Map์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ ๋ง๋? ๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
์์ต ๊ณ์ฐ์ ์ํด ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ฌ์ฉํ๋ ๊ณผ์ ์์, Profit์ด Results์ ๋๋ฌด ๊น๊ฒ ์์กดํ๊ณ ์๋ค๋ ๋๋์ ๋ฐ์์ต๋๋ค. ์ด๋ฌํ ์ํฉ์์๋ DTO๋ฅผ ํ์ฉํ๋ ๋ฐฉ์์ด ๊ด์ฐฎ์ ์ ํ์ผ์ง ๊ถ๊ธํฉ๋๋ค. ํน์ ์ด ์ธ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น์?
ํ๋ ์ด์ด๋ง๋ค ๊ฒฐ๊ณผ๊ฐ ์๊ณ ์ด๋ฅผ ์กฐํํด์ผ ํ๋ฉด Map์ผ๋ก ์ฐ๋๊ฒ ์ ์ ํ์ง ์์๊น์?
์ง๊ธ ๊ตฌ์กฐ์์๋ Dealer์ ์์ต์ ํญ์ ๊ณ์ฐํด์ผํ๋๋ฐ Dealer๋ Map์ ๊ฐ์ด ํฌํจ์ํค๋ฉด ๊ณ์ฐ์ ์ค์ผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
Profit์ ์ฒ์ ์์ฑํ ๋๋ Result์ ๊ฐ ์์ด๋ ๋ง๋ค์ด์ง ์ ์์ด์ ์์กด์ ์์ ๋์ ์๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฐ๊ด๊ด๊ณ์ ๋ฌธ๋งฅ์ด ์์ฐ์ค๋ฌ์์ ํ๋ฆ์ ํ์
ํ๋๋ฐ ์ด๋ ค์์ด ์์ ๊ฒ ๊ฐ์ต๋๋ค.
DTO๋ฅผ ์ฌ์ฉํ ํ์๋ ์์ต๋๋ค.
๋ค์ด๊ฐ๋ฉฐ
step1์ ์งํํ๋ฉด์ ๋ฆ๊ฒ PR์ ์ฌ๋ ค ์๊ฐ์ ์ซ๊ธฐ๋ฏ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ฒ ๋์๊ณ , ๊ทธ ๊ณผ์ ์์ ์์์ ํผ๋๋ฐฑ์ ์ถฉ๋ถํ ์ํํ๊ฑฐ๋ ๊ถ๊ธํ ๋ถ๋ถ์ ๊น๊ฒ ๊ณ ๋ฏผํ์ง ๋ชปํ ์ ์ด ์์ฌ์ ์ต๋๋ค.
๋ ํํธ์ผ๋ก๋ PR์ ๋๋ฌด ๋ฆ๊ฒ ์ฌ๋ฆฌ๊ฒ ๋๋ฉด ๋ฆฌ๋ทฐ์ด ์ ์ฅ์์๋ ํผ๋๋ฐฑ์ด ์ง์ฐ๋๊ณ ๋ถํธํ ์ ์์ง ์์๊น ํ๋ ๊ณ ๋ฏผ๋ ๋ค์์ต๋๋ค. ๊ทธ๋์ ์ด๋ฒ PR์ ์ฌ๋ฆฌ๋ฉด์๋, ์ ๊ณ ๋ฏผ์ ์ถฉ๋ถํ ์ฝ๋๋ก ์คํํ๊ฑฐ๋ ๋ฐ์ํ์ง ๋ชปํ ์ํ์์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ๊ด์ฐฎ์์ง ๊ณ ๋ฏผ์ด ๋์์ต๋๋ค.
๋ฆฌ๋ทฐ์ด ์ ์ฅ์์๋ ํ์ฌ์ฒ๋ผ ๊ธฐ๋ฅ์ด ๋์ํ๋ ์ํ์ ์ฝ๋๋ฅผ ๋จผ์ ๋น ๋ฅด๊ฒ ๊ณต์ ํ๊ณ , ์ดํ ์์ ๋๋ ๋ถ๋ถ์ ๋ํด ์ถ๊ฐ ํผ๋๋ฐฑ์ ํ๋ ๋ฐฉ์์ด ๋ ๊ด์ฐฎ์์ง, ์๋๋ฉด ์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ ์๊ฐํ ์ง์ ์ด ๋ง์ PR์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ๋์์ง ๊ถ๊ธํฉ๋๋ค.
์ฒดํฌ ๋ฆฌ์คํธ
test๋ฅผ ์คํํ์ ๋, ๋ชจ๋ ํ ์คํธ๊ฐ ์ ์์ ์ผ๋ก ํต๊ณผํ๋์?์ด๋ค ๋ถ๋ถ์ ์ง์คํ์ฌ ๋ฆฌ๋ทฐํด์ผ ํ ๊น์?
๋ฒ ํ ์ ์ ์ํ๊ธฐ
๋ฒ ํ ๊ธ์ก์ ๋ํด ๊ณ ๋ฏผํ๋ ๊ณผ์ ์์ ํฌ๊ฒ ๋ค์๊ณผ ๊ฐ์ ์ฌ๊ณ ์ ํ๋ฆ์ ๊ฑฐ์ณค์ต๋๋ค.
๋ฒ ํ ๊ธ์ก์ Participant, Player, Dealer ์ค ์ด๋ค ๋๋ฉ์ธ์ด ๊ฐ์ ธ์ผํ๋ ๊ฐ์ผ๊น?
step1์์ Participant๋ฅผ ์ถ์ ํด๋์ค๋ก ์ ์ํ๊ณ , Player์ Dealer๊ฐ ์ด๋ฅผ ์์๋ฐ๋ ๊ตฌ์กฐ๋ก ๊ตฌํํ์ต๋๋ค. ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ฑ ์์ ์๊ฐํด๋ดค์ต๋๋ค.
๊ฐ ๋ฒ ํ ๊ธ์ก์ Player๋ง ๊ฐ์ง๋ ๊ณ ์ ํ ๊ฐ์ด๊ณ , Dealer๋ Player์ ๋ฒ ํ ๊ธ์ก๊ณผ Result์ ์ํด ๊ฒฐ์ ๋๋ ๊ฐ์ด๋ผ๊ณ ํ๋จํ์ต๋๋ค. ๋ฐ๋ผ์, Player๋ง ๋ฒ ํ ๊ธ์ก ํ๋๋ฅผ ๊ฐ์ง๋๋ก ํ์ต๋๋ค.
์ต์ข ์์ต์ ์ด๋ค ๋๋ฉ์ธ์ ์ํฅ์ ๋ฐ๊ณ , ๋๊ฐ ๊ฐ์ ธ์ผํ ๊น?
์ต์ข ์์ต์ Player, Dealer๊ฐ ๊ณตํต์ผ๋ก ๊ฐ์ง๋ ๊ฐ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ํ์ง๋ง, ์ต์ข ์์ต์ ์์ฑ ์์ ์ ๊ฒฐ์ ๋๋ ๊ฐ์ด ์๋๋๋ค. ๊ทธ๋์ โParticipant์์ ์ต์ข ์์ต์ ํ๋๋ก ๊ฐ์ง๊ธฐ์๋ ๋ถ์ ํฉํ์ง ์๋?โ ๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
์์ ๋งํ๋ฏ **โDealer์ ์ต์ข ์์ต์ Player์ ๋ฒ ํ ๊ธ์ก๊ณผ Result์ ์ํด ๊ฒฐ์ ๋๋ ๊ฐโ**์ด๋ผ๋ ์ ์์ **โDealer๊ฐ ์ต์ข ์์ต ํ๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฉด Player์ ์์กดํ๋ ๊ฒ ์๋๊น?โ**ํ๋ ๊ณ ๋ฏผ๋ ์๊ฒผ์ต๋๋ค.
ํนํ 2๋ฒ์ ๋ํ ๊ณ ๋ฏผ์ ํ๋ฉด์ ์ต์ข ์์ต์ ํ๋๋ก ๋๋ ๊ฒ์ด ์ ์ ํ์ง, ์๋๋ฉด ๊ณ์ฐ์ ํตํด ๋์ถ๋๋ ๊ฐ์ผ๋ก ๋๋ ๊ฒ์ด ๋ ๋์์ง ๊ณ ๋ฏผ์ด ๋ค์์ต๋๋ค. ์ด ๊ณผ์ ์์ ๋ถ๋ณ ๊ฐ์ฒด๋ ๋ฐฉ์ด์ ๋ณต์ฌ ๊ฐ์ ์ค๊ณ ๋ฐฉํฅ๋ ๊ณ ๋ คํด๋ณด์๋๋ฐ, ์ด๋ฌํ ์ ๊ทผ์ด ์ด ์ํฉ์์ ์ ์ ํ ๋ฐฉํฅ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
๋ํ ์ต์ข ์์ต๊ณผ ๊ด๋ จ๋ ์ฑ ์์ ์ด๋ค ๋๋ฉ์ธ์ด ๊ฐ์ง๋ ๊ฒ์ด ๋ ์์ฐ์ค๋ฌ์ด์ง์ ๋ํด์๋ ์กฐ์ธ์ ๋ฃ๊ณ ์ถ์ต๋๋ค.
์ต์ข ์์ต ๊ณ์ฐ ๊ธฐ๋ฅ
์ ํฌ๋ ๊ธฐ์กด์ Referee ํด๋์ค๋ฅผ ํตํด Result๋ฅผ ํ๋ณํ์์ต๋๋ค. ์ต์ข ์์ต ๊ณ์ฐ ๊ธฐ๋ฅ์ Result๋ฅผ ํ๋ณํ๋ ๋ฉ์๋์์ ํจ๊ป ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ ์ ํ๋ค๊ณ ์๊ฐํ์ฌ Referee๋ฅผ ํตํด ๊ด๋ฆฌํ์ต๋๋ค.
ํจํค์ง ๊ด๋ฆฌ
domain ์์ Result, Referee ๋ฑ.. ๋ค์ํ ํด๋์ค๊ฐ ์ถ๊ฐ ๋๋ค ๋ณด๋ ํ ๋์ ๋๋ฉ์ธ์ ์ดํดํ๊ธฐ ์ด๋ ค์ด ๊ฒ ๊ฐ์ต๋๋ค. ํน์ domain ํจํค์ง ๋ด์์ ๊ฐ๋ ์ฑ์ ์ํด ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๋ ์ ๋ต์ด๋ ์ปจ๋ฒค์ ํน์.. ๊ธฐ์ค์ด ์์๊น์?