Skip to content

[๐Ÿš€ ์‚ฌ์ดํด2 - ๋ฏธ์…˜ (๋ธ”๋ž™์žญ ๊ฒŒ์ž„ ์‹คํ–‰)] ์—๋ด ๋ฏธ์…˜ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.#1111

Merged
Gyuchool merged 58 commits intowoowacourse:realtakefrom
RealTake:step2
Mar 18, 2026

Conversation

@RealTake
Copy link

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ธฐ๋ก !

์ฃผ์‹  ํ”ผ๋“œ๋ฐฑ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ณฑ์”น์–ด ๋ณด๋ฉด์„œ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹๋„ ์‹œ๋„ํ•ด ๋ณด๋А๋ผ PR๊ณผ ๋‹ต์žฅ์„ ๋Šฆ๊ฒŒ ์˜ฌ๋ฆฌ๊ฒŒ ๋˜์–ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹คใ…œใ…œ

ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค๋ฅธ ํฌ๋ฃจ๋ถ„๋“ค๊ณผ๋„ ์˜๊ฒฌ์„ ๋‚˜๋ˆ„๊ณ , ์—ฌ๋Ÿฌ ํฌ๋ฃจ๋“ค์˜ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด์„œ ์ œ๊ฐ€ ๋ฏธ์ฒ˜ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๋ฐฉ์‹์ด๋‚˜ ํ‚ค์›Œ๋“œ๋“ค์„ ๋งŽ์ด ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋•๋ถ„์— ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šฐ๋Š” ์‹œ๊ฐ„์ด ๋˜์—ˆ๊ณ , ๊ทธ๋Ÿฌ๋‹ค ๋ณด๋‹ˆ ์ผ์ฃผ์ผ์ด ์ •๋ง ๋น ๋ฅด๊ฒŒ ์ง€๋‚˜๊ฐ„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ ์˜ค๋žœ๊ธฐ๊ฐ„ ๊ฐœ๋ฐœ์„ ํ•ด์˜ค๋ฉด์„œ ์ฃผ์„ ๋˜ํ•œ ๊ด€๋ฆฌ์˜ ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์€ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๋ถ€๋ถ„์ด๋ผ ์•„์ง๋„ ๋ต..ํ•ฉ๋‹ˆ๋‹ค..!

PR์— ์•ž์„œ ๋‹ค์‹œ ์ข‹์€ ํ”ผ๋“œ๋ฐฑ ์ฃผ์…”์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค..!

์ฒดํฌ ๋ฆฌ์ŠคํŠธ

  • ๋ฏธ์…˜์˜ ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ–ˆ๋‚˜์š”?
  • Gradle test๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ†ต๊ณผํ–ˆ๋‚˜์š”?
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋‚˜์š”?

์–ด๋–ค ๋ถ€๋ถ„์— ์ง‘์ค‘ํ•˜์—ฌ ๋ฆฌ๋ทฐํ•ด์•ผ ํ• ๊นŒ์š”?

  1. ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜(Players)๊ณผ ์ˆ˜์ต ๊ณ„์‚ฐ ์œ„์น˜

์ƒํ™ฉ
์‚ฌ์ดํด 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์˜ ์—ญํ•  ๊ฒฝ๊ณ„

์ƒํ™ฉ

blackjackGame์— ๋Œ€ํ•ด์„œ ์•„๋ž˜ ๊ทœ์น™์„ ์ ์šฉํ•ด๋ณด๋Š”๊ฑด ์–ด๋–จ๊นŒ์š”? getter๋ฅผ ์™œ ์ œ๊ฑฐํ•˜๋ผ๊ณ  ํ•˜๋Š”์ง€๋„ ์ƒ๊ฐํ•ด๋ณด์‹œ์ฃ !
๊ฐ์ฒด์ง€ํ–ฅ ์ƒํ™œ ์ฒด์กฐ ์›์น™
๊ทœ์น™ 9: ๊ฒŒํ„ฐ/์„ธํ„ฐ/ํ”„๋กœํผํ‹ฐ๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

