Skip to content

[๐Ÿš€ ์‚ฌ์ดํด2 - ๋ฏธ์…˜ (๋ธ”๋ž™์žญ ๋ฒ ํŒ…)] ๋ฃจ๋”” ๋ฏธ์…˜ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.#1107

Merged
jurlring merged 114 commits intowoowacourse:seonwu-kfrom
Seonwu-K:step2
Mar 19, 2026

Conversation

@Seonwu-K
Copy link
Copy Markdown

@Seonwu-K Seonwu-K commented Mar 13, 2026

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

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

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

๋ธ”๋ž™์žญ2 PR ๋ฆฌ๋ทฐ ์š”์ฒญ

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

์ด๋ฒˆ ๋ฏธ์…˜์—์„œ๋Š” ํŠนํžˆ ์„ค๊ณ„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •์—์„œ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จํ•˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•œ ์กฐ์–ธ์„ ์–ป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.


1. Controller ๋„์ž…์— ๋Œ€ํ•œ ๊ณ ๋ฏผ

์ด๋ฒˆ ๋ฏธ์…˜์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๊ณ ๋ฏผํ–ˆ๋˜ ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๋Š” Controller๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ด ๋งž๋Š”๊ฐ€์˜€์Šต๋‹ˆ๋‹ค.

ํฌ๋ฃจ๋“ค๊ณผ ํ† ๋ก ์„ ์ง„ํ–‰ํ•˜๋˜ ์ค‘, ์ง€๋‚˜๊ฐ€๋˜ ์ฝ”์น˜๋‹˜์ด '์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์™œ ์‚ฌ์šฉํ•ด์š”?' ๋ผ๋Š” ์งˆ๋ฌธ์„ ๋˜์ง€๊ณ  ๊ฐ€์…จ๋Š”๋ฐ, ์ด๋ฒˆ ๋ฏธ์…˜์— ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ ์šฉํ–ˆ๋˜ ๊ฒƒ์ด ์˜ณ์•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์ดํ•ดํ•œ Controller์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Model๊ณผ View ์‚ฌ์ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• 
  • ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ ๊ฐ์ฒด๋ฅผ ํ๋ฆ„์— ๋งž๊ฒŒ ํ˜ธ์ถœํ•˜๋Š” ์—ญํ• 
  • ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ ์‚ฌ์ด์—์„œ ๊ฒŒ์ž„ ์ง„ํ–‰ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ์—ญํ• 

์ €๋Š” ๊ฒŒ์ž„์˜ ์ „์ฒด ํ๋ฆ„์„ ๋‹ด๋‹นํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ , ๊ทธ ์—ญํ• ์„ Controller๊ฐ€ ๋งก๋Š” ๊ฒƒ์ด ์ž์—ฐ์Šค๋Ÿฝ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ๋ฆ„์„ Controller์—์„œ ๋‹ด๋‹นํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ํ”Œ๋ ˆ์ด์–ด ์ž…๋ ฅ ์ฒ˜๋ฆฌ
  • ๊ฒŒ์ž„ ์ง„ํ–‰ ํ๋ฆ„ ์ œ์–ด
  • ๋„๋ฉ”์ธ ๊ฐ์ฒด ํ˜ธ์ถœ
  • View์™€ ์ƒํ˜ธ์ž‘์šฉ

ํ•˜์ง€๋งŒ ํฌ๋ฃจ๋“ค๊ณผ ๋ฆฌ๋ทฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ณผ์ •์—์„œ ์ด๋Ÿฐ ์ƒ๊ฐ๋„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๊ตณ์ด Controller๊ฐ€ ์—†์–ด๋„, ๋„๋ฉ”์ธ ๊ฐ์ฒด๋“ค๋ผ๋ฆฌ ์‘์ง‘์„ฑ ์žˆ๊ฒŒ ํ˜‘๋ ฅํ•˜๋„๋ก ๋งŒ๋“ค๊ณ 
์™ธ๋ถ€์—์„œ๋Š” ๋‹จ์ˆœํžˆ ํ•˜๋‚˜์˜ ์ง„์ž… ๋ฉ”์„œ๋“œ๋งŒ ํ˜ธ์ถœํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์ง€ ์•Š์•˜์„๊นŒ?

๊ทธ๋ž˜์„œ PR์„ ์ž‘์„ฑํ•˜๋Š” ์ˆœ๊ฐ„์—๋„ Controller๊ฐ€ ํ๋ฆ„์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ๊ผญ ํ•„์š”ํ–ˆ์„๊นŒ? ์— ๋Œ€ํ•ด์„œ๋Š” ๋ถ€์ •์ ์ธ ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค.

์งˆ๋ฌธ

์ฃผ๋””๊ฐ€ ์ƒ๊ฐํ•˜์‹œ๋Š”

  • Controller๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์€ ์–ด๋–ค ๊ฒฝ์šฐ์ธ์ง€
  • ์ด๋ฒˆ ๋ฏธ์…˜์—์„œ Controller๋ฅผ ๋„์ž…ํ•œ ์ œ ์„ ํƒ์ด ์˜ค๋ฒ„ ์—”์ง€๋‹ˆ์–ด๋ง์œผ๋กœ ๋А๊ปด์ง€์…จ๋Š”์ง€
  • ํ˜น์€ Controller ์—†์ด ๋„๋ฉ”์ธ ๊ฐ์ฒด ์ค‘์‹ฌ์œผ๋กœ ํ๋ฆ„์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ์ ‘๊ทผ์ด์—ˆ๋Š”์ง€

