[๐ ์ฌ์ดํด2 - ๋ฏธ์ (๋ธ๋์ญ ๊ฒ์ ์คํ)] ์๋ด ๋ฏธ์ ์ ์ถํฉ๋๋ค.#1111
[๐ ์ฌ์ดํด2 - ๋ฏธ์
(๋ธ๋์ญ ๊ฒ์ ์คํ)] ์๋ด ๋ฏธ์
์ ์ถํฉ๋๋ค.#1111Gyuchool merged 58 commits intowoowacourse:realtakefrom
Conversation
- Deck.cardsํ๋๋ฅผ Set์ผ๋ก ์ ํํด์ ์ค๋ณต์ ๋ํ ๋ฌธ์ ๋ฐฉ์ง - Deck.draw() ์์ finally ๋ฌธ์ ์ฌ์ฉํ๋ ๋์ ์ฝ๋ ํ๋ฆ์ผ๋ก ๊ฐ์
fix: hit&Stand ๋ก์ง ์ค๋ฅ ์์
- DefaultBlackjackRule: judge๋ฅผ Participant ๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝ, BLACKJACK ๊ฒฐ๊ณผ ์ถ๊ฐ - ๊ฐ ํ๋ ์ด์ด ๋ณ ๋ฐฐํ ๊ธ์ก ์ ๋ ฅ ๋ฐ์
Gyuchool
left a comment
There was a problem hiding this comment.
์๋
ํ์ธ์ ์๋ด
์ฌ์ดํด2 ๋ฏธ์
์งํํ์๋๋ผ ๊ณ ์ํ์
จ์ต๋๋ค!! ์ ๊ตฌํํด์ฃผ์
จ๋ค์๐
๋ช ๊ฐ์ง ์ฝ๋ฉํธ๋ฅผ ๋จ๊ฒจ๋์์ผ๋ ๋ฐ์ ๋ฐ ์๊ฒฌ ์ฃผ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.๐
๊ถ๊ธํ ์ ์ DM์ด๋ PR ์ปค๋ฉํธ๋ก ์ธ์ ๋ ์ง ์ฌ์ญค๋ด์ฃผ์ธ์!
- BlackjackGame์ด Players.getPlayerList()๋ก ์ปฌ๋ ์ ์ ๊ฐ์ ธ์ ์ํํ๋ฉด์ ์์ต์ ๊ณ์ฐํ๋ ๋ฐฉ์
- Players ๋ด๋ถ์ ์์ต ๊ณ์ฐ ๋ฉ์๋๋ฅผ ๋๊ณ BlackjackGame์์๋ ํด๋น ๋ฉ์๋๋ฅผ ํธ์ถ๋ง ํ๋ ๋ฐฉ์
๋ ๊ฐ์ง ๊ตฌ์กฐ ์ค ์ผ๊ธ ์ปฌ๋ ์ ์ ์๋์ ๋๋ฉ์ธ ์ฑ ์ ๋ถ๋ฆฌ ์ธก๋ฉด์์ ์ด๋ค ๊ตฌ์กฐ๊ฐ ๋ ์ ์ ํ ์ง ๊ธฐ๋ก ์ ์๊ฒฌ์ ๋ฃ๊ณ ์ถ์ต๋๋ค!
blackJackGame์ ์นด๋ ๊ฒ์ ์งํ์ ๋ค๋ฃจ๊ณ ์๊ธฐ์ ์์ต ๊ณ์ฐ์ ๋ํ ์ฑ ์์ ๋ค๋ฅธ ๊ฐ์ฒด์ ๋งก๊ฒจ๋ณด๋๊ฑด ์ด๋จ๊น์? ๋ฆฌ๋ทฐ ๋ฐ์ํ๋ฉด์ ์ด๋ค ๊ฐ์ฒด๊ฐ ๋ค๋ค์ผํ ์ง ํจ๊ป ๊ฐ์ ํด๊ฐ๋ณด์์ฃ ..!
Service์ ์ญํ ์ด DTO ๋ณํ๊ณผ blackjackGame.xxx() ํ ๋ฒ๋ง ํธ์ถํ๋ ๋จ์ ์์์ด๋ผ, ์ฒ์๋ถํฐ ์๋น์ค ๋ ์ด์ด๋ฅผ ๋์ง ๋ง์์ด์ผ ํ๋ ์ถ์ต๋๋ค.
- ์ง๊ธ ๊ตฌ์กฐ๋ฅผ ์ ์งํ ์ฑ โService = ์ง์ ์ + DTOโ ์ญํ ๋ง ๋ช ์ํ ์ง
- Service ๋ ์ด์ด๋ฅผ ์ ๊ฑฐํ๊ณ Controller๊ฐ Game์ ์ง์ ์ธ์ง
๋ฆฌ๋ทฐ์๋ ๋จ๊ฒผ๋๋ฐ ์ ๋ ๋ชจํธํ๋ค๊ณ ๋๋ผ๊ณ ์์ด์๐ ์๋ด์ ์ฒ์ ์ค๊ณํ ๋ service blackjackGame์ ๊ฐ๊ฐ ์ด๋ค ์ญํ ๋ก ํ์ฉํ๋ ค๊ณ service๋ฅผ ์ถ๊ฐํ์์๊น์?
| import team.blackjack.view.OutputView; | ||
|
|
||
| public class BlackJackController { | ||
| private final BlackJackService blackJackService; |
There was a problem hiding this comment.
์๋ด์ด ์๊ฐํ์๊ธฐ์ blackJackController์ blackJackService์ ๊ฐ๊ฐ ์ญํ ์ด ๋ฌด์์ผ๊น์?
ํ์ฌ๋ ๋ก์ง์ด Controller์ ๋ ๋ง์ ๊ฒ ๊ฐ์๋ฐ ์ด๋ป๊ฒ ์๊ฐํ์ค๊น์?
There was a problem hiding this comment.
BlackJackController
View๋ก๋ถํฐ ๊ฒ์์ ํ์ํ ์
๋ ฅ์ ๋ฐ๊ณ , ๊ฐ๊ณตํ์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ์ ๋ฌํ๋ ์ญํ ์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
BlackJackService
๋ธ๋์ญ ๊ฒ์ ์งํ์ ์ํด ์ฌ๋ฌ ๋๋ฉ์ธ ๊ฐ์ฒด๋ค์ ์กฐํฉํ๊ณ ์ฌ์ฉํ๋ฉด์ ์ ์ฒด์ ์ธ ๊ฒ์ ํ๋ฆ์ ๋ง๋๋ ์ญํ ์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ฌ ๊ตฌ์กฐ์์๋ ๋ธ๋์ญ ๊ฒ์์ ์ฃผ์ ๋ก์ง ๋๋ถ๋ถ์ด BlackjackGame ๋๋ฉ์ธ ๊ฐ์ฒด์ ์์นํด ์์ด์, ์๋์ ์ผ๋ก Service์ ๋ก์ง์ด ๋ง์ ๋ณด์ด๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค๋ง Controller์์๋ View์์ ์ํธ์์ฉ์ ํตํด ์ป์ ๋ฐ์ดํฐ๋ฅผ Service๋ก ์ ๋ฌํ๋ ์ญํ ๋ง ํ๊ณ ์๊ธฐ ๋๋ฌธ์, ์ง๊ธ ์๊ฐ์ผ๋ก๋ ๊ตฌ์กฐ์ ์ผ๋ก ํฐ ๋ฌธ์ ๋ ์๋ค๊ณ ์๊ฐํ๊ณ ์์ต๋๋ค.
RealTake
left a comment
There was a problem hiding this comment.
์๋
ํ์ธ์, ๊ธฐ๋ก !
ํผ๋๋ฐฑ์ ๋ฐ๊ณ ๊ตฌ์กฐ๋ฅผ ์ฌ๋ฌ ๋ฐฉํฅ์ผ๋ก ๋ฐ๊ฟ๋ณด๋ฉฐ ์ด๊ฒ์ ๊ฒ ์๋ํด ๋ณด๋๋ผ ๋ต๋ณ์ด ๋ง์ด ๋ฆ์ด์ก์ต๋๋ค...
์์ต ๊ณ์ฐ๊ณผ ์นํจ ๋ก์ง์ ์ ์ ํ ํด๋์ค๋ก ๋ถ๋ฆฌํด๋ณด๋ ค๊ณ ์ฌ๋ฌ ๋ฐฉ์์ผ๋ก ๊ณ ๋ฏผํ๊ณ ์๋ํด ๋ณด์๋๋ฐ, ํ์ฌ๋ ์ฐ์ ์ง๊ธ์ ๊ตฌ์กฐ๋ก ์ ๋ฆฌํ๊ฒ ๋์์ต๋๋ค. ๋ค๋ง ์์ง ์ด ๋ฐฉ์์ด ๋ง๋ ๋ฐฉํฅ์ธ์ง์ ๋ํด์๋ ์ ๋ ํ์ ์ด ์์ง ์๋ ์ํ์ ๋๋ค.
ํ์ฌ๋ Game ๋๋ฉ์ธ ๊ฐ์ฒด๊ฐ ์ง์ ์ ์ฒด ํ๋ฆ์ ๊ด๋ฆฌํ๊ธฐ๋ณด๋ค๋, Service ๋ ์ด์ด์์ ์ ์ค์ผ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ํ์ํ ๋๋ฉ์ธ๋ค์ ์กฐํฉํ๋ ๋ฐฉ์์ด ๋ ์ ์ ํ๋ค๊ณ ํ๋จํด ์ด๋ฐ ๊ตฌ์กฐ๋ก ๊ฐ์ ธ๊ฐ๊ฒ ๋์์ต๋๋ค.
์ฌ์ค ์ง๊ธ๋ ์ด ๋ฐฉํฅ์ด ๊ด์ฐฎ์์ง์ ๋ํ ์์ ์ด ์์ต๋๋ค..
๊ธฐ์กด์ ๊ตฌ์กฐ์ฒ๋ผ Game ๋๋ฉ์ธ์ด ํ๋ฆ์ ๋ ๋ง์ด ๊ฐ์ ธ๊ฐ๋ ๊ตฌ์กฐ๊ฐ ๋ ์์ฐ์ค๋ฌ์ด์ง์ ๋ํด์๋ ์๊ฒฌ์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค...!ใ
ใ
| import team.blackjack.view.OutputView; | ||
|
|
||
| public class BlackJackController { | ||
| private final BlackJackService blackJackService; |
There was a problem hiding this comment.
BlackJackController
View๋ก๋ถํฐ ๊ฒ์์ ํ์ํ ์
๋ ฅ์ ๋ฐ๊ณ , ๊ฐ๊ณตํ์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ์ ๋ฌํ๋ ์ญํ ์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
BlackJackService
๋ธ๋์ญ ๊ฒ์ ์งํ์ ์ํด ์ฌ๋ฌ ๋๋ฉ์ธ ๊ฐ์ฒด๋ค์ ์กฐํฉํ๊ณ ์ฌ์ฉํ๋ฉด์ ์ ์ฒด์ ์ธ ๊ฒ์ ํ๋ฆ์ ๋ง๋๋ ์ญํ ์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ฌ ๊ตฌ์กฐ์์๋ ๋ธ๋์ญ ๊ฒ์์ ์ฃผ์ ๋ก์ง ๋๋ถ๋ถ์ด BlackjackGame ๋๋ฉ์ธ ๊ฐ์ฒด์ ์์นํด ์์ด์, ์๋์ ์ผ๋ก Service์ ๋ก์ง์ด ๋ง์ ๋ณด์ด๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค๋ง Controller์์๋ View์์ ์ํธ์์ฉ์ ํตํด ์ป์ ๋ฐ์ดํฐ๋ฅผ Service๋ก ์ ๋ฌํ๋ ์ญํ ๋ง ํ๊ณ ์๊ธฐ ๋๋ฌธ์, ์ง๊ธ ์๊ฐ์ผ๋ก๋ ๊ตฌ์กฐ์ ์ผ๋ก ํฐ ๋ฌธ์ ๋ ์๋ค๊ณ ์๊ฐํ๊ณ ์์ต๋๋ค.
src/main/java/team/blackjack/domain/rule/DefaultBlackjackRule.java
Outdated
Show resolved
Hide resolved
Gyuchool
left a comment
There was a problem hiding this comment.
์๋
ํ์ธ์ ์๋ด
๋ฆฌ๋ทฐ ๋ฐ์ ๋ฐ ์๊ฒฌ์ฃผ์ ๊ฒ ํ์ธํ์ต๋๋ค!!๐
๋ค๋ง, ์คํํ์๋ ์ฌ์ง(c๊ฐ ๋ฒ์คํธ์ธ๋ฐ ๋ฝ๊ธฐ ๊ฐ๋ฅ)์ฒ๋ผ ๊ธฐ๋ํ ๊ฒฐ๊ณผ๊ฐ ์๋์์ ์ด๋ถ๋ถ๋ง ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค๐
์ด์ธ์ ๋ช ๊ฐ์ง ์ฝ๋ฉํธ๋ฅผ ๋จ๊ฒจ๋์์ผ๋ ๋ฐ์ ๋ฐ ์๊ฒฌ ์ฃผ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.๐
๊ถ๊ธํ ์ ์ DM์ด๋ PR ์ปค๋ฉํธ๋ก ์ธ์ ๋ ์ง ์ฌ์ญค๋ด์ฃผ์ธ์!
| import team.blackjack.service.dto.DrawResult; | ||
| import team.blackjack.service.dto.ScoreResult; | ||
|
|
||
| public class BlackjackService { |
There was a problem hiding this comment.
ํ์ฌ๋ Game ๋๋ฉ์ธ ๊ฐ์ฒด๊ฐ ์ง์ ์ ์ฒด ํ๋ฆ์ ๊ด๋ฆฌํ๊ธฐ๋ณด๋ค๋, Service ๋ ์ด์ด์์ ์ ์ค์ผ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ํ์ํ ๋๋ฉ์ธ๋ค์ ์กฐํฉํ๋ ๋ฐฉ์์ด ๋ ์ ์ ํ๋ค๊ณ ํ๋จํด ์ด๋ฐ ๊ตฌ์กฐ๋ก ๊ฐ์ ธ๊ฐ๊ฒ ๋์์ต๋๋ค.
์ฌ์ค ์ง๊ธ๋ ์ด ๋ฐฉํฅ์ด ๊ด์ฐฎ์์ง์ ๋ํ ์์ ์ด ์์ต๋๋ค..
๊ธฐ์กด์ ๊ตฌ์กฐ์ฒ๋ผ Game ๋๋ฉ์ธ์ด ํ๋ฆ์ ๋ ๋ง์ด ๊ฐ์ ธ๊ฐ๋ ๊ตฌ์กฐ๊ฐ ๋ ์์ฐ์ค๋ฌ์ด์ง์ ๋ํด์๋ ์๊ฒฌ์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค...!ใ ใ
Game๋๋ฉ์ธ์ ์ ๊ฑฐ๊ฐ ๋์๊ตฐ์?! blackJackService๊ฐ Player, Delaer, judge๋ฅผ ๋ค๋ฃจ๋ฉด ์ด๋จ๊น์? ๊ฐ์ฒด ์์ฑ๋ blackJackService initํ ๋ ๋ง๋ค์ด์ค ์ ์์ ๊ฒ ๊ฐ๋ค์..!
There was a problem hiding this comment.
ํผ๋๋ฐฑ ์์ฉํด๋ดค์ต๋๋ค!
์๋น์ค๊ฐ ํ๋๋ก ๋๋ฉ์ธ ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์์ฑ์๋ก ์
๋ ฅ๋ฐ์์ ํ์คํธ๊ฐ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ก ์์ ํ์์ต๋๋ค!
๋ค์ ์๊ฐํด๋ณด๋ ํผ๋๋ฐฑ์ ์๋ชป ์ดํดํ๋ฏ ์ถ์ต๋๋ค...
ํ๋๋ก ๋๋ฉ์ธ ๊ฐ์ฒด๋ฅผ ๊ฐ์ง์ง ์๊ณ , ์์ฑ๋ง ์๋น์ค์์ํ๊ณ ์ปจํธ๋กค๋ฌ์์ ๋ฆฌํด๋ฐ์ ํธ๋ค๋งํ๋๋ก ํ์์ด์ผ ํ์๊น์?ใ
There was a problem hiding this comment.
์ปจํธ๋กค๋ฌ์์ ๋ฆฌํด๋ฐ์ ํธ๋ค๋งํ๋ฉด ์ด๋ค ์ฅ์ ์ด ์์๊น์?
์๋ด์ ์๊ฐ์ด ๊ถ๊ธํฉ๋๋ค!
์ ์ง๋ฌธ์ด ์ด๋ป๊ฒ๋ณด๋ฉด ์ฒ์ ๋ฆฌ๋ทฐ ์์ฒญํ์๋ ์ง๋ฌธ๊ณผ๋ ๊ฐ์ ์ํฉ์ธ๊ฒ ๊ฐ์๋ฐ์.
์ง๊ธ ๊ตฌ์กฐ๋ฅผ ์ ์งํ ์ฑ โService = ์ง์ ์ + DTOโ ์ญํ ๋ง ๋ช ์ํ ์ง
Service ๋ ์ด์ด๋ฅผ ์ ๊ฑฐํ๊ณ Controller๊ฐ Game์ ์ง์ ์ธ์ง
๊ธฐ๋ก ์ ์๊ฒฌ์ ๋ฃ๊ณ ์ถ์ต๋๋ค.!
์ ๋ ์ฌ์ค ํ์๊ฐ ๋ ์์ง๋๋ฅผ ๋์ด๊ณ ๊ฐ์ฒด๊ฐ์ ๊ด๊ณ๋ฅผ ์ ๋ค๋ฃฐ ์ ์๋ค๊ณ ์๊ฐํด์. ๊ทธ๋์ ํ์์ ๋ฐฉํฅ์ผ๋ก ์ด๋๋๋ก ๋ฆฌ๋ทฐ๋ฅผ ๋จ๊ฒผ์์ต๋๋ค( ์๋๊ฐ ์ ๋ฌ๋์๊ธธ ๋ฐ๋ผ๋ค์๐ฅฒ )
๋ธ๋์ญ ๊ฒ์์ ๋ ์ด์ด๋ฅผ ๋๋๋งํผ ๋ณต์กํ์ง ์๊ณ ์คํ๋ ค ๋ ์ด์ด๋ฅผ ๋์ด์ ์๊ธฐ๋ ๋ณต์ก์ฑ์ด ๋ ํฌ๋ค๊ณ ์๊ฐํด์..! ๋ ์ด์ด๊ฐ ์ ํ์ํ์ง ๊ณ ๋ฏผํด๋ณด์๊ณ ์๋ด๋ง์ ์๊ฐ์ ์ ๋ฆฌํ๋ฉด ์ข์๊ฒ ๊ฐ๋ค์(์ปค๋ฉํธ๋ก ๊ณต์ ํด์ฃผ์ ๋ ์ข์ต๋๋ค ใ ใ )๐
fix(BlackjackJudge): ๋๋ฌ๊ฐ ๋ฒ์คํธ๋ ๊ฒฝ์ฐ, ํ๋ ์ด์ด์ ๋ธ๋์ญ์ด ๋จ์ ์น๋ฆฌ๋ก ๊ณ์ฐ๋๋ ํ์ ์์ refactor: ์์ต ๊ณ์ฐ ๋ก์ง BlackjackJudge๋ก ์ด๋
|
์๋
ํ์ธ์, ๊ธฐ๋ก ! ํผ๋๋ฐฑ ์ฃผ์ ๋ด์ฉ๋ ๋๋ฆ๋๋ก ๋ฐ์ํด ๋ณด์๋๋ฐ, ์ฝ๋ฉํธ๋ฅผ ๋ค์ ์ ๋ฆฌํ๋ฉด์ ๋ณด๋ ์ ๊ฐ ํผ๋๋ฐฑ์ ์๋ชป ์ดํดํ ๊ฒ์ ์๋์ง ์กฐ๊ธ ๊ฑฑ์ ์ด ๋ฉ๋๋ค. ps. |
Gyuchool
left a comment
There was a problem hiding this comment.
์๋
ํ์ธ์ ์๋ด
ํผ๋๋ฐฑ์ ์ ๋ฐ์ํด์ฃผ์
จ๋ค์!!๐ ๋ค์ ๋ฏธ์
์ ์ํด ๋จธ์งํ๊ฒ ์ต๋๋ค:)
๋จธ์ง๋ ํ์์ง๋ง ๋ช ๊ฐ์ง ์ฝ๋ฉํธ๋ฅผ ๋จ๊ฒจ๋์์ผ๋ ๋ฐ์ ๋ฐ ์๊ฒฌ ์ฃผ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.๐
๊ถ๊ธํ ์ ์ DM์ด๋ PR ์ปค๋ฉํธ๋ก ์ธ์ ๋ ์ง ์ฌ์ญค๋ด์ฃผ์ธ์!
๋ค์ ๋ฏธ์ ๋ ํ์ดํ ์ ๋๋ค๐ช๐ช
| import java.util.HashSet; | ||
| import java.util.LinkedHashMap; | ||
| import java.util.LinkedHashSet; | ||
| import java.util.List; | ||
| import java.util.Set; | ||
| import team.blackjack.service.BlackjackService; | ||
| import team.blackjack.view.InputView; | ||
| import team.blackjack.view.OutputView; |
There was a problem hiding this comment.
Controller๊ฐ ๋๋ฉ์ธ ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ์ง์๊ฒ ๋์๊ตฐ์๐
|
|
||
| public void run() { | ||
|
|
||
| final LinkedHashSet<String> playerNames = readPlayerNames(); |
There was a problem hiding this comment.
| final LinkedHashSet<String> playerNames = readPlayerNames(); | |
| final Set<String> playerNames = readPlayerNames(); |
์ธํฐํ์ด์ค ํ์ ์ผ๋ก ์ง์ ํ๋๊ฒ ๋ ์ข์๋ณด์ ๋๋ค:)
| println("%s์ ์ ๋ฐฐํ ๊ธ์ก์?".formatted(playerName)); | ||
| } | ||
|
|
||
| public static void printWrongBattingMoneyInputMessage() { |
There was a problem hiding this comment.
์ฌ์ฉํ์ง ์๋ ์ฝ๋๋ ์ ๊ฑฐํด์ฃผ์ธ์๐ช
| import team.blackjack.service.dto.DrawResult; | ||
| import team.blackjack.service.dto.ScoreResult; | ||
|
|
||
| public class BlackjackService { |
There was a problem hiding this comment.
์ปจํธ๋กค๋ฌ์์ ๋ฆฌํด๋ฐ์ ํธ๋ค๋งํ๋ฉด ์ด๋ค ์ฅ์ ์ด ์์๊น์?
์๋ด์ ์๊ฐ์ด ๊ถ๊ธํฉ๋๋ค!
์ ์ง๋ฌธ์ด ์ด๋ป๊ฒ๋ณด๋ฉด ์ฒ์ ๋ฆฌ๋ทฐ ์์ฒญํ์๋ ์ง๋ฌธ๊ณผ๋ ๊ฐ์ ์ํฉ์ธ๊ฒ ๊ฐ์๋ฐ์.
์ง๊ธ ๊ตฌ์กฐ๋ฅผ ์ ์งํ ์ฑ โService = ์ง์ ์ + DTOโ ์ญํ ๋ง ๋ช ์ํ ์ง
Service ๋ ์ด์ด๋ฅผ ์ ๊ฑฐํ๊ณ Controller๊ฐ Game์ ์ง์ ์ธ์ง
๊ธฐ๋ก ์ ์๊ฒฌ์ ๋ฃ๊ณ ์ถ์ต๋๋ค.!
์ ๋ ์ฌ์ค ํ์๊ฐ ๋ ์์ง๋๋ฅผ ๋์ด๊ณ ๊ฐ์ฒด๊ฐ์ ๊ด๊ณ๋ฅผ ์ ๋ค๋ฃฐ ์ ์๋ค๊ณ ์๊ฐํด์. ๊ทธ๋์ ํ์์ ๋ฐฉํฅ์ผ๋ก ์ด๋๋๋ก ๋ฆฌ๋ทฐ๋ฅผ ๋จ๊ฒผ์์ต๋๋ค( ์๋๊ฐ ์ ๋ฌ๋์๊ธธ ๋ฐ๋ผ๋ค์๐ฅฒ )
๋ธ๋์ญ ๊ฒ์์ ๋ ์ด์ด๋ฅผ ๋๋๋งํผ ๋ณต์กํ์ง ์๊ณ ์คํ๋ ค ๋ ์ด์ด๋ฅผ ๋์ด์ ์๊ธฐ๋ ๋ณต์ก์ฑ์ด ๋ ํฌ๋ค๊ณ ์๊ฐํด์..! ๋ ์ด์ด๊ฐ ์ ํ์ํ์ง ๊ณ ๋ฏผํด๋ณด์๊ณ ์๋ด๋ง์ ์๊ฐ์ ์ ๋ฆฌํ๋ฉด ์ข์๊ฒ ๊ฐ๋ค์(์ปค๋ฉํธ๋ก ๊ณต์ ํด์ฃผ์ ๋ ์ข์ต๋๋ค ใ ใ )๐
| final List<String> dealerCardNames = dealer.getCards().stream() | ||
| .map(Card::getCardName) | ||
| .toList(); |
There was a problem hiding this comment.
| final List<String> dealerCardNames = dealer.getCards().stream() | |
| .map(Card::getCardName) | |
| .toList(); | |
| final List<String> dealerCardNames = dealer.getCardNames(); |
๋๋ฏธํฐ์ ๋ฒ์น์ ์ง์ผ๋ด๋ ์ข๊ฒ ๋ค์ :)
dealer๊ฐ ๊ฐ์ง ์นด๋๋ค์ dealer์๊ฒ๋ง ๋ฌผ์ด๋ด๋ ์ถฉ๋ถํ์ง ์์๊น์?๐
| } | ||
|
|
||
| public RevenueResult getRevenueResult() { | ||
| final LinkedHashMap<Player, Result> playerResultMap = players.getPlayers().stream() |
There was a problem hiding this comment.
class PlayerResult {
private final Player player;
private final Result result;
}๊ฐ์ธ์ ์ผ๋ก Map์๋ฃ๊ตฌ์กฐ๋ก ๋ง๋ค์ด์ ๋๊ธฐ๋๊ฒ๋ณด๋ค ๊ฐ์ฒด๋ก ๋ง๋ค์ด์ ๋๊ธฐ๋ฉด ์๋ฏธ๊ฐ ๋ถ๋ช ํ ์ ๋ฌ๋์ง์์๊น ์ถ๋ค์ :)
์๋ ํ์ธ์, ๊ธฐ๋ก !
์ฃผ์ ํผ๋๋ฐฑ์ ์ฌ๋ฌ ๋ฒ ๊ณฑ์น์ด ๋ณด๋ฉด์ ๋ค์ํ ๋ฐฉ์๋ ์๋ํด ๋ณด๋๋ผ PR๊ณผ ๋ต์ฅ์ ๋ฆ๊ฒ ์ฌ๋ฆฌ๊ฒ ๋์ด ์ฃ์กํฉ๋๋คใ ใ
ํผ๋๋ฐฑ์ ๋ฐํ์ผ๋ก ๋ค๋ฅธ ํฌ๋ฃจ๋ถ๋ค๊ณผ๋ ์๊ฒฌ์ ๋๋๊ณ , ์ฌ๋ฌ ํฌ๋ฃจ๋ค์ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด์ ์ ๊ฐ ๋ฏธ์ฒ ์๊ฐํ์ง ๋ชปํ๋ ๋ฐฉ์์ด๋ ํค์๋๋ค์ ๋ง์ด ์๊ฒ ๋์์ต๋๋ค. ๋๋ถ์ ๋ง์ ๊ฒ์ ๋ฐฐ์ฐ๋ ์๊ฐ์ด ๋์๊ณ , ๊ทธ๋ฌ๋ค ๋ณด๋ ์ผ์ฃผ์ผ์ด ์ ๋ง ๋น ๋ฅด๊ฒ ์ง๋๊ฐ ๊ฒ ๊ฐ์ต๋๋ค.
ํนํ ์ค๋๊ธฐ๊ฐ ๊ฐ๋ฐ์ ํด์ค๋ฉด์ ์ฃผ์ ๋ํ ๊ด๋ฆฌ์ ๋์์ด ๋ ์ ์๋ค๋ ์ ์ ์๊ฐํ์ง ๋ชปํ๋ ๋ถ๋ถ์ด๋ผ ์์ง๋ ๋ต..ํฉ๋๋ค..!
PR์ ์์ ๋ค์ ์ข์ ํผ๋๋ฐฑ ์ฃผ์ ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค..!
์ฒดํฌ ๋ฆฌ์คํธ
test๋ฅผ ์คํํ์ ๋, ๋ชจ๋ ํ ์คํธ๊ฐ ์ ์์ ์ผ๋ก ํต๊ณผํ๋์?์ด๋ค ๋ถ๋ถ์ ์ง์คํ์ฌ ๋ฆฌ๋ทฐํด์ผ ํ ๊น์?
์ํฉ
์ฌ์ดํด 2์์ ๋ฐฐํ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๋ฉด์ ๊ฐ ์ฐธ๊ฐ์์ ์์ต์ ๊ณ์ฐํด์ผ ํ๋ ์๊ตฌ์ฌํญ์ด ์๊ฒผ์ต๋๋ค.
ํ์ฌ๋ BlackjackGame์ calculateAllPlayerRevenue() ๋ฉ์๋์์ ์ ์ฒด ํ๋ ์ด์ด์ ์์ต์ ๊ณ์ฐํ๊ณ ์์ต๋๋ค.
์ด ๊ณผ์ ์์ Players ๋ด๋ถ์ ํ๋ ์ด์ด๋ค์ ์ํํด์ผ ํ๊ธฐ ๋๋ฌธ์ Players.getPlayerList() ๋ฉ์๋๋ฅผ ๋ง๋ค๊ฒ ๋์์ต๋๋ค.
๊ณ ๋ฏผ
getPlayerList()๋ ๋ด๋ถ ์ปฌ๋ ์ ์ ์ธ๋ถ๋ก ๋ ธ์ถํ๊ฒ ๋๋ฏ๋ก ์ผ๊ธ ์ปฌ๋ ์ ์ ์ทจ์ง์ ๋ค์ ์ด๊ธ๋๋ ๊ฒ์ด ์๋์ง ๊ณ ๋ฏผ์ด ๋์์ต๋๋ค.
๊ทธ๋์ calculateAllPlayerRevenue() ๋ฉ์๋๋ฅผ Players ๋ด๋ถ๋ก ์ด๋์ํค๋ ๊ฒ๋ ํ๋์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๋ง์นจ Player๊ฐ betMoney ํ๋๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ Players๊ฐ ๊ฐ Player๋ฅผ ์ํํ๋ฉฐ ์์ต์ ๊ณ์ฐํ๋ ๊ตฌ์กฐ๋ ๊ฐ๋ฅํด ๋ณด์ ๋๋ค.
๋ค๋ง ์์ต ๊ณ์ฐ์ด๋ผ๋ ํ์๊ฐ Player๋ Players๋ณด๋ค๋ ๊ฒ์์ ๊ท์น๊ณผ ํ๋ฆ์ ๋ด๋นํ๋ BlackjackGame์์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ ์์ฐ์ค๋ฌ์ด ๊ฒ์ ์๋์ง ๊ณ ๋ฏผ์ด ๋ฉ๋๋ค.
๋ฆฌ๋ทฐ ์์ฒญ
1. BlackjackGame์ด Players.getPlayerList()๋ก ์ปฌ๋ ์ ์ ๊ฐ์ ธ์ ์ํํ๋ฉด์ ์์ต์ ๊ณ์ฐํ๋ ๋ฐฉ์
2. Players ๋ด๋ถ์ ์์ต ๊ณ์ฐ ๋ฉ์๋๋ฅผ ๋๊ณ BlackjackGame์์๋ ํด๋น ๋ฉ์๋๋ฅผ ํธ์ถ๋ง ํ๋ ๋ฐฉ์
๋ ๊ฐ์ง ๊ตฌ์กฐ ์ค ์ผ๊ธ ์ปฌ๋ ์ ์ ์๋์ ๋๋ฉ์ธ ์ฑ ์ ๋ถ๋ฆฌ ์ธก๋ฉด์์ ์ด๋ค ๊ตฌ์กฐ๊ฐ ๋ ์ ์ ํ ์ง ๊ธฐ๋ก ์ ์๊ฒฌ์ ๋ฃ๊ณ ์ถ์ต๋๋ค!
2. Service์ Game์ ์ญํ ๊ฒฝ๊ณ
์ํฉ
-> getter๋ฅผ ์ ๊ฑฐํ๋ ๋์ ์๋น์ค๊ฐ ์ ๊ฒํฐ๋ฅผ ์ฌ์ฉํด์ ์ฐ๊ฒ ๋๋์ง๋ฅผ ๋ณด๊ณ , ๊ทธ ์ด์ ๋ฅผ ๋ค์ game์์ ํ๋๋ก ํ๋ค๋ณด๋, ๋๋ถ๋ถ์ ์๋น์ค ๋ก์ง๋ค์ด Game์ผ๋ก ์ด๋ํ๊ฒ ๋์์ต๋๋ค. ์ง๊ธ์ Game์ด ๊ฒ์ ์งํ ๋ก์งโ์, Service๊ฐ โGame ์์ฑ + Game ์์ + DTO ๋ณํโ์ ๋งก๊ณ ์์ต๋๋ค.
ํ์ฌ ์๋น์ค ํด๋์ค์ ์ญํ ์ ๋๋ฉ์ธ์ ์ง์ ์ปจํธ๋กค๋ฌ์ ๋ฐํ ํ๊ธฐ ๋ณด๋จ DTO๋ฅผ ๋ณํํด์ ์ฃผ๋๋ฐ ์๋ฏธ๋ฅผ ๋๊ณ ์์ต๋๋ค.
๊ณ ๋ฏผ
Service์ ์ญํ ์ด DTO ๋ณํ๊ณผ blackjackGame.xxx() ํ ๋ฒ๋ง ํธ์ถํ๋ ๋จ์ ์์์ด๋ผ, ์ฒ์๋ถํฐ ์๋น์ค ๋ ์ด์ด๋ฅผ ๋์ง ๋ง์์ด์ผ ํ๋ ์ถ์ต๋๋ค.
๋ฆฌ๋ทฐ ์์ฒญ
๊ธฐ๋ก ์ ์๊ฒฌ์ ๋ฃ๊ณ ์ถ์ต๋๋ค.!
์๊ฐ ๋ด์ด ๋ฆฌ๋ทฐํด ์ฃผ์ ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค..!