-> getter๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋Œ€์‹  ์„œ๋น„์Šค๊ฐ€ ์™œ ๊ฒŒํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์“ฐ๊ฒŒ ๋๋Š”์ง€๋ฅผ ๋ณด๊ณ , ๊ทธ ์ด์œ ๋ฅผ ๋‹ค์‹œ game์—์„œ ํ•˜๋„๋ก ํ•˜๋‹ค๋ณด๋‹ˆ, ๋Œ€๋ถ€๋ถ„์˜ ์„œ๋น„์Šค ๋กœ์ง๋“ค์ด Game์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ Game์ด ๊ฒŒ์ž„ ์ง„ํ–‰ ๋กœ์งโ€์„, Service๊ฐ€ โ€œGame ์ƒ์„ฑ + Game ์œ„์ž„ + DTO ๋ณ€ํ™˜โ€์„ ๋งก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

blackJackRule์ด ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์— ํ•ด๋‹นํ•˜์ง€ ์•Š์„๊นŒ์š”? ๊ทธ๋ ‡๋‹ค๋ณด๋‹ˆ BlackjackGame์ด ๋‹จ์ˆœํžˆ ๊ป๋ฐ๊ธฐ ์—ญํ• ๋กœ๋งŒ ๋ฐ”๋€Œ๋Š”๊ฒƒ ๊ฐ™๋„ค์š”. blackJackGame๋‚ด๋ถ€์—์„œ ์ฒ˜๋ฆฌํ•ด๋ณด๋Š”๊ฑด ์–ด๋–จ๊นŒ์š”?
-> ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒ์ˆ˜๋งŒ ๋‚จ๊ฒจ๋†“๊ณ  ๊ฐ ํ•„์š”ํ•œ ๋„๋ฉ”์ธ์œผ๋กœ ๋ฉ”์Šค๋“œ๋ฅผ ์ด๋™์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์„œ๋น„์Šค ํด๋ž˜์Šค์˜ ์—ญํ• ์€ ๋„๋ฉ”์ธ์„ ์ง์ ‘ ์ปจํŠธ๋กค๋Ÿฌ์— ๋ฐ˜ํ™˜ ํ•˜๊ธฐ ๋ณด๋‹จ DTO๋ฅผ ๋ณ€ํ™˜ํ•ด์„œ ์ฃผ๋Š”๋ฐ ์˜๋ฏธ๋ฅผ ๋‘๊ณ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ ๋ฏผ
Service์˜ ์—ญํ• ์ด DTO ๋ณ€ํ™˜๊ณผ blackjackGame.xxx() ํ•œ ๋ฒˆ๋งŒ ํ˜ธ์ถœํ•˜๋Š” ๋‹จ์ˆœ ์œ„์ž„์ด๋ผ, ์ฒ˜์Œ๋ถ€ํ„ฐ ์„œ๋น„์Šค ๋ ˆ์ด์–ด๋ฅผ ๋‘์ง€ ๋ง์•˜์–ด์•ผ ํ–ˆ๋‚˜ ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ฆฌ๋ทฐ ์š”์ฒญ

  • ์ง€๊ธˆ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ โ€œService = ์ง„์ž…์  + DTOโ€ ์—ญํ• ๋งŒ ๋ช…์‹œํ• ์ง€
  • Service ๋ ˆ์ด์–ด๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  Controller๊ฐ€ Game์„ ์ง์ ‘ ์“ธ์ง€

๊ธฐ๋ก ์˜ ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.!

์‹œ๊ฐ„ ๋‚ด์–ด ๋ฆฌ๋ทฐํ•ด ์ฃผ์…”์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค..!