์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.


2. ์„ค๊ณ„ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ๋•Œ์˜ ๊ธฐ์ค€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ

์ด๋ฒˆ ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์„ค๊ณ„๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•˜๋Š” ์ˆœ๊ฐ„๋“ค์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณ ๋ฏผ๋“ค์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐฐํŒ… ๊ธˆ์•ก์„ Player๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•˜๋Š”๊ฐ€, ๋ณ„๋„์˜ ๊ฐ์ฒด๊ฐ€ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š”๊ฐ€
  • Result๋ฅผ ์ƒํƒœ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š”๊ฐ€, ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š”๊ฐ€
  • ๋”œ๋Ÿฌ์™€ ํ”Œ๋ ˆ์ด์–ด์˜ ์ƒ์† ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•  ๊ฒƒ์ธ๊ฐ€, ์ถ”์ƒํ™”๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค ๊ฒƒ์ธ๊ฐ€

์ด๋Ÿฐ ๊ณ ๋ฏผ๋“ค์„ ํ•  ๋•Œ๋งˆ๋‹ค ์Šค์Šค๋กœ ๋‚˜๋ฆ„์˜ ๊ธฐ์ค€์„ ์„ธ์›Œ ๊ฒฐ์ •์„ ๋‚ด๋ ธ์ง€๋งŒ
๊ทธ ๊ธฐ์ค€์ด ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ๊ด€์ ์—์„œ ์ ์ ˆํ•œ ๊ธฐ์ค€์ด์—ˆ๋Š”์ง€ ํ™•์‹ ์ด ์•„์ง๋„ ์„œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ฃผ๋””์—๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ถ€๋ถ„์„ ์งˆ๋ฌธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ

๋„๋ฉ”์ธ ์„ค๊ณ„๋ฅผ ํ•  ๋•Œ

  • ์—ฌ๋Ÿฌ ์„ค๊ณ„ ์„ ํƒ์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฒฐ์ •ํ•  ๋•Œ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จํ•˜์‹œ๋Š”์ง€
  • ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•œ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๊ฐ€ ์„ค๊ณ„ ๊ฒฐ์ •์„ ํ•  ๋•Œ ์ค‘์š”ํ•˜๊ฒŒ ์žก์•„์•ผ ํ•  ๊ธฐ์ค€์ด ๋ฌด์—‡์ธ์ง€

์— ๋Œ€ํ•ด ์กฐ์–ธ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.


3. ํ…Œ์ŠคํŠธ์™€ ์„ค๊ณ„์˜ ๊ด€๊ณ„์— ๋Œ€ํ•œ ๊ณ ๋ฏผ

์ด๋ฒˆ ๋ฏธ์…˜์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ๋А๋‚€ ์ ์€
ํ…Œ์ŠคํŠธ๊ฐ€ ์„ค๊ณ„๋ฅผ ์ด๋ˆ๋‹ค๋Š” ๊ฐ๊ฐ์ด ์•„์ง ์ต์ˆ™ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋„๋ฉ”์ธ ๋กœ์ง ์ค‘์‹ฌ ํ…Œ์ŠคํŠธ
  • ์ž…์ถœ๋ ฅ ๋กœ์ง์€ ํ…Œ์ŠคํŠธ ์ œ์™ธ
  • ๊ฒŒ์ž„ ์ „์ฒด ํ๋ฆ„์€ ์ผ๋ถ€๋งŒ ํ…Œ์ŠคํŠธ

์ฒ˜์Œ์—๋Š” TDD๋ฅผ ์‹œ๋„ํ•ด๋ณผ๊นŒ ํ•˜๋Š” ์ƒ๊ฐ์— ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์จ๋ณด๊ณ  ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ์žก์•„๊ฐ€๋ ค๋Š” ์‹œ๋„๋„ ํ•ด๋ณด์•˜์ง€๋งŒ ๋„์ €ํžˆ ๊ธฐ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ• ์ง€ ๊ตฌ์กฐ๊ฐ€ ๊ทธ๋ ค์ง€์ง€ ์•Š์•„ ๊ฒฐ๊ตญ ์ค‘๊ฐ„ ๋ถ€ํ„ฐ ํด๋ž˜์Šค ๊ตฌ์กฐ๋ฅผ ๋จผ์ € ๊ตฌ์ƒํ•ด๋‘๊ณ  ๋งž์ถฐ์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋Œ์•„๊ฐ„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ๋„

  • ์–ด๋–ค ๋ถ€๋ถ„๊นŒ์ง€ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•˜๋Š”์ง€
  • ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ค์šด ๊ตฌ์กฐ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์„ ๋•Œ ์„ค๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ์‰ฌ์›Œ์งˆ์ง€

ํŒ๋‹จ์ด ์ž˜ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด๋ฒˆ ๋ธ”๋ž™์žญ ๋ฏธ์…˜์ด ๋˜์ ธ์ค€ ํ•ต์‹ฌ ์งˆ๋ฌธ์ด๊ธฐ๋„ ํ–ˆ๋Š”๋ฐ ๋ฏธ์…˜ ๋งˆ๋ฌด๋ฆฌ ๋‹จ๊ณ„์— ๋“ค์–ด์„œ๋„ ์•„์ง ํ™•์‹ ์ด ์—†์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ

  • ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ค์šด ์ฝ”๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์„ ๋•Œ ์–ด๋–ค ์„ค๊ณ„ ๋ฌธ์ œ๋ฅผ ๋จผ์ € ์˜์‹ฌํ•˜์‹œ๋Š”์ง€
  • ํ…Œ์ŠคํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๊ณ„ํ•˜๋Š” ๊ฒฝํ—˜์€ ์–ด๋–ป๊ฒŒ ์—ฐ์Šตํ•ด์•ผ ํ• ์ง€

