Skip to content

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

Open
yj9107v wants to merge 77 commits intowoowacourse:yj9107vfrom
yj9107v:step2

Conversation

@yj9107v
Copy link
Copy Markdown

@yj9107v yj9107v commented Apr 9, 2026

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

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

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

1๏ธโƒฃ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ๋•Œ ์–ด๋–ค ์ ์„ ์กฐ์‹ฌํ•ด์•ผ ํ• ์ง€, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์œ„ํ•ด ์–ด๋–ค ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค

๊ถ์„ฑ ์˜์—ญ์ด ์ถ”๊ฐ€๋˜๋ฉด์„œ, ๊ถ์„ฑ ์—ฌ๋ถ€๋ฅผ Position์—์„œ ํŒ๋‹จํ• ์ง€ ์•„๋‹ˆ๋ฉด Palace ํด๋ž˜์Šค๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด ๊ด€๋ฆฌํ• ์ง€ ๊ณ ๋ฏผ์ด ์ปธ์Šต๋‹ˆ๋‹ค.
๊ณ ๋ฏผ ๋์— Position์ด ๊ถ์„ฑ ์˜์—ญ๊นŒ์ง€ ํ•จ๊ป˜ ๋‹ค๋ฃจ๋ฉด ์ฑ…์ž„์ด ๋ฌด๊ฑฐ์›Œ์ง„๋‹ค๊ณ  ์ƒ๊ฐํ•ด, Palace ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๊ถ์„ฑ ์˜์—ญ์„ ๊ด€๋ฆฌํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๊ธฐ๋ฌผ์˜ ์ด๋™ ์ „๋žต์—์„œ ๊ถ์„ฑ ์ •๋ณด๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก MoveStrategy ์ถ”์ƒ ํด๋ž˜์Šค์— Palace๋ฅผ ํ•„๋“œ๋กœ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ๊ฐ ์ด๋™ ์ „๋žต์ด Palace๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ์œ„์น˜๋‚˜ ๋ชฉ์ ์ง€๊ฐ€ ๊ถ์„ฑ ์˜์—ญ์ธ์ง€ ํŒ๋‹จํ•˜๊ณ  ์ด๋™ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ ๊ตฌํ˜„์„ ํ•˜๋ฉด์„œ, ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ๋” ๋‚˜์€ ์„ค๊ณ„๋ฅผ ํ•˜๋ ค๋ฉด ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ฐ์ด ์ž˜ ์žกํžˆ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์Šค์Šค๋กœ ๊ณ ๋ฏผํ•ด ๋ณด๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ, ์ข‹์€ ์„ค๊ณ„์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ์ง€์‹์ด ๋ถ€์กฑํ•˜๋‹ค๊ณ  ๋А๊ปด ๊ฒฐ๊ตญ์€ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์šฐ์„  ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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


2๏ธโƒฃ JDBC ์—ฐ๊ฒฐ์„ ๊ตฌํ˜„ํ•  ๋•Œ์˜ ๋ฐฉํ–ฅ์„ฑ๊ณผ, ํŠนํžˆ ์ง€์–‘ํ•ด์•ผ ํ•  ๋ถ€๋ถ„์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค

์ด๋ฒˆ ์š”๊ตฌ์‚ฌํ•ญ์—์„œ DB ์—ฐ๊ฒฐ์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š”๋ฐ, ๊ด€๋ จ ์ง€์‹๊ณผ ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•˜๋‹ค ๋ณด๋‹ˆ ํ•™์Šต๊ณผ ๊ตฌํ˜„์„ ๋ณ‘ํ–‰ํ•˜๋ฉด์„œ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๋จผ์ € ํฐ ๋ฐฉํ–ฅ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์žก๊ณ  ๊ตฌํ˜„์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ณต์›์— ํ•„์š”ํ•œ ๊ฒŒ์ž„ ์ƒํƒœ ์ •์˜
  2. Mapper ๊ตฌํ˜„
  3. Repository ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„
  4. ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ๋ฐ ๊ตฌํ˜„
  5. JDBC ๊ตฌํ˜„
  6. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—ฐ๊ฒฐ

์œ„์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ๊ตฌํ˜„์„ ์Œ“์•„ ๊ฐ€๋ฉฐ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ, ์ด ๋ฐฉํ–ฅ์ด ์ ์ ˆํ–ˆ๋Š”์ง€, ํ˜น์€ ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

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

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