wonsang.choi added 30 commits March 4, 2026 17:33
- score() ๋ฉ”์†Œ๋“œ ์˜์กด์„ฑ ๋ณ€๊ฒฝ
- controller ๊ธฐ๋Šฅ๋ณ„ ๋ฉ”์†Œ๋“œ ๋ถ„๋ฆฌ
- dto ํŒจํ‚ค์ง€ ๋ณ€๊ฒฝ
wonsang.choi added 17 commits March 10, 2026 14:17
- Deck.cardsํ•„๋“œ๋ฅผ Set์œผ๋กœ ์ „ํ™˜ํ•ด์„œ ์ค‘๋ณต์— ๋Œ€ํ•œ ๋ฌธ์ œ ๋ฐฉ์ง€
- Deck.draw() ์—์„œ finally ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ์ฝ”๋“œ ํ๋ฆ„์œผ๋กœ ๊ฐœ์„ 
fix: hit&Stand ๋กœ์ง ์˜ค๋ฅ˜ ์ˆ˜์ •
- DefaultBlackjackRule: judge๋ฅผ Participant ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณ€๊ฒฝ, BLACKJACK ๊ฒฐ๊ณผ ์ถ”๊ฐ€
- ๊ฐ ํ”Œ๋ ˆ์ด์–ด ๋ณ„ ๋ฐฐํŒ… ๊ธˆ์•ก ์ž…๋ ฅ ๋ฐ›์Œ
Copy link

@Gyuchool Gyuchool left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์•ˆ๋…•ํ•˜์„ธ์š” ์—๋ด
์‚ฌ์ดํด2 ๋ฏธ์…˜ ์ง„ํ–‰ํ•˜์‹œ๋А๋ผ ๊ณ ์ƒํ•˜์…จ์Šต๋‹ˆ๋‹ค!! ์ž˜ ๊ตฌํ˜„ํ•ด์ฃผ์…จ๋„ค์š”๐Ÿ‘

๋ช‡ ๊ฐ€์ง€ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ฒจ๋‘์—ˆ์œผ๋‹ˆ ๋ฐ˜์˜ ๋ฐ ์˜๊ฒฌ ์ฃผ์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.๐Ÿ™
๊ถ๊ธˆํ•œ ์ ์€ DM์ด๋‚˜ PR ์ปค๋ฉ˜ํŠธ๋กœ ์–ธ์ œ๋“ ์ง€ ์—ฌ์ญค๋ด์ฃผ์„ธ์š”!

  1. BlackjackGame์ด Players.getPlayerList()๋กœ ์ปฌ๋ ‰์…˜์„ ๊ฐ€์ ธ์™€ ์ˆœํšŒํ•˜๋ฉด์„œ ์ˆ˜์ต์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹
  2. 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;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์—๋ด์ด ์ƒ๊ฐํ•˜์‹œ๊ธฐ์— blackJackController์™€ blackJackService์˜ ๊ฐ๊ฐ ์—ญํ• ์ด ๋ฌด์—‡์ผ๊นŒ์š”?
ํ˜„์žฌ๋Š” ๋กœ์ง์ด Controller์— ๋” ๋งŽ์€ ๊ฒƒ ๊ฐ™์€๋ฐ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ค๊นŒ์š”?

Copy link
Author

@RealTake RealTake Mar 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BlackJackController
View๋กœ๋ถ€ํ„ฐ ๊ฒŒ์ž„์— ํ•„์š”ํ•œ ์ž…๋ ฅ์„ ๋ฐ›๊ณ , ๊ฐ€๊ณตํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

BlackJackService
๋ธ”๋ž™์žญ ๊ฒŒ์ž„ ์ง„ํ–‰์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ ๊ฐ์ฒด๋“ค์„ ์กฐํ•ฉํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ „์ฒด์ ์ธ ๊ฒŒ์ž„ ํ๋ฆ„์„ ๋งŒ๋“œ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ตฌ์กฐ์—์„œ๋Š” ๋ธ”๋ž™์žญ ๊ฒŒ์ž„์˜ ์ฃผ์š” ๋กœ์ง ๋Œ€๋ถ€๋ถ„์ด BlackjackGame ๋„๋ฉ”์ธ ๊ฐ์ฒด์— ์œ„์น˜ํ•ด ์žˆ์–ด์„œ, ์ƒ๋Œ€์ ์œผ๋กœ Service์˜ ๋กœ์ง์ด ๋งŽ์•„ ๋ณด์ด๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ Controller์—์„œ๋Š” View์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ์–ป์€ ๋ฐ์ดํ„ฐ๋ฅผ Service๋กœ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ๋งŒ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ง€๊ธˆ ์ƒ๊ฐ์œผ๋กœ๋Š” ๊ตฌ์กฐ์ ์œผ๋กœ ํฐ ๋ฌธ์ œ๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Copy link
Author