์— ๋Œ€ํ•ด ์กฐ์–ธ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.


4. ๋ฏธ์…˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๋„๋ฉ”์ธ ์„ค๊ณ„ ๊ธฐ์ค€์ด ์ถฉ๋Œํ•  ๋•Œ์˜ ํŒ๋‹จ ๊ธฐ์ค€

์ด์ „๋ถ€ํ„ฐ ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ด์–ด์ ธ์˜จ ๊ณ ๋ฏผ์ž…๋‹ˆ๋‹ค.

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

  • ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ 3๊ฐœ ์ด์ƒ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค
  • ์ปฌ๋ ‰์…˜์„ ํฌ์žฅํ•œ๋‹ค
  • getter ์‚ฌ์šฉ์„ ์ง€์–‘ํ•œ๋‹ค
  • ...

์ด ๊ทœ์น™๋“ค์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„๋ฅผ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•œ ์ข‹์€ ๊ฐ€์ด๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ตฌํ˜„ ๊ณผ์ •์—์„œ ํ•œ ๊ฐ€์ง€ ๊ณ ๋ฏผ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Player ๊ฐ์ฒด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํƒœ๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • name
  • hand
  • playerStatus

์ด ๊ฒฝ์šฐ ํ•„๋“œ ์ˆ˜๊ฐ€ 3๊ฐœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์ด ์ƒํ™ฉ์—์„œ ๋‘ ๊ฐ€์ง€ ์„ ํƒ์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ๋А๊ผˆ์Šต๋‹ˆ๋‹ค.

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

์ €๋Š” ์ด๋ฒˆ ๊ตฌํ˜„์—์„œ๋Š” ๋„๋ฉ”์ธ ๋ชจ๋ธ ๊ด€์ ์—์„œ ๋” ์ž์—ฐ์Šค๋Ÿฝ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ์„ค๊ณ„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

๋‹ค๋งŒ ์ด ํŒ๋‹จ์ด ์ ์ ˆํ•œ ์„ ํƒ์ด์—ˆ๋Š”์ง€๋Š” ์Šค์Šค๋กœ ํ™•์‹ ์ด ์„œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ด ๊ทœ์น™์„ ๊นจ๊ณ  ๋‚ด ์„ค๊ณ„ ํŒ๋‹จ์œผ๋กœ ๊ฒฐ์ •ํ•˜๊ธฐ๊นŒ์ง€ ๊ณ ๋ฏผํ•˜๋Š” ๋ฐ์—๋„ ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ

์ด๋Ÿฐ ์ƒํ™ฉ์ฒ˜๋Ÿผ

  • ์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ ์ œ์‹œ๋œ ์„ค๊ณ„ ์ œ์•ฝ
  • ๋„๋ฉ”์ธ ๋ชจ๋ธ ๊ด€์ ์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ์„ค๊ณ„

๊ฐ€ ์„œ๋กœ ์ถฉ๋Œํ•  ๋•Œ

์ฃผ๋””๋Š” ์–ด๋–ค ๊ธฐ์ค€์„ ๋” ์šฐ์„ ์ ์œผ๋กœ ๊ณ ๋ คํ•˜์‹œ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

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


๋งˆ์ง€๋ง‰์œผ๋กœ

์ด๋ฒˆ ๋ฏธ์…˜์—์„œ๋Š” ํŠนํžˆ ๋‹ค์Œ ์งˆ๋ฌธ๋“ค์„ ์Šค์Šค๋กœ ๊ณ„์† ๊ณ ๋ฏผํ•˜๋ฉฐ ๊ตฌํ˜„ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์‹œ ์™œ ๊ธฐ์กด ์ฝ”๋“œ๊ฐ€ ๊นจ์ง€๋Š”๊ฐ€?
  • ๋ณ€๊ฒฝ ๋ฒ”์œ„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ตฌ์กฐ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„๋ฅผ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š”๊ฐ€?

ํ˜น์‹œ ์ œ๊ฐ€ ๋†“์น˜๊ณ  ์žˆ๋Š” ์„ค๊ณ„ ๊ด€์ ์ด๋‚˜
๋” ๊ณ ๋ฏผํ•ด๋ณด๋ฉด ์ข‹์„ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์–ด๋–ค ํ”ผ๋“œ๋ฐฑ์ด๋“  ๊ฐ์‚ฌํžˆ ๋ฐฐ์šฐ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

tjdakf added 30 commits March 4, 2026 16:49
@Seonwu-K Seonwu-K requested review from jurlring March 16, 2026 14:00
Copy link
Copy Markdown

@jurlring jurlring left a comment

Choose a reason for hiding this comment

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

๋ฃจ๋”” ์•ˆ๋…•ํ•˜์„ธ์š”!
์ฝ”๋ฉ˜ํŠธ ๋ช‡๊ฐ€์ง€๋ž‘ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€ ๋‹ฌ์•„๋‘์—ˆ์Šต๋‹ˆ๋‹ค!
์‹œ๊ฐ„ ๊ดœ์ฐฎ์œผ์‹ค ๋•Œ ํ™•์ธํ•ด์ฃผ์„ธ์š”~!

