Skip to content

[๐Ÿš€ ์‚ฌ์ดํด2 - ๋ฏธ์…˜ (๊ธฐ๋ฌผ ํ™•์žฅ + DB ์ ์šฉ)] ๋ฃจ๋”” ๋ฏธ์…˜ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.#351

Open
Seonwu-K wants to merge 22 commits intowoowacourse:seonwu-kfrom
Seonwu-K:step2

Conversation

@Seonwu-K
Copy link
Copy Markdown

@Seonwu-K Seonwu-K commented Apr 10, 2026

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

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

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

์•ˆ๋…•ํ•˜์„ธ์š” ์ œ๋‚˜, ์ด๋ฒˆ์—๋„ ๋น„๊ต์  ๋Šฆ์€ ์‹œ๊ฐ„์— ์š”์ฒญ์„ ์˜ฌ๋ฆฌ๊ฒŒ ๋œ ์ง€๊ฐ์ƒ ๋ฃจ๋””์ž…๋‹ˆ๋‹ค ๐Ÿฅฒ

์ด๋ฒˆ PR์—์„œ๋Š” ๊ถ์„ฑ ํŠน์ˆ˜ ๊ทœ์น™, ์ ์ˆ˜ ๊ณ„์‚ฐ, ๊ฒŒ์ž„ ์ŠนํŒจํŒ์ •(์™•์ด ์žกํ˜”๋Š”์ง€)์™€ ์ง„ํ–‰ ๋„์ค‘ ์ข…๋ฃŒ ์‹œ ๊ฒŒ์ž„ ์žฌ๊ฐœ(DB ํ™œ์šฉ) ๊ธฐ๋Šฅ ๋“ฑ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌํ˜„์„ ์ ์ ˆํ•˜๊ฒŒ ํ–ˆ๋Š”์ง€,DB ๋„์ž…, ์„ค๊ณ„, ์‚ฌ์šฉ ๋ฐฉ์‹ ๋“ฑ์ด ์ ์ ˆํ–ˆ๋Š”์ง€๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ์•„๋ž˜ ์„ค๊ณ„ ํŒ๋‹จ์— ๋Œ€ํ•ด์„œ ํŠนํžˆ ํ”ผ๋“œ๋ฐฑ ๋ฐ›๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

1. Tell, Donโ€™t Ask ์ ์šฉ ์ˆ˜์ค€์ด ์ ์ ˆํ•œ์ง€

์ด๋ฒˆ ์žฅ๊ธฐ ๋ฏธ์…˜ ๋™์•ˆ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ค‘์—์„œ๋„ ๊ฐ€์žฅ ์˜์‹ํ•˜๋ฉด์„œ ์ ์šฉํ•˜๊ณ ์ž ํ–ˆ๋˜ ๋ถ€๋ถ„์ด ์ด TDA๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์ดํด1~2 ๋‚ด๋‚ด ์ด๋ฅผ ์ตœ๋Œ€ํ•œ ๋ฐ˜์˜ํ•ด๋ณด๊ณ ์ž ํ•˜์˜€๋Š”๋ฐ ๊ทธ ๊ณผ์ •์—์„œ ์ด '๋ฌป์ง€ ๋ง๊ณ  ์ง์ ‘ ์‹œํ‚จ๋‹ค'๋Š” ํ•ญ์ƒ ์ •๋‹ต์ด ๋  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์€ ์•„๋‹˜์„ ๋А๋ผ๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

ํ˜„์žฌ ์ €์˜ ์ฝ”๋“œ์—๋„ TDA๋ฅผ ์‹œ๋„ํ•œ ๋ถ€๋ถ„๊ณผ, ์„ ํƒ์ ์œผ๋กœ ๋‹ค๋ฅธ ์šฐ์„ ์ˆœ์œ„(์ถ”์ƒํ™”, ํ•ด๋‹น ๊ฐ์ฒด์˜ ์ฑ…์ž„์ด ์ ์ ˆํ•˜๋‹ค๋Š” ํŒ๋‹จ ๋“ฑ)๋ฅผ ๊ณ ๋ คํ•˜์—ฌ TDA ๋Œ€์‹  ์ง์ ‘ ๊ฐ’์„ ๊บผ๋‚ด ์กฐ๋ฆฝํ•˜๊ธฐ๋„ ํ•˜๋Š” ์ƒํ™ฉ์ด ์„ž์—ฌ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ํŒ๋‹จ์ด ์ ์ ˆํ–ˆ์„์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. (์ด ๋ถ€๋ถ„์ด ์–ด๋–ค ์ฝ”๋“œ์ธ์ง€๋Š” ํ•ด๋‹น ์ฝ”๋“œ์— ์ฝ”๋ฉ˜ํŠธ๋กœ ๋‚จ๊ฒจ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.)

2. ๊ฐ์ฒด ์ˆ˜์™€ ์ฑ…์ž„ ๋ถ„๋ฆฌ๊ฐ€ ๊ณผํ•œ์ง€