@RealTake RealTake left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ธฐ๋ก !
ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ๊ตฌ์กฐ๋ฅผ ์—ฌ๋Ÿฌ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ”๊ฟ”๋ณด๋ฉฐ ์ด๊ฒƒ์ €๊ฒƒ ์‹œ๋„ํ•ด ๋ณด๋А๋ผ ๋‹ต๋ณ€์ด ๋งŽ์ด ๋Šฆ์–ด์กŒ์Šต๋‹ˆ๋‹ค...

์ˆ˜์ต ๊ณ„์‚ฐ๊ณผ ์ŠนํŒจ ๋กœ์ง์„ ์ ์ ˆํ•œ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•ด๋ณด๋ ค๊ณ  ์—ฌ๋Ÿฌ ๋ฐฉ์‹์œผ๋กœ ๊ณ ๋ฏผํ•˜๊ณ  ์‹œ๋„ํ•ด ๋ณด์•˜๋Š”๋ฐ, ํ˜„์žฌ๋Š” ์šฐ์„  ์ง€๊ธˆ์˜ ๊ตฌ์กฐ๋กœ ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์•„์ง ์ด ๋ฐฉ์‹์ด ๋งž๋Š” ๋ฐฉํ–ฅ์ธ์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์ €๋„ ํ™•์‹ ์ด ์„œ์ง€ ์•Š๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ๋Š” Game ๋„๋ฉ”์ธ ๊ฐ์ฒด๊ฐ€ ์ง์ ‘ ์ „์ฒด ํ๋ฆ„์„ ๊ด€๋ฆฌํ•˜๊ธฐ๋ณด๋‹ค๋Š”, Service ๋ ˆ์ด์–ด์—์„œ ์œ ์Šค์ผ€์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํ•„์š”ํ•œ ๋„๋ฉ”์ธ๋“ค์„ ์กฐํ•ฉํ•˜๋Š” ๋ฐฉ์‹์ด ๋” ์ ์ ˆํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•ด ์ด๋Ÿฐ ๊ตฌ์กฐ๋กœ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ง€๊ธˆ๋„ ์ด ๋ฐฉํ–ฅ์ด ๊ดœ์ฐฎ์€์ง€์— ๋Œ€ํ•œ ์ž์‹ ์ด ์—†์Šต๋‹ˆ๋‹ค..
๊ธฐ์กด์˜ ๊ตฌ์กฐ์ฒ˜๋Ÿผ Game ๋„๋ฉ”์ธ์ด ํ๋ฆ„์„ ๋” ๋งŽ์ด ๊ฐ€์ ธ๊ฐ€๋Š” ๊ตฌ์กฐ๊ฐ€ ๋” ์ž์—ฐ์Šค๋Ÿฌ์šด์ง€์— ๋Œ€ํ•ด์„œ๋„ ์˜๊ฒฌ์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค...!ใ…œใ…œ

import team.blackjack.view.OutputView;