import java.util.ArrayList;
import java.util.List;

public class DtoFactory {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

๊ณต๊ฐœ ๊ทœ์น™ ์ฐจ์ด๊ฐ€ ๋”œ๋Ÿฌ๋Š” ์นด๋“œ๋ฅผ ํ•œ์žฅ๋งŒ ๊ณต๊ฐœํ•˜๊ณ  ํ”Œ๋ ˆ์ด์–ด๋Š” ๋ฐ›์€ ์นด๋“œ 2์žฅ์„ ๋ชจ๋‘ ๊ณต๊ฐœํ•˜๋Š”๊ฑธ๊นŒ์š”? ๊ณต๊ฐœํ•  ์นด๋“œ openํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ƒํ™”ํ•˜๋ฉด ์•ˆ๋˜๋‚˜์š”?

Comment thread src/main/java/domain/BettingMoney.java Outdated
Comment on lines +7 to +10
private static final int MIN_BETTING_MONEY = 1;
private static final String INVALID_MESSAGE = "๋ฐฐํŒ… ๊ธˆ์•ก์€ 0๋ณด๋‹ค ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค.";

private final int value;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Integer.Max๋ณด๋‹ค ๋” ํฐ ๊ฐ’์ด ์˜ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ๐Ÿ˜ฑ ๋ธ”๋ž™์žญ์€ ๋„๋ฐ•์ž…๋‹ˆ๋‹ค..!!
๋ฐ์ดํ„ฐ ํƒ€์ž…์— ๋Œ€ํ•œ ๊ณ ๋ ค๋„ ํ•ด๋ณด์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Max๊ฐ’์€ ๋„๋ฉ”์ธ ๊ทœ์น™์ƒ์œผ๋กœ ์ •ํ•˜๋Š” ๊ฒƒ๋งŒ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ž์ฒด์˜ Max๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ ๋Š” ์ƒ๊ฐ์„ ๋ชปํ•ด๋ณธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ๐Ÿฅฒ

๋ธ”๋ž™์žญ์€ ๋„๋ฐ• ๊ฒŒ์ž„์ธ ๋งŒํผ ํฐ ๊ธˆ์•ก์ด ์˜ค๊ฐˆ ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ง€๊ธˆ๊นŒ์ง€ ํฐ ์ˆซ์ž๋ฅผ ๋‹ค๋ค„๋ณธ ์ ์ด ์—†๋‹ค๋ณด๋‹ˆ Integer๋ฉด ์ถฉ๋ถ„ํžˆ ํฐ ์ˆ˜๋ฅผ ๋‹ค๋ฃฌ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ™•์ธํ•ด๋ณด๋‹ˆ 20์–ต์ด ์ตœ๋Œ€๊ธฐ ๋•Œ๋ฌธ์— ๋ธ”๋ž™์žญ์ด๋ผ๋Š” ๋„๋ฉ”์ธ์—์„œ๋Š” ์ถฉ๋ถ„ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์š”.

์š”๊ตฌ์‚ฌํ•ญ์—์„œ ๋ฒ ํŒ…๋จธ๋‹ˆ์— ๋Œ€ํ•œ ์ƒํ•œ์ด ์กด์žฌํ•˜์ง€๋„ ์•Š๊ธฐ ๋–„๋ฌธ์— ์ถฉ๋ถ„ํ•œ ๊ธˆ์•ก ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋„๋ก Long์œผ๋กœ ์ˆ˜์ •ํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

Comment thread src/main/java/domain/Hand.java Outdated
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

์ˆ˜์ •ํ•ด์ฃผ์‹  ๋ถ€๋ถ„์ด ์ œ๊ฐ€ ์˜๋„ํ•œ๊ฒŒ ๋งž์Šต๋‹ˆ๋‹ค ๐Ÿ’ฏ

Comment thread src/main/java/view/InputView.java Outdated
Comment on lines +61 to +62
.map(String::trim)
.filter(c -> !c.isEmpty())
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

์ค‘๊ฐ„ ์—ฐ์‚ฐ์ด ์—ฌ๋Ÿฌ๋ฒˆ ์žˆ์–ด์„œ ๋ฌธ์ œ๋  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์–ด๋–ค ํฌ์ธํŠธ์ธ์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์•„์ง ์™„์ „ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
-> ๊ฐ€๋…์„ฑ ์ธก๋ฉด์—์„œ ๋ฆฌ๋ทฐ๋“œ๋ ธ์–ด์š”!
ํ•™์Šตํ•ด๋ณด์‹œ๋ฉด ์ข‹์„ ๊ฒƒ์€ stream์ด ๋ณด์ด๊ธธ๋ž˜ ๋ง์”€๋“œ๋ ธ๋˜ ๊ฒƒ์ด๊ณ , ์•„๋ฌด๋ž˜๋„ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ์—๋Š” ์ˆœ์„œ๋Œ€๋กœ๋ผ์„œ trim์„ ํ•˜๊ณ  ๋ฌธ์ž์—ด์ด ๋น„์—ˆ์œผ๋ฉด ์ œ์™ธ ๋ณด๋‹ค๋Š” ๋ฌธ์ž์—ด์ด ๋นˆ๊ฐ’์ด๋ฉด ์ œ์™ธ๊ฐ€ ์ข€ ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šฐ๋‹ˆ๊นŒ์š”~

Copy link
Copy Markdown

@kang-hyungu kang-hyungu left a comment

Choose a reason for hiding this comment

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

๋ฃจ๋”” ๋ช‡ ๊ฐ€์ง€ ํ”ผ๋“œ๋ฐฑ ๋‚จ๊ฒผ์–ด์š”
๊ถ๊ธˆํ•œ ์  ์žˆ์œผ๋ฉด ์งˆ๋ฌธ์ฃผ์„ธ์š”

private void registerPlayer() {
// TODO: ๋ฒ ํŒ… ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์‹œ ์ด๋ฆ„ ์ž…๋ ฅ ํ›„ ๊ฐ ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฒ ํŒ… ๊ธˆ์•ก๋„ ํ•จ๊ป˜ ๋“ฑ๋ก
while (true) {
try {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

2๋ށ์Šค๋ฅผ 1๋ށ์Šค๋กœ ์ค„์—ฌ๋ณด์„ธ์š”

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

try-catch ์—ญ์‹œ ๋ށ์Šค์— ํ•ด๋‹น๋˜๋Š” ๊ฒƒ์„ ๋†“์ณค๋„ค์š”
try-catch๋ถ€๋ถ„์„ ๋ฉ”์„œ๋“œ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ށ์Šค๋ฅผ ์ค„์—ฌ๋ณด์•˜์Šต๋‹ˆ๋‹ค

}

private void registerPlayersWithBettingMoney(List<Name> playerNames) {
List<BettingMoney> bettingMoneyList = new ArrayList<>();
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
List<BettingMoney> bettingMoneyList = new ArrayList<>();
List<BettingMoney> bettingMoneys = new ArrayList<>();

ํƒ€์ž…์— ์ด๋ฏธ List๊ฐ€ ์“ฐ์ด๊ณ  ์žˆ๋Š”๋ฐ ๋ณ€์ˆ˜๋ช…์— ๋˜ ํ‘œ์‹œํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ์š”?
๋ฆฌ์ŠคํŠธ์˜ ๋ณ€์ˆ˜๋ช…์€ ์˜์–ด๋ฌธ๋ฒ•๊ณผ ์ƒ๊ด€ ์—†์ด s๋ฅผ ๋ถ™์ด๊ธฐ๋„ ํ•˜๋‹ˆ ์ฐธ๊ณ ํ•˜์„ธ์š”

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

์ƒ๊ฐํ•ด๋ณด๋ฉด ๋ณ€์ˆ˜๋ช…์—๋Š” ๋ช…์‹œํ•  ํ•„์š”๊ฐ€ ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ฌธ๋ฒ•๊ณผ ์ƒ๊ด€์—†์ด s๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ์€ ์ฒ˜์Œ ์•Œ๊ฒŒ ๋˜์—ˆ์–ด์š”. ํ•ด๋‹น ๋ณ€์ˆ˜๋ช…์€ ์ˆ˜์ •ํ•ด๋‘๊ฒ ์Šต๋‹ˆ๋‹ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@@ -56,15 +67,24 @@ private void initGame() {
}

private void playPlayerTurn() {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

๋ฉ”์„œ๋“œ๋ช…์„ ๊ทธ๋ƒฅ play๋ผ๊ณ  ํ•ด๋„ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‚˜์š”?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

ํ”„๋ฆฌ์ฝ”์Šค์—์„œ ๊ณตํ†ต ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ๋ฉ”์„œ๋“œ ์ด๋ฆ„์ด ๊ธธ์–ด์ง€๋”๋ผ๋„ ํ™•์‹คํ•œ ์ด๋ฆ„์„ ์ง€์–ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์€ ๊ธฐ์–ต์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ์—์„œ๋Š” ๋”œ๋Ÿฌํ„ด๊ณผ ํ”Œ๋ ˆ์ด์–ดํ„ด์„ ๊ตฌ๋ถ„ํ•ด์„œ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜์Œ์— playPlayerTurn๊ณผ playDealerTurn์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ฝ๊ธฐ ์‰ฝ๋„๋ก ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ์ง€์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์‹คํ–‰ ๋กœ์ง์—์„œ ํ•ต์‹ฌ์€ ํ”Œ๋ ˆ์ด์–ด ํ„ด์ด๊ณ , ์ด๋ฏธ ๋‚ด๋ถ€์—์„œ playSinglePlayerTurn๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์–ด์„œ ๊ทธ๋ƒฅ play๋กœ ์ž‘์„ฑํ•˜๋Š”๊ฒŒ ๋” ๋ช…ํ™•ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋Š” play๋กœ ์ˆ˜์ •ํ•ด๋‘๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Result(String name) {
this.name = name;
}
if (player.isBust()) return BUST;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

if์ ˆ์— ๊ตฌ๋ฌธ์ด ์ฝ”๋“œ ํ•œ์ค„์ด๋ผ๋„ ์ค‘๊ด„ํ˜ธ ๋ถ™์ด์„ธ์š”
๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ƒ๊ฒจ์„œ ์ฝ”๋“œ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ์ค‘๊ด„ํ˜ธ ์ƒ๋žตํ•˜๋ฉด์„œ ์‹ค์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

๋ฉ”์„œ๋“œ ๋ผ์ธ ์ˆ˜์— ๋Œ€ํ•œ ์˜์‹ ๋•Œ๋ฌธ์— ์ƒ๋žต์„ ํ•˜๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
if ์ค‘๊ด„ํ˜ธ ์ œ์•ฝ์ด ์™œ ์žˆ๋Š”์ง€ ์˜๋ฌธ์ด์—ˆ๋Š”๋ฐ ์ฝ”๋“œ ์ˆ˜์ • ์‹œ ์‹ค์ˆ˜ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด์„œ ์˜€๊ตฐ์š”
์ˆ˜์ •ํ•ด๋‘๊ฒ ์Šต๋‹ˆ๋‹ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

import java.util.ArrayList;
import java.util.List;

public class GameManager {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

๊ฒŒ์ž„ ๋งค๋‹ˆ์ €๋ผ๋Š” ์ด๋ฆ„์„ ๋ณด๋ฉด ํŒ€์›์ด ์ด๊ฒŒ ๋ฌด์Šจ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ํŒŒ์•…์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?
๋ชจํ˜ธํ•œ ์ด๋ฆ„๋ณด๋‹ค ๋ธ”๋ž™์žญ์—์„œ ์“ฐ๋Š” ์šฉ์–ด๋ฅผ ํ™œ์šฉํ•ด๋ณด์„ธ์š”

Copy link
Copy Markdown
Author

@Seonwu-K Seonwu-K Mar 19, 2026

Choose a reason for hiding this comment

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

๋„๋ฉ”์ธ์„ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์ด ๋ดค์„ ๋–„ ๋™์ž‘์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋„ค์ด๋ฐ๊ณผ,
๋„๋ฉ”์ธ์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๋ดค์„ ๋•Œ ์–ด๋–ค ์—ญํ• ์ธ์ง€ ํ™•์‹คํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋„ค์ด๋ฐ ์ค‘์—์„œ ๊ณ ๋ฏผ์„ ํ•˜๋‹ค๊ฐ€ ์ „์ž๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํฌ๋ฃจ๋“ค์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด ๋ณด์•˜์„ ๋•Œ ๋„๋ฉ”์ธ ์šฉ์–ด๋ฅผ ํ™œ์šฉํ•œ ๋„ค์ด๋ฐ์ด ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ช…๋ฃŒํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ์ˆ˜์ •์„ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ GameManager ์™€ ๊ทธ ๋ฉ”์„œ๋“œ๋“ค์„ ๋ธ”๋ž™์žญ ์šฉ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜์ •ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

Q. ์‹ค๋ฌด์—์„œ๋„ ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ๋„๋ฉ”์ธ ์šฉ์–ด๋ฅผ ํ™œ์šฉํ•œ ๋„ค์ด๋ฐ์„ ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค

}

protected boolean hasTwoCards() {
return hand.size() == 2;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

2๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์ƒ์ˆ˜๋กœ ์ถ”์ถœํ•ด์„œ ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์„ ๋ถ™์—ฌ๋ณด์„ธ์š”

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

ํ•˜๋“œ์ฝ”๋”ฉ ๋œ ์ˆซ์ž๋ฅผ ์ถ”ํ›„ ์ˆ˜์ •ํ•œ๋‹ค๋Š”๊ฒŒ ๋†“์ณค๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด OutputView์—์„œ๋„ ์ดˆ๊ธฐ ํ•ธ๋“œ ์‚ฌ์ด์ฆˆ 2๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ƒ์ˆ˜๊ฐ€ ์žˆ์—ˆ์–ด์„œ ๋”ฐ๋กœ ๊ทœ์น™ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ๋ถˆ๋Ÿฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆ˜์ • ํ•ด๋ดค์–ด์š”

return hand.isBlackjack();
}

public void receiveCard(Card card) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

receive ๋Œ€์‹  ๊ฒŒ์ž„์—์„œ ์‹ค์ œ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด๋ฅผ ํ™œ์šฉํ•ด๋ณด์„ธ์š”

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

๋„๋ฉ”์ธ ํ–‰๋™์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ์กด GameManager์™€ ๊ทธ ๋ฉ”์„œ๋“œ๋“ค์—์„œ ๋ธ”๋ž™์žญ ์šฉ์–ด๋ฅผ ๋ฐ˜์˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
ex. drawPlayerCard๋ฅผ hit์œผ๋กœ

Participant์˜ receiveCard๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ์„ ํƒ ํ–‰๋™์ด ์•„๋‹ˆ๋ผ
์ „๋‹ฌ๋œ ์นด๋“œ๋ฅผ ์ƒํƒœ์— ๋ฐ˜์˜ํ•˜๋Š” ์—ญํ• ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜์—ฌ,
๋™์ผํ•œ ์šฉ์–ด์ธ hit์œผ๋กœ ๋Œ€์ฒด๋˜๋ฉด ํ˜ผ๋™์ด ์žˆ์„ ๊ฒƒ ๊ฐ™์•„ ์˜๋ฏธ๋ฅผ ๋“œ๋Ÿฌ๋‚ด๊ธฐ ์œ„ํ•ด addCard๋กœ ์ˆ˜์ •ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

hand.add(card);
}

public List<String> getHandToString() {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

์ด ๋ฉ”์„œ๋“œ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๊ฐ€ ๋ญ”๊ฐ€์š”?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Hand๋Š” Participant์˜ ๋‚ด๋ถ€ ์ƒํƒœ๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ,
์™ธ๋ถ€๊ฐ€ Hand์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค Participant๊ฐ€
ํ•„์š”ํ•œ ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ๋” ์ ์ ˆํ•˜๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ ํ˜„์žฌ getHandToString์€ ๋ช…ํ™•ํ•œ ์˜๋„๊ฐ€ ์ „๋‹ฌ๋˜์ง€ ์•Š๊ณ  ๊ตฌํ˜„ ์‹œ์ ์—์„œ ์ ์€ ์ด๋ฆ„์ด๋ผ
Participant์˜ ์˜๋„๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ „๋‹ฌ๋˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋” ์ ์ ˆํ•œ ํ‘œํ˜„์œผ๋กœ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด revealCards๋กœ ์ˆ˜์ •ํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜น์‹œ ๊ตฌ๊ตฌ๊ฐ€ ์งˆ๋ฌธ ์ฃผ์‹  ์˜๋„๊ฐ€ ๋‹จ์ˆœํžˆ ์ค‘๊ณ„ ์—ญํ• ์„ ํ•˜๋Š” getHandToString ๋ฉ”์„œ๋“œ ์ž์ฒด์— ๋Œ€ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ,
Hand์—์„œ ์นด๋“œ ์ •๋ณด๋ฅผ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ ์ž์ฒด์˜ ํ•„์š”์„ฑ์— ๋Œ€ํ•œ ๊ฒƒ์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.


public void receiveCard(Card card) {
players.forEach(player -> player.receiveCard(card));
public static Players of(List<Player> playersList) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ ์ด์œ ๊ฐ€ ๋ญ์ฃ ?
์ƒ์„ฑ์ž๋ฅผ ์จ๋„ ๋˜์ง€ ์•Š๋‚˜์š”?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

์ฒ˜์Œ์—๋Š” ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ์˜ ์žฅ์ ์ธ ์บก์Аํ™”์™€ ์˜๋„๊ฐ€ ๋“œ๋Ÿฌ๋‚˜๋Š” ๋„ค์ด๋ฐ์„ ๊ณ ๋ คํ•ด์„œ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๋ณ„๋„ ๊ฒ€์ฆ ์ฑ…์ž„๋„ ์—†๋Š” ๋‹จ์ˆœ ์ƒ์„ฑ๋งŒ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด ๋” ๋‹จ์ˆœํ•˜๊ณ  ์ž์—ฐ์Šค๋Ÿฌ์›Œ ๋ณด์—ฌ์„œ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

return List.copyOf(players);
}

public List<Player> getNonNaturalBlackJackPlayers() {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

NonNaturalBlackJackPlayers
์ด๊ฒŒ ๋ญ˜ ์˜๋ฏธํ•˜๋‚˜์š”? ์‹ค์ œ ๊ฒŒ์ž„์—์„œ ์“ฐ๋Š” ํ‘œํ˜„์ธ๊ฐ€์š”?
๋‹ค๋ฅธ ํŒ€์›์ด ๋ดค์„ ๋•Œ ๋ฐ”๋กœ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ค์šด ์ด๋ฆ„์€ ํ”ผํ•˜์„ธ์š”

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

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

Copy link
Copy Markdown

@jurlring jurlring left a comment

Choose a reason for hiding this comment

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

๋ฃจ๋”” ์•ˆ๋…•ํ•˜์„ธ์š”!

๊ตฌ๊ตฌ๋งˆ์„ ์ฃผ๋ฏผ์ด์…”์„œ ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์ด๋ฏธ ๋งŽ์ด ๋‹ฌ๋ ธ๋„ค์š”..ใ…Žใ…Ž ๋ˆˆ์— ๋„๋Š” ๋ช‡๊ฐœ๋งŒ ๋” ์ถ”๊ฐ€ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค!
์‹œ๊ฐ„ ๊ดœ์ฐฎ์œผ์‹ค ๋•Œ ํ™•์ธํ•ด์ฃผ์„ธ์š” :)

public class BettingMoneyTest {

@Test
void ๋ฐฐํŒ…๊ธˆ์•ก์€_0๋ณด๋‹ค_์ปค์•ผ_ํ•œ๋‹ค() {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

์ข€ ๋” ๋งŽ์€ ์—ฃ์ง€์ผ€์ด์Šค๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”!

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

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

Comment on lines +17 to +20
if (player.isBust()) return BUST;
if (player.isNaturalBlackJack()) return BLACKJACK;
if (playerScore > dealerScore) return WIN;
if (playerScore < dealerScore) return LOSE;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

๋”œ๋Ÿฌ๊ฐ€ 21์ ์ด ๋„˜์—ˆ์„ ๋•Œ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์•„์š”!

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‹ค ๋”œ๋Ÿฌ๊ฐ€ ๋ฒ„์ŠคํŠธ ๋œ ์ƒํ™ฉ์˜ ์ผ€์ด์Šค๋ฅผ ๋†“์นœ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.. ๐Ÿ˜‚

์ดˆ๊ธฐ ๊ตฌํ˜„์—์„œ๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ์ƒํƒœ๋ฅผ PlayerStatus๋กœ ๋ถ„๋ฆฌํ•˜๊ณ ,
naturalBlackJack ์—ฌ๋ถ€๋„ ํ•ด๋‹น ์ƒํƒœ ๊ฐ์ฒด์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์„ค๊ณ„ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค

๋†“์ณค๋˜ ๋”œ๋Ÿฌ bust, ๋™์‹œ ๋ธ”๋ž™์žญ ๋“ฑ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๋ฉด์„œ
๊ฒฐ๊ณผ ํŒ์ • ๋กœ์ง์„ ๋‹ค์‹œ ์‚ดํŽด๋ณด๋‹ˆ, naturalBlackJack์€ ํ”Œ๋ ˆ์ด์–ด ๋ฟ ์•„๋‹ˆ๋ผ ๋”œ๋Ÿฌ์—๊ฒŒ์„œ๋„ ํŒ๋‹จ ๋˜์–ด์•ผ ํ•˜๋Š” ๋กœ์ง์ด๋ผ PlayerStatus์—์„œ๋งŒ ์ฒดํฌํ•˜๋Š” ๊ฒƒ์€ ๋ถ€์ž์—ฐ์Šค๋Ÿฝ๋‹ค๊ณ  ํŒ๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ PlayerStatus์—์„œ naturalBlackJack์„ ์ œ๊ฑฐํ•˜๊ณ ,
Participant์—์„œ hasTwoCards()์™€ isBlackJack()์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐํ•˜๋„๋ก ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์—์„œ PlayerStatus์˜ ์—ญํ• ์ด ์ค„์–ด๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ œ๊ฑฐํ•˜๊ณ 
Player๊ฐ€ BettingMoney๋ฅผ ์ง์ ‘ ๊ฐ€์ง€๋„๋ก ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ดํ›„ Result.from() ๋กœ์ง์—์„œ

  • ๋”œ๋Ÿฌ bust ์‹œ ํ”Œ๋ ˆ์ด์–ด ์Šน๋ฆฌ
  • ํ”Œ๋ ˆ์ด์–ด์™€ ๋”œ๋Ÿฌ๊ฐ€ ๋™์‹œ์— ๋ธ”๋ž™์žญ์ธ ๊ฒฝ์šฐ ๋ฌด์Šน๋ถ€

๋“ฑ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค..!

Comment thread src/main/java/domain/card/Deck.java Outdated

public class Deck {
List<Card> cards = new ArrayList<>();
final List<Card> cards = new ArrayList<>();
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

final์€ ์ž˜ ๋ถ™์—ฌ์ฃผ์…จ์ง€๋งŒ ์ ‘๊ทผ์ œ์–ด์ž๋Š” ๋น ์ง„ ๊ฒƒ ๊ฐ™์•„์š” ๐Ÿ˜ข

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

์ ‘๊ทผ์ œ์–ด์ž๋ฅผ ์ž๊พธ ๋นผ๋จน๋„ค์š”.. ์˜์‹์ ์œผ๋กœ ๊ณ ์ณ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค
์ ‘๊ทผ์ œ์–ด์ž ๋ฐ˜์˜ํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค..!

import java.util.ArrayList;
import java.util.List;

public class DtoFactory {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

๋ฃจ๋”” ์žฌ๋ฐŒ๋Š” ๊ณ ๋ฏผ์„ ํ•˜์…จ๊ตฐ์š”! ใ…Žใ…Ž ํ•„์š”ํ•œ ๊ณ ๋ฏผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด์š”~

์ •๋‹ต์€ ์•„๋‹ˆ์ง€๋งŒ ์ œ ์ƒ๊ฐ์„ ๊ณต์œ ๋“œ๋ฆฌ๋ฉด์š”,

์ €๋Š” DTO ์ƒ์„ฑ์€ ๋„๋ฉ”์ธ์˜ ์ฑ…์ž„์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—, Players๊ฐ€ DTO ํ˜•ํƒœ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹๊นŒ์ง€ ๊ฐ€์ ธ๊ฐˆ ํ•„์š”๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋„๋ฉ”์ธ ๊ฐ์ฒด๊ฐ€ DTO์— ์˜์กดํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Š” ๋ ˆ์ด์–ด ์•„ํ‚คํ…์ฒ˜ ๊ด€์ ์—์„œ ๋„๋ฉ”์ธ โ†’ DTO ๋ฐฉํ–ฅ์˜ ์—ญ๋ฐฉํ–ฅ ์˜์กด์ด ์ƒ๊ธฐ๋Š” ๊ตฌ์กฐ๋ผ์„œ ์ง€์–‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”!
๋˜ํ•œ Players๊ฐ€ ์ž๊ธฐ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ• ์ง€๊นŒ์ง€ ์•Œ๊ฒŒ ๋˜๋Š” ๊ฒƒ์€ ์บก์Аํ™”๋ฅผ ๊ฐ•ํ™”ํ•˜๋Š” ๋ฐฉํ–ฅ์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š”, ์˜คํžˆ๋ ค ํ‘œํ˜„ ๊ณ„์ธต์˜ ์ฑ…์ž„๊นŒ์ง€ ๊ฐ€์ ธ์˜ค๋Š” ์ฑ…์ž„ ๊ณผ์ž‰์— ๊ฐ€๊นŒ์šด ์„ค๊ณ„๋ผ๊ณ  ๋А๊ปด์ง‘๋‹ˆ๋‹ค..!

Seonwu-K added 13 commits March 19, 2026 13:18
Copy link
Copy Markdown

@jurlring jurlring left a comment

Choose a reason for hiding this comment

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

๋ฃจ๋”” ์•ˆ๋…•ํ•˜์„ธ์š”!
๋ธ”๋ž™์žญ ๋ฏธ์…˜ ํ•˜์‹œ๋А๋ผ ์ •๋ง ๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค :)
๋‹ค์Œ ๋ฏธ์…˜๋„ ์ด๋ฒˆ์ฒ˜๋Ÿผ ์ž˜ ํ•˜์‹ค ๊ฒƒ ๊ฐ™์•„์š”~ ์‘์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

@jurlring jurlring merged commit 2a70bc4 into woowacourse:seonwu-k Mar 19, 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.

5 participants