์ด๋ฒˆ PR๊ณผ ์ด์ „ ์‚ฌ์ดํด๊นŒ์ง€ ํฌํ•จํ•ด Game, GameStatus, FormationType, GameRepository, H2GameRepository, Palace, PalaceRouteGenerator, ์ ์ˆ˜ ์ •์ฑ… ๊ฐ์ฒด ๋“ฑ ์˜๋ฏธ๋ฅผ ๋ถ„๋ฆฌํ•œ ๊ฐ์ฒด๋“ค์ด ๊ณ„์† ๋Š˜์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.

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

  • ์ง€๊ธˆ์˜ ๋ถ„๋ฆฌ๊ฐ€ ๋„๋ฉ”์ธ ์˜๋ฏธ๋ฅผ ์ž˜ ๋“œ๋Ÿฌ๋‚ด๋Š” ์ˆ˜์ค€์ธ์ง€
  • ์•„๋‹ˆ๋ฉด ์ž‘์€ ์ฑ…์ž„๊นŒ์ง€ ๋„ˆ๋ฌด ์ž˜๊ฒŒ ์ชผ๊ฐœ์„œ ์˜คํžˆ๋ ค ์ฝ๊ธฐ ์–ด๋ ค์›Œ์กŒ๋Š”์ง€
  • ๊ฐ’ ๊ฐ์ฒด/์—”ํ‹ฐํ‹ฐ/์ •์ฑ… ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ์ค€์ด ํ˜„์žฌ ์ฝ”๋“œ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์ ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€
    ๊ฐ€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

3. ์‘์ง‘๋„์™€ ๊ฒฐํ•ฉ๋„ ๊ด€์ ์—์„œ ํ˜„์žฌ ๊ตฌ์กฐ๊ฐ€ ๊ดœ์ฐฎ์€์ง€

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

๊ทธ๋ž˜์„œ ํ˜„์žฌ ์ฝ”๋“œ๊ฐ€ ์•„๋ž˜ ๊ด€์ ์—์„œ ์–ด๋А ์ •๋„ ์ ์ ˆํ•œ์ง€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

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

Seonwu-K added 22 commits April 8, 2026 18:37
this.pieceScorePolicy = pieceScorePolicy;
}