public class BlackJackController {
private final BlackJackService blackJackService;
Copy link
Author

@RealTake RealTake Mar 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BlackJackController
View๋กœ๋ถ€ํ„ฐ ๊ฒŒ์ž„์— ํ•„์š”ํ•œ ์ž…๋ ฅ์„ ๋ฐ›๊ณ , ๊ฐ€๊ณตํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

BlackJackService
๋ธ”๋ž™์žญ ๊ฒŒ์ž„ ์ง„ํ–‰์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ ๊ฐ์ฒด๋“ค์„ ์กฐํ•ฉํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ „์ฒด์ ์ธ ๊ฒŒ์ž„ ํ๋ฆ„์„ ๋งŒ๋“œ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ตฌ์กฐ์—์„œ๋Š” ๋ธ”๋ž™์žญ ๊ฒŒ์ž„์˜ ์ฃผ์š” ๋กœ์ง ๋Œ€๋ถ€๋ถ„์ด BlackjackGame ๋„๋ฉ”์ธ ๊ฐ์ฒด์— ์œ„์น˜ํ•ด ์žˆ์–ด์„œ, ์ƒ๋Œ€์ ์œผ๋กœ Service์˜ ๋กœ์ง์ด ๋งŽ์•„ ๋ณด์ด๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ Controller์—์„œ๋Š” View์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ์–ป์€ ๋ฐ์ดํ„ฐ๋ฅผ Service๋กœ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ๋งŒ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ง€๊ธˆ ์ƒ๊ฐ์œผ๋กœ๋Š” ๊ตฌ์กฐ์ ์œผ๋กœ ํฐ ๋ฌธ์ œ๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Copy link

@Gyuchool Gyuchool left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์•ˆ๋…•ํ•˜์„ธ์š” ์—๋ด
๋ฆฌ๋ทฐ ๋ฐ˜์˜ ๋ฐ ์˜๊ฒฌ์ฃผ์‹  ๊ฒƒ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค!!๐Ÿ‘
๋‹ค๋งŒ, ์‹คํ–‰ํ–ˆ์„๋•Œ ์‚ฌ์ง„(c๊ฐ€ ๋ฒ„์ŠคํŠธ์ธ๋ฐ ๋ฝ‘๊ธฐ ๊ฐ€๋Šฅ)์ฒ˜๋Ÿผ ๊ธฐ๋Œ€ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์•ˆ๋‚˜์™€์„œ ์ด๋ถ€๋ถ„๋งŒ ํ™•์ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค๐Ÿ™

์ด์™ธ์— ๋ช‡ ๊ฐ€์ง€ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ฒจ๋‘์—ˆ์œผ๋‹ˆ ๋ฐ˜์˜ ๋ฐ ์˜๊ฒฌ ์ฃผ์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.๐Ÿ™
๊ถ๊ธˆํ•œ ์ ์€ DM์ด๋‚˜ PR ์ปค๋ฉ˜ํŠธ๋กœ ์–ธ์ œ๋“ ์ง€ ์—ฌ์ญค๋ด์ฃผ์„ธ์š”!

Image

import team.blackjack.service.dto.DrawResult;
import team.blackjack.service.dto.ScoreResult;

public class BlackjackService {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ํ˜„์žฌ๋Š” Game ๋„๋ฉ”์ธ ๊ฐ์ฒด๊ฐ€ ์ง์ ‘ ์ „์ฒด ํ๋ฆ„์„ ๊ด€๋ฆฌํ•˜๊ธฐ๋ณด๋‹ค๋Š”, Service ๋ ˆ์ด์–ด์—์„œ ์œ ์Šค์ผ€์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํ•„์š”ํ•œ ๋„๋ฉ”์ธ๋“ค์„ ์กฐํ•ฉํ•˜๋Š” ๋ฐฉ์‹์ด ๋” ์ ์ ˆํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•ด ์ด๋Ÿฐ ๊ตฌ์กฐ๋กœ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ง€๊ธˆ๋„ ์ด ๋ฐฉํ–ฅ์ด ๊ดœ์ฐฎ์€์ง€์— ๋Œ€ํ•œ ์ž์‹ ์ด ์—†์Šต๋‹ˆ๋‹ค..
๊ธฐ์กด์˜ ๊ตฌ์กฐ์ฒ˜๋Ÿผ Game ๋„๋ฉ”์ธ์ด ํ๋ฆ„์„ ๋” ๋งŽ์ด ๊ฐ€์ ธ๊ฐ€๋Š” ๊ตฌ์กฐ๊ฐ€ ๋” ์ž์—ฐ์Šค๋Ÿฌ์šด์ง€์— ๋Œ€ํ•ด์„œ๋„ ์˜๊ฒฌ์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค...!ใ…œใ…œ

Game๋„๋ฉ”์ธ์€ ์ œ๊ฑฐ๊ฐ€ ๋˜์—ˆ๊ตฐ์š”?! blackJackService๊ฐ€ Player, Delaer, judge๋ฅผ ๋‹ค๋ฃจ๋ฉด ์–ด๋–จ๊นŒ์š”? ๊ฐ์ฒด ์ƒ์„ฑ๋„ blackJackService initํ• ๋•Œ ๋งŒ๋“ค์–ด์ค„ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋„ค์š”..!

Copy link
Author

@RealTake RealTake Mar 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ํ”ผ๋“œ๋ฐฑ ์ˆ˜์šฉํ•ด๋ดค์Šต๋‹ˆ๋‹ค!
์„œ๋น„์Šค๊ฐ€ ํ•„๋“œ๋กœ ๋„๋ฉ”์ธ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€๊ณ  ์ƒ์„ฑ์ž๋กœ ์ž…๋ ฅ๋ฐ›์•„์„œ ํƒœ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ๋กœ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค!

๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ํ”ผ๋“œ๋ฐฑ์„ ์ž˜๋ชป ์ดํ•ดํ•œ๋“ฏ ์‹ถ์Šต๋‹ˆ๋‹ค...
ํ•„๋“œ๋กœ ๋„๋ฉ”์ธ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๊ณ , ์ƒ์„ฑ๋งŒ ์„œ๋น„์Šค์—์„œํ•˜๊ณ  ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ฆฌํ„ด๋ฐ›์•„ ํ•ธ๋“ค๋งํ•˜๋„๋ก ํ–ˆ์—ˆ์–ด์•ผ ํ–ˆ์„๊นŒ์š”?ใ…œ

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ฆฌํ„ด๋ฐ›์•„ ํ•ธ๋“ค๋งํ•˜๋ฉด ์–ด๋–ค ์žฅ์ ์ด ์žˆ์„๊นŒ์š”?
์—๋ด์˜ ์ƒ๊ฐ์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค!

์œ„ ์งˆ๋ฌธ์ด ์–ด๋–ป๊ฒŒ๋ณด๋ฉด ์ฒ˜์Œ ๋ฆฌ๋ทฐ ์š”์ฒญํ–ˆ์„๋•Œ ์งˆ๋ฌธ๊ณผ๋„ ๊ฐ™์€ ์ƒํ™ฉ์ธ๊ฒƒ ๊ฐ™์€๋ฐ์š”.

์ง€๊ธˆ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ โ€œService = ์ง„์ž…์  + DTOโ€ ์—ญํ• ๋งŒ ๋ช…์‹œํ• ์ง€
Service ๋ ˆ์ด์–ด๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  Controller๊ฐ€ Game์„ ์ง์ ‘ ์“ธ์ง€
๊ธฐ๋ก ์˜ ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.!

์ €๋Š” ์‚ฌ์‹ค ํ›„์ž๊ฐ€ ๋” ์‘์ง‘๋„๋ฅผ ๋†’์ด๊ณ  ๊ฐ์ฒด๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ž˜ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”. ๊ทธ๋ž˜์„œ ํ›„์ž์˜ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋Œ๋„๋ก ๋ฆฌ๋ทฐ๋ฅผ ๋‚จ๊ฒผ์—ˆ์Šต๋‹ˆ๋‹ค( ์˜๋„๊ฐ€ ์ „๋‹ฌ๋˜์—ˆ๊ธธ ๋ฐ”๋ผ๋„ค์š”๐Ÿฅฒ )

๋ธ”๋ž™์žญ ๊ฒŒ์ž„์€ ๋ ˆ์ด์–ด๋ฅผ ๋‚˜๋ˆŒ๋งŒํผ ๋ณต์žกํ•˜์ง€ ์•Š๊ณ  ์˜คํžˆ๋ ค ๋ ˆ์ด์–ด๋ฅผ ๋‘์–ด์„œ ์ƒ๊ธฐ๋Š” ๋ณต์žก์„ฑ์ด ๋” ํฌ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”..! ๋ ˆ์ด์–ด๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€ ๊ณ ๋ฏผํ•ด๋ณด์‹œ๊ณ  ์—๋ด๋งŒ์˜ ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™๋„ค์š”(์ปค๋ฉ˜ํŠธ๋กœ ๊ณต์œ ํ•ด์ฃผ์…”๋„ ์ข‹์Šต๋‹ˆ๋‹ค ใ…Žใ…Ž)๐Ÿ‘

wonsang.choi added 2 commits March 18, 2026 19:19
fix(BlackjackJudge): ๋”œ๋Ÿฌ๊ฐ€ ๋ฒ„์ŠคํŠธ๋œ ๊ฒฝ์šฐ, ํ”Œ๋ ˆ์ด์–ด์˜ ๋ธ”๋ž™์žญ์ด ๋‹จ์ˆœ ์Šน๋ฆฌ๋กœ ๊ณ„์‚ฐ๋˜๋Š” ํ˜„์ƒ ์ˆ˜์ •
refactor: ์ˆ˜์ต ๊ณ„์‚ฐ ๋กœ์ง BlackjackJudge๋กœ ์ด๋™
@RealTake
Copy link
Author

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ธฐ๋ก !
๋จผ์ € ๋ง์”€ํ•ด์ฃผ์‹  ์˜ค๋ฅ˜๋Š” ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค!

ํ”ผ๋“œ๋ฐฑ ์ฃผ์‹  ๋‚ด์šฉ๋„ ๋‚˜๋ฆ„๋Œ€๋กœ ๋ฐ˜์˜ํ•ด ๋ณด์•˜๋Š”๋ฐ, ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋ณด๋‹ˆ ์ œ๊ฐ€ ํ”ผ๋“œ๋ฐฑ์„ ์ž˜๋ชป ์ดํ•ดํ•œ ๊ฒƒ์€ ์•„๋‹Œ์ง€ ์กฐ๊ธˆ ๊ฑฑ์ •์ด ๋ฉ๋‹ˆ๋‹ค.
ํ˜น์‹œ ์ œ๊ฐ€ ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ์ดํ•ดํ•œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋ง์”€ํ•ด ์ฃผ์‹œ๋ฉด ๋‹ค์‹œ ๊ณ ๋ฏผํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ps.
ํ˜„์žฌ ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ๋Œ์•„๋ณด๋ฉด์„œ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์„œ๋น„์Šค ๊ณ„์ธต์„ ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋Ÿฐ์ง€.. ๋˜๋Š” ์•„์ง ์ฑ…์ž„์„ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐ ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์•„ ๊ฐœ์„ ํ•ด๋ณด๊ณ ์ž ์˜ค๋ธŒ์ ํŠธ๋ผ๋Š” ์ฑ…์„ ์ฝ์–ด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค..!

Copy link

@Gyuchool Gyuchool left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์•ˆ๋…•ํ•˜์„ธ์š” ์—๋ด
ํ”ผ๋“œ๋ฐฑ์„ ์ž˜ ๋ฐ˜์˜ํ•ด์ฃผ์…จ๋„ค์š”!!๐Ÿ‘ ๋‹ค์Œ ๋ฏธ์…˜์„ ์œ„ํ•ด ๋จธ์ง€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค:)

๋จธ์ง€๋Š” ํ•˜์˜€์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ฒจ๋‘์—ˆ์œผ๋‹ˆ ๋ฐ˜์˜ ๋ฐ ์˜๊ฒฌ ์ฃผ์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.๐Ÿ™
๊ถ๊ธˆํ•œ ์ ์€ DM์ด๋‚˜ PR ์ปค๋ฉ˜ํŠธ๋กœ ์–ธ์ œ๋“ ์ง€ ์—ฌ์ญค๋ด์ฃผ์„ธ์š”!

๋‹ค์Œ ๋ฏธ์…˜๋„ ํ™”์ดํŒ…์ž…๋‹ˆ๋‹ค๐Ÿ’ช๐Ÿ’ช

Comment on lines +3 to +10
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;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Controller๊ฐ€ ๋„๋ฉ”์ธ ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜์ง€์•Š๊ฒŒ ๋˜์—ˆ๊ตฐ์š”๐Ÿ‘


public void run() {

final LinkedHashSet<String> playerNames = readPlayerNames();
Copy link

@Gyuchool Gyuchool Mar 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
final LinkedHashSet<String> playerNames = readPlayerNames();
final Set<String> playerNames = readPlayerNames();

์ธํ„ฐํŽ˜์ด์Šค ํƒ€์ž…์œผ๋กœ ์ง€์ •ํ•˜๋Š”๊ฒŒ ๋” ์ข‹์•„๋ณด์ž…๋‹ˆ๋‹ค:)

println("%s์˜ ์˜ ๋ฐฐํŒ… ๊ธˆ์•ก์€?".formatted(playerName));
}