yj9107v added 30 commits April 2, 2026 11:26
- DownwardSoldierMoveStrategy๋ฅผ RedSoldierMoveStrategy๋กœ ๋ณ€๊ฒฝ
- UpwardSoldierMoveStrategy๋ฅผ GreendSoldierMoveStrategy๋กœ ๋ณ€๊ฒฝ
- ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์œ„์น˜์— ์ƒ์ˆ˜ ์„ ์–ธ
- view ๋ฉ”์‹œ์ง€๋Š” view ํŒจํ‚ค์ง€ ๋‚ด์˜ message ํŒจํ‚ค์ง€๋กœ ๊ด€๋ฆฌ
- ์ดˆ/ํ•œ๋‚˜๋ผ์— ๋”ฐ๋ฅธ ๊ถ์„ฑ ์˜์—ญ ๊ตฌํ˜„
- Position์˜ ์ฑ…์ž„์ด ์ปค์งˆ๊นŒ๋ด Palace ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๊ถ์„ฑ ์˜์—ญ ์—ฌ๋ถ€ ํ™•์ธ
- ๋ชฉ์ ์ง€๊ฐ€ ๊ถ์„ฑ ์™ธ๋ถ€ ์‹œ ์˜ˆ์™ธ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
- ๊ถ์„ฑ ๋‚ด๋ถ€์—์„œ์˜ ์ด๋™ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋ฉ”์„œ๋“œ๋ฅผ ๊ถ์„ฑ ์•ˆ์—์„œ ์ด๋™ํ•˜๊ฒŒ ๋ณ€๊ฒฝ
- GeneralMoveStrategy, GuardMoveStrategy ๋‘ ํด๋ž˜์Šค isPalace() ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€
- isPalace() ๋ชฉ์ ์ง€๊ฐ€ ๊ถ์„ฑ ์™ธ๋ถ€์ผ ์‹œ ์˜ˆ์™ธ๋ฅผ ๋˜์ง
- canMoveTo()์—์„œ isPalace() ๋ฒ”์œ„ ๊ฒ€์ฆ ํ›„ ๋ชฉ์ ์ง€ ์ด๋™ ๊ฐ€๋Šฅํ•œ์ง€๋กœ ๋ณ€๊ฒฝ
- ๊ถ์„ฑ ์˜์—ญ์˜ ๊ฐ ๋ชจ์„œ๋ฆฌ์ธ ๊ฒฝ์šฐ ๊ถ์„ฑ ์ค‘์•™์œผ๋กœ ์ด๋™ ๊ฐ€๋Šฅ ํ…Œ์ŠคํŠธ
- ๊ถ์„ฑ ์˜์—ญ์˜ ์ค‘์•™์ธ ๊ฒฝ์šฐ ๊ฐ ๋ชจ์„œ๋ฆฌ๋กœ ์ด๋™ ๊ฐ€๋Šฅ ํ…Œ์ŠคํŠธ
- reachablePositionInPalace() ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€
1. ๊ถ์„ฑ ์˜์—ญ์˜ ๊ฐ ๋ชจ์„œ๋ฆฌ์ธ ๊ฒฝ์šฐ ๊ถ์„ฑ ์ค‘์•™์œผ๋กœ ์ด๋™ ์œ„์น˜ ๋ฐ˜ํ™˜
2. ๊ถ์„ฑ ์˜์—ญ์˜ ์ค‘์•™์ธ ๊ฒฝ์šฐ ๊ฐ ๋ชจ์„œ๋ฆฌ๋กœ ์ด๋™ ์œ„์น˜๋“ค ๋ฐ˜ํ™˜
3. ๊ถ์„ฑ ์˜์—ญ์—์„œ ๋Œ€๊ฐ ์ด๋™ ๋ถˆ๊ฐ€๋Šฅ ์‹œ ๋นˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜
- ๊ถ์„ฑ์˜ ์ค‘์•™ ์œ„์น˜์ธ ๊ฒฝ์šฐ ์ด๋™ ๊ฐ€๋Šฅํ•œ ์œ„์น˜ ์ถ”๊ฐ€
- ํ…Œ์ŠคํŠธ๋ช… ์ˆ˜์ •
- ๊ธฐ๋ณธ ์ƒํ•˜์ขŒ์šฐ ์ด๋™์—์„œ ๊ถ์„ฑ ์˜์—ญ์„ ๋„˜์–ด๊ฐ€๋ฉด ๋บ€๋‹ค.
- ๊ถ์„ฑ ์˜์—ญ์—์„œ ๋”ฐ๋ผ ๋Œ€๊ฐ ์ด๋™ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ชฉ์ ์ง€ ์ถ”๊ฐ€
- ๊ถ์„ฑ ๋ชจ์„œ๋ฆฌ์ธ ๊ฒฝ์šฐ ์ƒํ•˜์ขŒ์šฐ์—์„œ ๊ถ์„ฑ ์™ธ๋ถ€๋Š” ๋ชฉ์ ์ง€์— ๊ฐˆ ์ˆ˜ ์—†๋Š” ํ…Œ์ŠคํŠธ
- ํ…Œ์ŠคํŠธ๋ช… ๋ณ€๊ฒฝ
- ๊ถ์„ฑ ๋‚ด๋ถ€์— ๋”ฐ๋ฅธ ์ด๋™ ํ…Œ์ŠคํŠธ
1. ๊ถ์„ฑ ๋ชจ์„œ๋ฆฌ์ธ ๊ฒฝ์šฐ, ๊ถ์„ฑ ์ค‘์•™ ์ด๋™ ๊ฐ€๋Šฅ ํ…Œ์ŠคํŠธ
2. ๊ถ์„ฑ ์ค‘์•™์ธ ๊ฒฝ์šฐ, ์กธ์˜ ์ด๋™ ๋ฐฉํ–ฅ์˜ ์•ž ๋Œ€๊ฐ ์ด๋™ ๊ฐ€๋Šฅ ํ…Œ์ŠคํŠธ
3. ๊ถ์„ฑ ์ค‘์•™์—์„œ ๋’ท ๋Œ€๊ฐ์„ ์„ ์ฃผ์–ด๋„ ํ•ด๋‹น๋˜์ง€ ์•Š์€์ง€ ํ…Œ์ŠคํŠธ
- GreenSoldierMoveStrategy ํด๋ž˜์Šค๋ช… ์˜คํƒ€ ์ˆ˜์ •
- ๊ถ์„ฑ ๋‚ด๋ถ€์— ๋”ฐ๋ฅธ ์ด๋™ ๊ฐ€๋Šฅํ•œ ๋ชฉ์ ์ง€ ์ถ”๊ฐ€
1. ๊ถ์„ฑ ๋ชจ์„œ๋ฆฌ์ธ ๊ฒฝ์šฐ, ๊ถ์„ฑ ์ค‘์•™ ์ด๋™ ๊ฐ€๋Šฅ
2. ๊ถ์„ฑ ์ค‘์•™์ธ ๊ฒฝ์šฐ, ์กธ์˜ ์ด๋™ ๋ฐฉํ–ฅ์˜ ์•ž ๋Œ€๊ฐ ์ด๋™ ๊ฐ€๋Šฅ
3. ๊ถ์„ฑ ์ค‘์•™์—์„œ ๋’ท ๋Œ€๊ฐ์„ ์„ ์ฃผ์–ด๋„ ํ•ด๋‹น๋˜์ง€ ์•Š์Œ
- GreenSoldierMoveStrategy ํด๋ž˜์Šค๋ช… ์˜คํƒ€ ์ˆ˜์ •
- ๊ถ์„ฑ ์˜์—ญ์˜ ๋ชจ์„œ๋ฆฌ์ธ ๊ฒฝ์šฐ, ๋Œ€๊ฐ์ด๋™์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. ์ฐจ์˜ ์ด๋™ ๊ทœ์น™์— ๋”ฐ๋ผ ๋ฐ˜๋Œ€ํŽธ ๋Œ€๊ฐ์ด๋™๊นŒ์ง€ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
- ๊ถ์„ฑ ์˜์—ญ์˜ ๋ชจ์„œ๋ฆฌ์ธ ๊ฒฝ์šฐ, ๋Œ€๊ฐ์ด๋™์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. ์ฐจ์˜ ์ด๋™ ๊ทœ์น™์— ๋”ฐ๋ผ ๋ฐ˜๋Œ€ํŽธ ๋Œ€๊ฐ์ด๋™๊นŒ์ง€ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
yj9107v added 28 commits April 8, 2026 19:51
Copy link
Copy Markdown

@pkeugine pkeugine left a comment

Choose a reason for hiding this comment

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

์•ˆ๋…•ํ•˜์„ธ์š” ์™€์ด์ œ๋ฆฌ, PK์ž…๋‹ˆ๋‹ค.

์–ด์ œ ๋ฐ˜๊ฐ€์› ์–ด์š”~
์งง์€ ์‹œ๊ฐ„์ด์—ˆ์ง€๋งŒ ๋งŒ๋‚˜์„œ ์ฆ๊ฑฐ์› ๊ณ , ์ข‹์€ ์‹œ๊ฐ„ ๋ณด๋‚ธ ๋“ฏ ํ•˜๋„ค์š”.

์ €๋ฒˆ ์‚ฌ์ดํด์—์„œ ๋ฆฌํŒฉํ„ฐ๋ง์— ์ดˆ์ ์„ ๋งž์ท„์ฃ ,
๊ทธ ํ๋ฆ„์„ ์ž˜ ์ด์–ด๊ฐ€ ์ฃผ์…”์„œ PR์ด ์ข‹์•„์š”.
์ง€๊ธˆ ๋‹น์žฅ ๋จธ์ง€ํ•ด๋„ ๊ดœ์ฐฎ์„ ๋“ฏ ํ•˜๋„ค์š”.

๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๋ฆฌ๋ทฐ ํ…Œ๋งˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

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

๋‚ด์šฉ์ด ์ข€ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฝค ์žฌ๋ฐŒ์„๊ฑฐ์˜ˆ์š”.

ํ•˜๋‚˜์”ฉ ์ž˜ ์ƒ๊ฐํ•ด๋ณด๊ณ , ์™€์ด์ œ๋ฆฌ๋งŒ์˜ ๋Œ€์‘์„ (๋ฐ˜์˜ || ๋ฐ˜๋ฐ•) ๊ธฐ๋Œ€ํ• ๊ฒŒ์š”.
๋ฆฌ๋ทฐ ๋‹ค ํ™•์ธํ–ˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉด ๋ฐ”๋กœ ๋จธ์ง€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์–ผ๋งˆ ๋‚จ์ง€ ์•Š์€ ๋ฏธ์…˜, ๋๊นŒ์ง€ ํ™”์ดํŒ…์ž…๋‹ˆ๋‹ค.
๋ฐฉํ•™ ์ „๊นŒ์ง€ ๊ณ„์† ํ•ดํ”ผํ•ดํ‚นํ•˜์„ธ์š”!!! ๐Ÿช ๐Ÿช ๐Ÿช

import java.util.List;
import java.util.stream.Stream;

public class GeneralMoveStrategy extends MoveStrategy {
Copy link
Copy Markdown

@pkeugine pkeugine Apr 11, 2026

Choose a reason for hiding this comment

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

์‚ฌ์ดํด 1 ๋•Œ๋ถ€ํ„ฐ ๋ณด์ธ ํ˜„์ƒ์ธ๋ฐ, GeneralMoveStrategy ์™€ GuardMoveStrategy ๊ตฌํ˜„์ด ์™„์ „ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.
๋‹น์‹œ๋Š” ๊ถ์„ฑ ๊ตฌํ˜„์ด ๋‚จ์•„์žˆ๋˜ ๋•Œ๋ผ, ๋ฏธ๋ฆฌ ์ค‘๋ณต์„ ์—†์• ์ง€ ์•Š๋Š”๊ฒŒ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์–ด์š”.
์‹ค์ œ๋กœ ์ค‘๋ณต์ธ ๋กœ์ง์ธ์ง€, ๊ทธ๋ ‡๊ฒŒ ๋ณด์ด๊ธฐ๋งŒ ํ•˜๋Š”๊ฑด์ง€ ๊ฐ์ด ์™„๋ฒฝํžˆ ์žกํžˆ์ง€ ์•Š์œผ๋‹ˆ๊นŒ์š”.

๊ทธ๋Ÿฐ๋ฐ ์ง€๊ธˆ์€ ๋ชจ๋“  ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋‹ˆ ์•ˆ์‹ฌํ•˜๊ณ  ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ํ•ด๋ณผ ์ˆ˜ ์žˆ์„ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌ๋ฉด ์•„๋ž˜์˜ ์ฝ”๋ฉ˜ํŠธ๋กœ ์ธํ•œ ๋ณ€๊ฒฝ๋„ ํ•œ ๊ณณ๋งŒ ์žˆ์„ํ…Œ๊ณ ์š”.
ํ™•์‹คํ•œ ์ค‘๋ณต์„ ์ธ์ง€ํ•˜๊ณ  ์—†์• ๋ณด๋Š” ๊ฒฝํ—˜,
๊ทธ๋ฆฌ๊ณ  ์ค‘๋ณต ์ œ๊ฑฐ๋กœ ์ธํ•œ ๋ณ€๊ฒฝ ๋ฒ”์œ„ ์ตœ์†Œํ™”๋ฅผ ๊ฒฝํ—˜ํ•ด๋ด…์‹œ๋‹ค. :)

Comment on lines 12 to 16
@Override
public boolean canMoveTo(Position currentPosition, Position destination) {
validatePalaceArea(destination);
return createDestinations(currentPosition).contains(destination);
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

canMoveTo ๊ตฌํ˜„์„ ๋ชจ๋“  MoveStrategy์— ๊ฑธ์ณ ์ •๋ง ์ž˜ ๋งŒ๋“ค์–ด์ฃผ์…จ์–ด์š” ๐Ÿ‘
๊ทธ๋Ÿฐ๋ฐ GeneralMoveStrategy ์ชฝ์—์„œ๋Š” ๊ฒ€์ฆ์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฉด return false ๊ฐ€ ์•„๋‹Œ ์˜ˆ์™ธ๋ฅผ ๋˜์ ธ์š”.
์ด์™• boolean์„ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ, false ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์—์„œ false ์ผ ๋•Œ์˜ ์ž‘์—…์„ ์ด์–ด์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•ด๋ณด๋ฉด ์–ด๋–จ๊นŒ์š”?


public void initialize() {
try (Connection connection = dataSource.getConnection()) {
String sql = Files.readString(Path.of("src/main/resources/schema.sql"));
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

์—ฌ๊ธฐ Path.of("src/main/resources/schema.sql") ์€ ์–ด๋–ค ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ด์„๋ ๊นŒ์š”?

ํ•œ ๋ฒˆ ํ™•์ธ ์‚ผ์•„ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ๊ฐ€ ์•„๋‹Œ ๊ณณ์—์„œ ์‹คํ–‰ํ•ด๋ดค๋Š”๋ฐ, NoSuchFileException ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด์œ ๋Š” Path.of(...) ๊ฐ€ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ๊ธฐ์ค€ ์ƒ๋Œ€ ๊ฒฝ๋กœ์—ฌ์„œ์˜ˆ์š”.
์ง€๊ธˆ์€ ./gradlew run ์ด๋‚˜ IDE ๋กœ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์—์„œ ์‹คํ–‰ํ•˜๋‹ˆ๊นŒ ์šฐ์—ฐํžˆ ๋งž๋Š” ์ƒํƒœ๊ณ ์š”.

๊ทธ๋Ÿฐ๋ฐ ๋‚˜์ค‘์— JAR๋กœ ๋นŒ๋“œํ•ด์„œ ๋ฐฐํฌํ•˜๋ฉด ์–˜๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. (JAR ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ•œ ๋ฒˆ ํ•™์Šตํ•ด๋ณด์ฃ )
src/main/resources/ ๋Š” ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ๋ผ์„œ, ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ(JAR) ์—๋Š” ๊ทธ ํด๋” ์ž์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„์š”.
๋นŒ๋“œ ์‹œ์ ์— src/main/resources/ ์˜ ํŒŒ์ผ๋“ค์ด ์–ด๋””๋กœ ์ด๋™ํ•˜๋Š”์ง€,
๊ทธ๋ฆฌ๊ณ  ๋Ÿฐํƒ€์ž„์— ๊ทธ ํŒŒ์ผ์„ ์–ด๋–ป๊ฒŒ ์ฝ์–ด์•ผ ํ•˜๋Š”์ง€ ํ•œ๋ฒˆ ์ฐพ์•„๋ณด์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”.
๊ทธ๋ฆฌ๊ณ  ์ˆ˜์ •ํ•ด๋ณด์ฃ .

ํ”„๋กœ์ ํŠธ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋“ค๋„ ํ•œ ๋ฒˆ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

Comment on lines +42 to +47
private boolean isForwardDiagonalPosition(Position currentPosition, Position destination) {
return List.of(
currentPosition.upCrossLeft(),
currentPosition.upCrossRight())
.contains(destination);
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

์‚ฌ์ดํด 1์—์„œ๋„ up, down ๊ด€๋ จํ•˜์—ฌ ๋น„์Šทํ•œ ์–˜๊ธฐ๋ฅผ ๋‚˜๋ˆด๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ,
์™€์ด์ œ๋ฆฌ์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์ฝ”๋“œ ๋„ค์ด๋ฐ ๋ฐฉ์‹์„ ๋ดค์„ ๋•Œ ์ด ๋ฉ”์„œ๋“œ๋Š” ์ด๋ฆ„์ด ํ—ท๊ฐˆ๋ ค์š”.
ํ•œ ๋ฒˆ ํ™•์ธํ•ด๋ณด์‹œ๊ณ  ์™€์ด์ œ๋ฆฌ๋„ ๋™์˜ํ•œ๋‹ค๋ฉด ์ ์ ˆํ•˜๊ฒŒ ๋ฐ”๊ฟ”๋ณด์ฃ .

Comment on lines 33 to 37
private void playGame() {
OutputView.printBoard(janggiGame.allFactors());
OutputView.printCurrentPlayerTurn(janggiGame.gameStatus());
OutputView.printCurrentPlayerTurn(janggiGame.gameStatus().description());
execute(this::playerPhase);
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ƒ๋Œ€ ์žฅ๊ตฐ์„ ์žก๋Š” ์ˆœ๊ฐ„, ๋ณด๋“œ๋Š” ์–ด๋–ค ํ๋ฆ„์œผ๋กœ ์ถœ๋ ฅ๋ ๊นŒ์š”?
ํ•œ๋ฒˆ playGame() ์ดํ›„์˜ ํ๋ฆ„์„ ๋”ฐ๋ผ๊ฐ€๋ณด์„ธ์š”.

playGame() ์€ ๋จผ์ € "์ด๋™ ์ „" ๋ณด๋“œ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์ž…๋ ฅ์„ ๋ฐ›์•„ ๊ธฐ๋ฌผ์„ ์ด๋™ํ•ด์š”.
๊ทธ๋Ÿฌ๋‹ˆ ์žฅ๊ตฐ์ด ์‚ฌ๋ผ์ง„ "์ด๋™ ํ›„" ๋ณด๋“œ๋Š” ๋ณด์ด์ง€ ์•Š์•„์š”.

๊ฒฐ๊ตญ ํ”Œ๋ ˆ์ด์–ด๋Š” ์ž๊ธฐ๊ฐ€ ์žฅ๊ตฐ์„ ์žก์€ ์ˆœ๊ฐ„์˜ ๋ณด๋“œ๋ฅผ ํ•œ ๋ฒˆ๋„ ๋ชป ๋ณด๊ณ  (์ œ์ผ ๊ธฐ๋ถ„ ์ข‹์€ ์ˆœ๊ฐ„์ธ๋ฐโ€ฆ!),
๋ฐ”๋กœ ์ ์ˆ˜๋ž‘ "X๋‚˜๋ผ ์Šน" ๋ฉ”์‹œ์ง€๋งŒ ๋ณด๊ฒŒ ๋ผ์š”.

์ด๊ฒŒ ์™œ ์ƒ๊ธฐ๋ƒ๋ฉด, ์ง€๊ธˆ ๊ตฌ์กฐ์—์„œ๋Š” "๋ณด๋“œ๋ฅผ ๊ทธ๋ฆฌ๋Š” ์‹œ์ " ์ด "์ž…๋ ฅ์„ ๋ฐ›๋Š” ์‹œ์ " ์— ๋ฌถ์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค.
playGame() ์•ˆ์— ๋ Œ๋” + ์ž…๋ ฅ + ์ด๋™ ์ด ํ•œ ๋ฉ์–ด๋ฆฌ์ธ๊ฑฐ์ฃ .
๊ทธ๋ž˜์„œ ๋ฃจํ”„๊ฐ€ ์ž…๋ ฅ ์—†์ด ๋น ์ ธ๋‚˜๊ฐ€๋Š” ์ˆœ๊ฐ„ ๋งˆ์ง€๋ง‰ ๋ Œ๋”๊ฐ€ ๋ˆ„๋ฝ๋˜๋Š” ๊ฑฐ์˜ˆ์š”.

์ด ์„ธ ๊ฐ€์ง€ ์ฑ…์ž„์„ ์–ด๋–ป๊ฒŒ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์„์ง€ ํ•œ๋ฒˆ ๊ณ ๋ฏผํ•ด๋ณด์„ธ์š”.
๋ถ„๋ฆฌํ•ด๋‘๋ฉด ๊ฒŒ์ž„ ์ข…๋ฃŒ ์‹œ์  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋‚˜์ค‘์— ๋ณด๋“œ๋งŒ ๋‹ค์‹œ ๊ทธ๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ
(์˜ˆ: ๊ฒŒ์ž„ ์žฌ๊ฐœ, ๋ณต๊ธฐ, undo ๊ธฐ๋Šฅ ๋“ฑ) ๋„ ์œ ์—ฐํ•ด์ง‘๋‹ˆ๋‹ค.

@@ -1,2 +1,2 @@
# java-janggi
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

๋ฆฌ๋ทฐํ•˜๋‹ค๊ฐ€ HorseMoveRule ์— List ํด๋ž˜์Šค ๊ฒฝ๋กœ๊ฐ€ ๋‹ค ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ตฌํ˜„์„ ์ฐพ์•˜์–ด์š”.
์ด๋ฒˆ์— ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์€ ์•„๋‹ˆ์ง€๋งŒ ์ˆ˜์ •ํ•ด์ค์‹œ๋‹ค!

Comment on lines +97 to +99
public Map<Position, Piece> nonePieces() {
return piecesByTeam(Piece::isNoneTeam);
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ํ…Œ์ŠคํŠธ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค.

import persistence.entity.GameState;
import persistence.entity.PieceState;

public final class GameStateMapper {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

์™€์ด์ œ๋ฆฌ๊ฐ€ class ์— final ์„ ๋ถ™์ด๋Š” ๊ธฐ์ค€์ด ๋ญ”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
์ž˜๋ชป๋๋‹ค๋Š”๊ฑด ์•„๋‹ˆ๊ณ , ์ •๋ง ๊ถ๊ธˆํ•ด์„œ ๋‚จ๊ธฐ๋Š” ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค.

Comment on lines +5 to +10
public interface GameStateRepository {

void save(GameState gameState);

GameState load();
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Q. ์‹ค์ œ๋กœ JDBC๋ฅผ ์ฒ˜์Œ ์—ฐ๊ฒฐํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋‹ค ๋ณด๋‹ˆ ์–ด๋–ค ๋ถ€๋ถ„์„ ํŠนํžˆ ์กฐ์‹ฌํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉํ–ฅ์ด ์ ์ ˆํ–ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค

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

์ œ ์Šคํƒ€์ผ์„ ํŒŒ์•…ํ•˜์…จ์„์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ €๋Š” ๊น”๋”ํ•˜๊ณ  ๋„ˆ๋ฌด ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง ๋˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฌผ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ ์ง€๊ธˆ ์™€์ด์ œ๋ฆฌ PR์€ ์ •๋ง ์ข‹์•„์š”.

์ด์ œ ์ด๋ฒˆ ์‚ฌ์ดํด์—์„œ ํ•™์Šตํ•œ DB ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ํ…Œ์ด๋ธ”์— ์—ฌ๋Ÿฌ row๋ฅผ ๋„ฃ๊ณ  ๊ด€๋ฆฌํ•ด๋ณด๊ณ ,
table join ๊ณผ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฒฝํ—˜ํ•ด๋ณด๋ฉด ์ข‹์„ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

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

@@ -1,2 +1,2 @@
# java-janggi

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

์ €๋ฒˆ ์‚ฌ์ดํด ๋•Œ ์ปค๋ฐ‹๊ณผ git ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์–˜๊ธฐ๋ฅผ ํ–ˆ์—ˆ์ฃ .
์‹ ๊ฒฝ ์จ์ฃผ์‹  ๋ชจ์Šต์ด ๋ณด์—ฌ์„œ ์ข‹์Šต๋‹ˆ๋‹ค ๐Ÿ‘

์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์—ฌ๊ธฐ์„œ ๋” ๋‚˜์•„๊ฐ€ ์ปค๋ฐ‹ ์ˆ˜๋ฅผ ๋” ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ด์š”.
์ด๋ฒˆ ์‚ฌ์ดํด์€ 20 ~ 25๊ฐœ ์ •๋„๊ฐ€ ์ ๋‹นํ•œ ๋“ฏ ํ•˜๊ณ ์š”.

์ปค๋ฐ‹์„ ์ž‘๊ฒŒ ๋‚˜๋ˆ„์ž๋Š” ๋ง์€ ๋ถ„๋ช… ๊ทธ ์žฅ์ ์ด ์žˆ์–ด์„œ์ผ ๊ฒ๋‹ˆ๋‹ค.
๊ทธ ์žฅ์ ์„ ๊ฐ€์žฅ ์ž˜ ์‚ด๋ฆด ์ˆ˜ ์žˆ๋Š” ์ปค๋ฐ‹ ์‚ฌ์ด์ฆˆ๊ฐ€ ์–ด๋А์ •๋„์ผ์ง€ ๊ณ„์†ํ•ด์„œ ๊ณ ๋ฏผํ•ด๋ณด์…จ์œผ๋ฉด ํ•ด์š”.

์ปค๋ฐ‹์ด ๋„ˆ๋ฌด ์ž‘์€ ๋‹จ์œ„๋ผ๋ฉด
๋กค๋ฐฑ์„ ํ•  ๋•Œ, ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด cherry pick ์„ ํ•  ๋•Œ, ํ”„๋กœ์ ํŠธ์˜ ํ๋ฆ„์„ ํŒŒ์•…ํ•  ๋•Œ
์–ด์ฉ” ์ˆ˜ ์—†์ด ์—ฌ๋Ÿฌ ์ปค๋ฐ‹์„ ํ•จ๊ป˜ ๋ณด๊ณ  ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿด ๋• ์˜คํžˆ๋ ค ๋„ˆ๋ฌด ์ž‘์€ ๋‹จ์œ„์˜ ์ปค๋ฐ‹์€ ๋ถˆํŽธํ•  ์ˆ˜ ์žˆ์–ด์š”. ์‹ค์ˆ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ๊ฐ€๋Šฅ์„ฑ๋„ ๊ต‰์žฅํžˆ ๋†’์•„์ง€๊ณ ์š”.

ํ•˜์ง€๋งŒ ์‚ฌ์ดํด 1 ๋•Œ๋ณด๋‹ค ๋ถ„๋ช…ํžˆ ์ข‹์•„์กŒ์–ด์š”.
๊ทธ๋Ÿฌ๋‹ˆ ์กฐ๊ธˆ์”ฉ ์กฐ๊ธˆ์”ฉ ์™€์ด์ œ๋ฆฌ๋งŒ์˜ git commit ๋ถ„๋ฆฌ ๊ฐ๊ฐ์„ ์ตํ˜€๋ด…์‹œ๋‹ค :)

@pkeugine
Copy link
Copy Markdown

pkeugine commented Apr 11, 2026

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

์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ด ํ•˜๋‚˜ ๋ˆ„๋ฝ๋˜์–ด ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค :

์ผ๋‹จ ํ•ด๋‹น ์งˆ๋ฌธ์—์„œ ๋‹ค๋ฃจ๋Š” ๋ช‡๊ฐ€์ง€ ๋‚ด์šฉ์€ ์œ„ ์ฝ”๋ฉ˜ํŠธ๋“ค์— ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ๊ณต๋ถ€ํ•ด ๋ณด๋ฉด ์ข‹์„ ๊ฐœ๋…์€ ๋ฐ”๋กœ ๋– ์˜ค๋ฅด์ง€ ์•Š๋„ค์š”.

์˜คํžˆ๋ ค ์ €๋Š” ์—ฌํƒœ๊นŒ์ง€ ๋‚˜์˜จ Java ๋ฒ„์ „๋“ค์˜ ์ฐจ์ด,
์ƒˆ๋กœ ์ƒ๊ธด java api ๊ด€๋ จ๋œ ๋‚ด์šฉ ํ•™์Šต ๋ฐ ์‹ค์Šต,
๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฑธ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š”๊ฑธ ์ค‘์ ์œผ๋กœ ๋จผ์ € ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์ง€๊ณ  ๋ ˆ๋ฒจ 2์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด ์–ด๋–จ๊นŒํ•ฉ๋‹ˆ๋‹ค.

์™€์ด์ œ๋ฆฌ๊ฐ€ ์šฐํ…Œ์ฝ”์—์„œ Java ๋งˆ์Šคํ„ฐ๊ฐ€ ๋˜๋Š”๊ฑฐ์ฃ .
์ด ๋ช…์„ฑ๊ณผ ์‹ค๋ ฅ์ด ใ…Žใ…Ž ๋ถ„๋ช… ์•ž์œผ๋กœ์˜ ์šฐํ…Œ์ฝ” ๊ณผ์ • ๋ฐ ์ปค๋ฆฌ์–ด์—์„œ ๊ต‰์žฅํžˆ ํฐ ๋„์›€์ด ๋  ๊ฒ๋‹ˆ๋‹ค.

์š”์ฆ˜ AI ๊ฐ€ ์›Œ๋‚™ ๋›ฐ์–ด๋‚˜๋‹ˆ ๊ทธ๊ฑธ ํ™œ์šฉํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ธฐ๋„ ๋„ˆ๋ฌด ์ข‹๊ณ ์š”.
๊ฐ•๋ ฅ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

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