public PieceScore calculate(Board board) {
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.

์ ์ˆ˜ ๊ทœ์น™์€ ๊ณ„์‚ฐ๊ณผ ์ •์ฑ…์„ ๋ถ„๋ฆฌํ–ˆ์ง€๋งŒ, ์—ฌ์ „ํžˆ Board์—์„œ ๋ชฉ๋ก์„ ๊บผ๋‚ด๊ณ  PieceType์„ ๊ธฐ์ค€์œผ๋กœ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๋„ ๋ถ„๋ฆฌ๋Š” ์ ์ ˆํ•œ์ง€, ๋” ๊ฐ์ฒด์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ์ชฝ์ด ๋‚˜์„์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

import strategy.move.RookMoveStrategy;

public class Piece {
private static final PalaceRouteGenerator PALACE_ROUTE_GENERATOR = new PalaceRouteGenerator();
Copy link
Copy Markdown
Author

@Seonwu-K Seonwu-K Apr 10, 2026

Choose a reason for hiding this comment

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

๊ถ์„ฑ ๊ทœ์น™์€ Piece๊ฐ€ PalaceRouteGenerator๋ฅผ ๊ฐ€์ง€๊ณ  ํ˜‘๋ ฅํ•˜๋„๋ก ๊ตฌํ˜„ํ•ด๋ดค์Šต๋‹ˆ๋‹ค.
์ด ํŒ๋‹จ์€ ์ ์ ˆํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

๊ถ์„ฑ ์ด๋™๋„ ๊ฒฐ๊ตญ ๊ธฐ๋ฌผ์˜ ์ด๋™ ๊ทœ์น™์ด๋‹ˆ Piece ์— ์žˆ๋Š” ๊ฒƒ์ด ์ ์ ˆํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ง€๊ธˆ Piece๊ฐ€ "์–ด๋–ค ๊ธฐ๋ฌผ์€ ์ „๋žต์œผ๋กœ, ์–ด๋–ค ๊ธฐ๋ฌผ์€ Palace๋กœ"๋ฅผ ์ง์ ‘ ํŒ๋‹จํ•˜๋Š” ์กฐ๊ฑด ๋ถ„๊ธฐ์˜ ์ฑ…์ž„๊นŒ์ง€ ์งŠ์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

KING/GUARD๋„ ์ž์‹ ๋งŒ์˜ MoveStrategy๋ฅผ ๊ฐ–๋„๋ก ํ•˜๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”? Optional์„ ํ•„๋“œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•ˆํ‹ฐํŒจํ„ด์ด๋ผ, ์ด๋ถ€๋ถ„๋„ ๊ฐœ์„ ์ด ๋  ๊ฒƒ. ใ…ใ…Œ. ๋„คใ…›.

this.newGameFactory = newGameFactory;
}

public void run() {
Copy link
Copy Markdown
Author

@Seonwu-K Seonwu-K Apr 10, 2026

Choose a reason for hiding this comment

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

๊ฒŒ์ž„ ํ๋ฆ„ ์ „์ฒด์—์„œ๋Š” Game์„ ๋„์ž…ํ•ด ๋ฃจํ”„ ์ œ์–ด์™€ ์ƒํƒœ ๋ณ€๊ฒฝ์€ ๋ฉ”์‹œ์ง€๋กœ ์˜ฎ๊ฒผ์ง€๋งŒ, ์„ ํƒ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ฌผ/๊ฒฝ๋กœ ์กฐํšŒ์™€ ๊ฒ€์ฆ์€ ์—ฌ์ „ํžˆ GameRunner๊ฐ€ ์ง์ ‘ ์กฐํ•ฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฌผ๋ก  ๋„๋ฉ”์ธ ๊ทœ์น™์„ ์•„์˜ˆ ๋ชจ๋ฅด๋Š” ์ƒํƒœ๋กœ ์—„๊ฒฉํžˆ ๊ณ„์ธต๊ฐ„ ํ๋ฆ„๋งŒ ์กฐ์œจํ•˜๋Š” '์ปจํŠธ๋กค๋Ÿฌ'์™€๋Š” ๋‹ฌ๋ฆฌ GameRunner๋Š” ๋„๋ฉ”์ธ ๊ทœ์น™์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ๊ฐ€์ง€๋ฉด์„œ ํ๋ฆ„ ์ฒ˜๋ฆฌ๋ฅผ ๋•๋Š” ์—ญํ• ๋กœ์„œ ์„ค๊ณ„ํ•˜์˜€์œผ๋‚˜, ํ˜„์žฌ์˜ ๋กœ์ง์€ ๋Ÿฌ๋„ˆ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์•Œ์•„๋„ ๋˜๋Š” ๋งŒํผ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๋งž๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

์„ ํƒ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ฌผ/๊ฒฝ๋กœ ์กฐํšŒ๋Š” "์‚ฌ์šฉ์ž์—๊ฒŒ ๋ญ˜ ๋ณด์—ฌ์ฃผ๊ณ  ๋ญ˜ ์ž…๋ ฅ๋ฐ›์„์ง€"์— ๋Œ€ํ•œ ํŒ๋‹จ์ด๋ผ Runner๊ฐ€ ์•Œ์•„๋„ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ˜„์žฌ playTurn() ์—์„œ๋Š”,

  1. ์™•์ด ์žกํžˆ๋ฉด ๊ฒŒ์ž„์ด ๋๋‚œ๋‹ค
  2. ์™•์ด ์•ˆ ์žกํ˜”์œผ๋ฉด ํ„ด์„ ๋„˜๊ธด๋‹ค

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

"์žฅ๊ธฐ์˜ ๊ทœ์น™"์€ Game ์ด ์•Œ๊ฒŒ ํ•˜๋„๋ก ๊ฐœ์„ ํ•ด๋ด…์‹œ๋‹ค.

@@ -0,0 +1,36 @@
package domain.game;

import strategy.formation.InitialFormationStrategy;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

FormationType์ด ๋„๋ฉ”์ธ ํŒจํ‚ค์ง€์— ์žˆ์ง€๋งŒ ์ „๋žต ํŒจํ‚ค์ง€์— ์˜์กดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ โ†’ ์ „๋žต ๋ฐฉํ–ฅ์˜ ์˜์กด์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ์ „๋žต์ด ๋„๋ฉ”์ธ์— ์˜์กดํ•˜๋Š” ๊ฒƒ์ด ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ฐฉํ–ฅ์ž…๋‹ˆ๋‹ค.


final MoveResult moveResult = MoveResult.from(destinationPiece);
pieces.remove(currentPosition);
pieces.put(destination, piece);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Board.move์—์„œ ์žกํžŒ ๊ธฐ๋ฌผ์„ Map์—์„œ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
pieces.put(destination, piece)๊ฐ€ ๊ธฐ์กด ๊ฐ’์„ ๋ฎ์–ด์“ฐ๋ฏ€๋กœ ๊ฒฐ๊ณผ์ ์œผ๋กœ ์žกํžŒ ๊ธฐ๋ฌผ์€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๋™์ž‘์€ ๋งž์ง€๋งŒ, ์žกํžŒ ๊ธฐ๋ฌผ์˜ ์ œ๊ฑฐ๊ฐ€ put์˜ ๋ถ€์ˆ˜ํšจ๊ณผ๋กœ ์•”๋ฌต์ ์œผ๋กœ ์ผ์–ด๋‚œ๋‹ค๋Š” ์ ์ด ๊ฐ€๋…์„ฑ์„ ๋–จ์–ด๋œจ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

return id;
}

public void assignId(Long id) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Repository์—์„œ save ํ›„ ID๋ฅผ ์ฃผ์ž…ํ•˜๋Š” ํŒจํ„ด์ธ๋ฐ, Game์ด ์ž์‹ ์˜ ์‹๋ณ„์ž๊ฐ€ ๋‚˜์ค‘์— ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋ณ€ ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. save ์‹œ ์ƒˆ Game ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์ด ๋” ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค

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