public static void printWrongBattingMoneyInputMessage() {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋Š” ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”๐Ÿ’ช

import team.blackjack.service.dto.DrawResult;
import team.blackjack.service.dto.ScoreResult;

public class BlackjackService {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ฆฌํ„ด๋ฐ›์•„ ํ•ธ๋“ค๋งํ•˜๋ฉด ์–ด๋–ค ์žฅ์ ์ด ์žˆ์„๊นŒ์š”?
์—๋ด์˜ ์ƒ๊ฐ์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค!

์œ„ ์งˆ๋ฌธ์ด ์–ด๋–ป๊ฒŒ๋ณด๋ฉด ์ฒ˜์Œ ๋ฆฌ๋ทฐ ์š”์ฒญํ–ˆ์„๋•Œ ์งˆ๋ฌธ๊ณผ๋„ ๊ฐ™์€ ์ƒํ™ฉ์ธ๊ฒƒ ๊ฐ™์€๋ฐ์š”.

์ง€๊ธˆ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ โ€œService = ์ง„์ž…์  + DTOโ€ ์—ญํ• ๋งŒ ๋ช…์‹œํ• ์ง€
Service ๋ ˆ์ด์–ด๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  Controller๊ฐ€ Game์„ ์ง์ ‘ ์“ธ์ง€
๊ธฐ๋ก ์˜ ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.!

์ €๋Š” ์‚ฌ์‹ค ํ›„์ž๊ฐ€ ๋” ์‘์ง‘๋„๋ฅผ ๋†’์ด๊ณ  ๊ฐ์ฒด๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ž˜ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”. ๊ทธ๋ž˜์„œ ํ›„์ž์˜ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋Œ๋„๋ก ๋ฆฌ๋ทฐ๋ฅผ ๋‚จ๊ฒผ์—ˆ์Šต๋‹ˆ๋‹ค( ์˜๋„๊ฐ€ ์ „๋‹ฌ๋˜์—ˆ๊ธธ ๋ฐ”๋ผ๋„ค์š”๐Ÿฅฒ )

๋ธ”๋ž™์žญ ๊ฒŒ์ž„์€ ๋ ˆ์ด์–ด๋ฅผ ๋‚˜๋ˆŒ๋งŒํผ ๋ณต์žกํ•˜์ง€ ์•Š๊ณ  ์˜คํžˆ๋ ค ๋ ˆ์ด์–ด๋ฅผ ๋‘์–ด์„œ ์ƒ๊ธฐ๋Š” ๋ณต์žก์„ฑ์ด ๋” ํฌ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”..! ๋ ˆ์ด์–ด๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€ ๊ณ ๋ฏผํ•ด๋ณด์‹œ๊ณ  ์—๋ด๋งŒ์˜ ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™๋„ค์š”(์ปค๋ฉ˜ํŠธ๋กœ ๊ณต์œ ํ•ด์ฃผ์…”๋„ ์ข‹์Šต๋‹ˆ๋‹ค ใ…Žใ…Ž)๐Ÿ‘

Comment on lines +96 to +98
final List<String> dealerCardNames = dealer.getCards().stream()
.map(Card::getCardName)
.toList();

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

class PlayerResult {
    private final Player player;
    private final Result result;
}

๊ฐœ์ธ์ ์œผ๋ก  Map์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด์„œ ๋„˜๊ธฐ๋Š”๊ฒƒ๋ณด๋‹ค ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์„œ ๋„˜๊ธฐ๋ฉด ์˜๋ฏธ๊ฐ€ ๋ถ„๋ช…ํžˆ ์ „๋‹ฌ๋˜์ง€์•Š์„๊นŒ ์‹ถ๋„ค์š” :)

@Gyuchool Gyuchool merged commit 11b9516 into woowacourse:realtake Mar 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants