๐Ÿช ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค 6๊ธฐ ํ”„๋ฆฌ์ฝ”์Šค - 3์ฃผ์ฐจ ํšŒ๊ณ 

์ดํ•˜์–€ยท2023๋…„ 11์›” 8์ผ
0
post-thumbnail

โญ๏ธ ํ”„๋ฆฌ์ฝ”์Šค 3์ฃผ์ฐจ

์ด๋ฒˆ์—๋Š” 3์ฃผ์ฐจ ๋ฏธ์…˜์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
3์ฃผ์ฐจ๋„ ์—ญ์‹œ ์‹œ์ž‘ 1์‹œ๊ฐ„ ์ „์—, ์ฝ”์ˆ˜ํƒ€๊ฐ€ ์—ด๋ ธ๋Š”๋ฐ...์ €๋Š” ์ผ๊ฒฝํ—˜ ๊ต์œก ๋“ฃ๋Š๋ผ ์‹ค์‹œ๊ฐ„์„ ๋ชป๋ดค์Šต๋‹ˆ๋‹ค๐Ÿ˜ž
ํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ๋‹ค์‹œ๋ณด๊ธฐ๋ณด๋ฉด์„œ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋’€์œผ๋‹ˆ ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์•„๋ž˜ ๋งํฌ์—์„œ ๋ด์ฃผ์„ธ์š”!

๐Ÿ”— ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค 6๊ธฐ ํ”„๋ฆฌ์ฝ”์Šค 3์ฃผ์ฐจ ์ฝ”์ˆ˜ํƒ€ ๋‚ด์šฉ ์ •๋ฆฌ

๐Ÿ€ 3์ฃผ์ฐจ ๋ฏธ์…˜ - ๋กœ๋˜

์ด๋ฒˆ ๋ฏธ์…˜์€ ๋กœ๋˜ ๊ฒŒ์ž„์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์—ˆ๊ณ , ์š”๊ตฌ์‚ฌํ•ญ์€ ์—ญ์‹œ๋‚˜ 4๊ฐ€์ง€๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๐ŸŸก ๊ธฐ๋Šฅ์š”๊ตฌ์‚ฌํ•ญ
๐ŸŸก ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ
๐ŸŸก ๊ณผ์ œ ์ง„ํ–‰ ์š”๊ตฌ์‚ฌํ•ญ
๐ŸŸก ์ถ”๊ฐ€๋œ ์š”๊ตฌ์‚ฌํ•ญ

์ž์„ธํ•œ ์‚ฌํ•ญ์€ hayannn/java-lotto-6: ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค ํ”„๋ฆฌ์ฝ”์Šค 3์ฃผ์ฐจ ๋ฏธ์…˜ - ๋กœ๋˜์—์„œ ํ™•์ธํ•ด์ฃผ์„ธ์š”!!

์ด๋ฒˆ ๋ฏธ์…˜์—์„œ๋„ ์—ญ์‹œ 2์ฃผ์ฐจ ๊ณตํ†ต ํ”ผ๋“œ๋ฐฑ๊ณผ 3์ฃผ์ฐจ ๋ฏธ์…˜ ์œ ์˜์‚ฌํ•ญ์ด ์ •๋ฆฌ๋œ ์ด๋ฉ”์ผ์„ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ์—ˆ์–ด์š”!

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


1๏ธโƒฃ ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก ์ •๋ฆฌ

๊ฐ€์žฅ ๋จผ์ € ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „ docs/README.md์— ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ •๋ฆฌํ•ด ์ถ”๊ฐ€ํ•œ๋‹ค.
Git์˜ ์ปค๋ฐ‹ ๋‹จ์œ„๋Š” ์•ž ๋‹จ๊ณ„์—์„œ docs/README.md์— ์ •๋ฆฌํ•œ ๊ธฐ๋Šฅ ๋ชฉ๋ก ๋‹จ์œ„๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.
๋ผ๋Š” ์กฐ๊ฑด์— ๋งž์ถฐ์„œ์š”!

์ด๋ฒˆ์—๋Š” ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ปจ๋ฒค์…˜์„ ํ†ตํ•ด ์ด๋ฒˆ ๋ฏธ์…˜์—์„œ ์ œ๊ฐ€ ์ตœ์†Œํ•œ์œผ๋กœ ์ง€ํ‚ฌ Git Commit CheckList๋ฅผ ๊ธฐ๋Šฅ ๋ชฉ๋ก์˜ ํ•˜๋‹จ์— ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š”
๐Ÿ”น ๋กœ๋˜ ๊ฒŒ์ž„ ์ •์˜ ๋ฐ ๊ทœ์น™
๐Ÿ”น ๊ธฐ๋Šฅ ๋ชฉ๋ก
๐Ÿ”น ํŒจํ‚ค์ง€ ๊ตฌ์กฐ
๐Ÿ”น ๊ถ๊ธˆํ–ˆ์–ด์š”
๐Ÿ”น ๋ฐฐ์› ์–ด์š”
๐Ÿ”น ์ฐธ๊ณ ) ๊นƒ ์ปค๋ฐ‹ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๋กœ ๋‚˜๋ˆ„์–ด ๋ดค์Šต๋‹ˆ๋‹ค!!

์ด๋ฒˆ ๋กœ๋˜ ๊ฒŒ์ž„์—์„œ๋Š” role์ด ์ถ”๊ฐ€๋œ ๋Š๋‚Œ์„ ๋ฐ›์•˜์–ด์š”.
๋‹จ์ˆœํžˆ ํ”Œ๋ ˆ์ด์–ด์™€ ์ปดํ“จํ„ฐ๊ฐ€ ์•„๋‹Œ, ์ถ”์ฒจ์„ ํ•˜๋Š” ์–ด๋– ํ•œ ์ฃผ์ฒด(?)๊ฐ€ ํฌํ•จ๋˜์—ˆ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด, ๋กœ๋˜ ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•˜๊ณ  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋กœ๋˜๋ฅผ ๊ตฌ์ž…ํ•˜๊ณ  ๋‹น์ฒจ๋ฒˆํ˜ธ๋„ ๋ฝ‘๋Š” ๋ถˆ์ƒ์‚ฌ...๐Ÿ˜ฎ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๐Ÿคฏ ๋‘๋ฒˆ์งธ ๊ณ ๋ฏผ, ๋‹น์ฒจ๋ฒˆํ˜ธ๋ฅผ ๋ฝ‘๋Š” ์‚ฌ๋žŒ๋„ ํ”Œ๋ ˆ์ด์–ด...?

์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•œ ๊ธฐ๋Šฅ ๋ชฉ๋ก์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์š”.

๐Ÿ“‚ ๊ธฐ๋Šฅ ๋ชฉ๋ก

๊ฒŒ์ž„์—์„œ์˜ ์—ญํ• ์„ ํ”Œ๋ ˆ์ด์–ด, ์ถ”์ฒจ์ž, ์ปดํ“จํ„ฐ์˜ 3๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„

1๏ธโƒฃ ๋กœ๋˜ ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•˜๊ณ , ๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•œ ๋ฌธ๊ตฌ ์ถœ๋ ฅ

๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.

2๏ธโƒฃ ํ”Œ๋ ˆ์ด์–ด

  • ๊ตฌ์ž… ๊ธˆ์•ก ์ž…๋ ฅ

    • [E1] ๊ตฌ์ž… ๊ธˆ์•ก์ด 1,000์› ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ
    [ERROR] ๊ตฌ์ž… ๊ธˆ์•ก์€ 1,000์› ๋‹จ์œ„๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.
    • [E2] ๊ตฌ์ž… ๊ธˆ์•ก์ด ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ
    [ERROR] ๊ตฌ์ž… ๊ธˆ์•ก์€ 1,000์› ๋‹จ์œ„์˜ ์ˆซ์ž๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • [E3] ๊ณต๋ฐฑ์„ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ
    [ERROR] ๊ตฌ์ž… ๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.

3๏ธโƒฃ ์ปดํ“จํ„ฐ

  • ๋กœ๋˜๋ฒˆํ˜ธ์˜ ์ˆซ์ž ๋ฒ”์œ„์ธ 1~45์‚ฌ์ด์˜ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๋žœ๋ค๋„˜๋ฒ„ ์ƒ์„ฑ
    • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ž…๋ ฅํ•œ ๊ตฌ์ž… ๊ธˆ์•ก๋งŒํผ ๋ฐœํ–‰

4๏ธโƒฃ ๊ตฌ๋งค ๊ฐœ์ˆ˜ ๋ฐ ๋ฐœํ–‰ํ•œ ๋ฒˆํ˜ธ ์ถœ๋ ฅ

์˜ˆ์‹œ

8๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค.
[8, 21, 23, 41, 42, 43] 
[3, 5, 11, 16, 32, 38] 
[7, 11, 16, 35, 36, 44] 
[1, 8, 11, 31, 41, 42] 
[13, 14, 16, 38, 42, 45] 
[7, 11, 30, 40, 42, 43] 
[2, 13, 22, 32, 38, 45] 
[1, 3, 5, 14, 22, 45]

5๏ธโƒฃ ์ถ”์ฒจ์ž์—๊ฒŒ ๋‹น์ฒจ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•œ ๋ฌธ๊ตฌ ์ถœ๋ ฅ

๋‹น์ฒจ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.

6๏ธโƒฃ ์ถ”์ฒจ์ž

  • ๋‹น์ฒจ๋ฒˆํ˜ธ ์ž…๋ ฅ : ๋ฒˆํ˜ธ๋Š” ์‰ผํ‘œ(,)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„

    • [E1] ๋กœ๋˜ ๋ฒˆํ˜ธ์˜ โ€œ๊ฐœ์ˆ˜โ€๊ฐ€ 6๊ฐœ ๋ฏธ๋งŒ ๋˜๋Š” ์ดˆ๊ณผ๋  ๊ฒฝ์šฐ
    [ERROR] ๋กœ๋˜ ๋ฒˆํ˜ธ๋Š” 6๊ฐœ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • [E2] ๋กœ๋˜ ๋ฒˆํ˜ธ์˜ 1~45 ๋ฒ”์œ„์— ๋ฒ—์–ด๋‚œ ๊ฒฝ์šฐ
    [ERROR] ๋กœ๋˜ ๋ฒˆํ˜ธ๋Š” 1๋ถ€ํ„ฐ 45 ์‚ฌ์ด์˜ ์ˆซ์ž์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • [E3] ๋กœ๋˜ ๋ฒˆํ˜ธ์— ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ
    [ERROR] ๋กœ๋˜ ๋ฒˆํ˜ธ๋Š” ์ˆซ์ž์™€ ์ฝค๋งˆ(,)๋กœ ๊ตฌ์„ฑํ•ด์ฃผ์„ธ์š”.
    • [E4] ๋กœ๋˜ ๋ฒˆํ˜ธ๊ฐ€ ์ค‘๋ณต๋œ ๊ฒฝ์šฐ
    [ERROR] ๋กœ๋˜ ๋ฒˆํ˜ธ๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.
    • [E5] ๊ณต๋ฐฑ์„ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ
    [ERROR] ๋กœ๋˜ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.

7๏ธโƒฃ ์ถ”์ฒจ์ž์—๊ฒŒ ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•œ ๋ฌธ๊ตฌ ์ถœ๋ ฅ

๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.

8๏ธโƒฃ ์ถ”์ฒจ์ž

  • ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ ์ž…๋ ฅ

    • [E1] ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ์˜ "๊ฐœ์ˆ˜"๊ฐ€ 1๊ฐœ๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ
    [ERROR] ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋Š” ์ˆซ์ž์™€ ์ฝค๋งˆ(,)๋กœ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋ฉฐ 1๊ฐœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • [E2] ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ์˜ 1~45 ๋ฒ”์œ„์— ๋ฒ—์–ด๋‚œ ๊ฒฝ์šฐ
    [ERROR] ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋Š” 1๋ถ€ํ„ฐ 45 ์‚ฌ์ด์˜ ์ˆซ์ž์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • [E3] ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ์— ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ
    [ERROR] ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋Š” ์ˆซ์ž์™€ ์ฝค๋งˆ(,)๋กœ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋ฉฐ 1๊ฐœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • [E4] ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๊ฐ€ ์ค‘๋ณต๋œ ๊ฒฝ์šฐ
    [ERROR] ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.
    • [E5] ๊ณต๋ฐฑ์„ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ
    [ERROR] ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.

9๏ธโƒฃ ์ปดํ“จํ„ฐ

  • ๋‹น์ฒจ ์—ฌ๋ถ€ ํŒŒ์•…์„ ์œ„ํ•œ ๋น„๊ต
    • ํ”Œ๋ ˆ์ด์–ด์˜ ๋žœ๋ค ๋ฒˆํ˜ธ VS ์ถ”์ฒจ์ž๊ฐ€ ๋“ฑ๋กํ•œ ๋‹น์ฒจ ๋ฒˆํ˜ธ&๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ

๐Ÿ”Ÿ ๋‹น์ฒจ ๋‚ด์—ญ ๋ฐ ์ˆ˜์ต๋ฅ  ์ถœ๋ ฅ

  • 9์—์„œ ๋น„๊ตํ•œ ๋‹น์ฒจ ๋‚ด์—ญ ์ถœ๋ ฅ
    • ์ˆ˜์ต๋ฅ ์˜ ๊ฒฝ์šฐ, ์†Œ์ˆ˜์  ๋‘˜์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•œ ๊ฐ’ ์ถœ๋ ฅ
๋‹น์ฒจ ํ†ต๊ณ„
---
3๊ฐœ ์ผ์น˜ (5,000์›) - 1๊ฐœ
4๊ฐœ ์ผ์น˜ (50,000์›) - 0๊ฐœ
5๊ฐœ ์ผ์น˜ (1,500,000์›) - 0๊ฐœ
5๊ฐœ ์ผ์น˜, ๋ณด๋„ˆ์Šค ๋ณผ ์ผ์น˜ (30,000,000์›) - 0๊ฐœ
6๊ฐœ ์ผ์น˜ (2,000,000,000์›) - 0๊ฐœ
์ด ์ˆ˜์ต๋ฅ ์€ 62.5%์ž…๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ๋ชฉ๋ก ์—ญ์‹œ, ์•ž์„œ ๊ณ ๋ฏผํ–ˆ๋˜ role์— ๋Œ€ํ•œ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ด์ „์—๋Š” ํ”Œ๋ ˆ์ด์–ด์™€ ์ปดํ“จํ„ฐ์˜ 2๊ฐ€์ง€ ์ž…์žฅ์—์„œ๋งŒ ๊ธฐ์ˆ ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ํ”Œ๋ ˆ์ด์–ด, ์ถ”์ฒจ์ž, ์ปดํ“จํ„ฐ์˜ 3๊ฐ€์ง€ role๋กœ ์žฌ์ง€์ •ํ•˜์—ฌ ์ž‘์„ฑํ•œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค!

๊ทธ ๋‹ค์Œ ํŒจํ‚ค์ง€๋ณ„๋กœ ์—ญํ• ์„ ๋‚˜๋ˆ„์–ด ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฒˆ์—๋„ ์—ญ์‹œ MVC ํŒจํ„ด์„ ์ ์šฉํ–ˆ์–ด์š”.

...
โ”œโ”€โ”€  docs
|    โ””โ”€โ”€ README.md
โ””โ”€โ”€  src
     โ””โ”€โ”€ main/java/lotto
         โ”œโ”€โ”€ Controller
         |	 โ””โ”€โ”€ LottogameController.java        
         |
         โ”œโ”€โ”€ Domain
         |	 โ”œโ”€โ”€ Lotto.java
         |	 โ”œโ”€โ”€ PlayerNumber.java
         |   โ””โ”€โ”€ PlayerPrice.java
         |
         โ”œโ”€โ”€ Enum
         |   โ””โ”€โ”€ LottoRankingInfo.java
         |
         โ”œโ”€โ”€ Exception
         |   โ”œโ”€โ”€ PlayerBuyingPayException.java
         |   โ”œโ”€โ”€ LottoNumberException.java
         |   โ””โ”€โ”€ BonusNumberException.java
         |
         โ”œโ”€โ”€ Service
         |   โ”œโ”€โ”€ PlayerInputManagerService.java
         |   โ”œโ”€โ”€ LotteryDrawerInputManagerService.java
         |   โ””โ”€โ”€ WinningNumberComparatorService.java
         |
         โ”œโ”€โ”€ Util
         |   โ”œโ”€โ”€ LottoNumberGenerator.java
         |   โ””โ”€โ”€ InputNumberParser.java
         |
         โ”œโ”€โ”€ View
         |   โ”œโ”€โ”€ InputView.java
         |   โ””โ”€โ”€ OutputView.java
         |
         โ””โ”€โ”€ Application.java

๋˜ํ•œ, ์ด์ „ ๋ฏธ์…˜๊ณผ ๋™์ผํ•˜๊ฒŒ ์ด ๋ถ€๋ถ„๋„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ถ๊ธˆํ–ˆ์–ด์š” ๋Š” ๊ฐœ๋ฐœ์„ ํ•˜๋ฉฐ ๊ถ๊ธˆํ–ˆ๋˜ ๋ถ€๋ถ„์„ ์ •๋ฆฌํ•œ ๊ฒƒ์ด๋ฉฐ, ๋ฐฐ์› ์–ด์š” ๋Š” ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…์— ๊ด€๋ จ๋œ ๊ฐ„๋‹จํ•œ ์ •๋ฆฌ์ž…๋‹ˆ๋‹ค!

2๏ธโƒฃ ๊ฐœ๋ฐœ

๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ฉด ์žˆ์—ˆ๋˜ ์ผ๋“ค์€ ์ผ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”!
๋‚ด์šฉ์ด ๋„ˆ๋ฌด ๊ธธ์–ด์งˆ ๊ฒƒ ๊ฐ™์•„ ์ƒ๋žตํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿฅฒ
๐Ÿ€ Week3: ๋กœ๋˜


3๏ธโƒฃ ๋„๋ฉ”์ธ ๋กœ์ง์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ Test Code ์ž‘์„ฑ

์ด๋ฒˆ ๋ฏธ์…˜์—์„œ๋Š” "๋„๋ฉ”์ธ ๋กœ์ง์— ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค"๋ผ๋Š” ์กฐ๊ฑด๋„ ํฌํ•จ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์ €๋Š” ๊ทธ ์ค‘์—์„œ๋„ ๋„๋ฉ”์ธ ๋กœ์ง์˜ ๋ฒ”์ฃผ๊ฐ€ ๊ฐ€์žฅ ๊ถ๊ธˆํ–ˆ๋Š”๋ฐ์š”!
๊ณ ๋ฏผ ๋์—,

  • ๋„๋ฉ”์ธ ๋˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•˜๋Š” ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋„๋ฉ”์ธ ๋กœ์ง์œผ๋กœ ๋ณด๊ธฐ๋กœ ๊ฒฐ๋ก ์„ ๋‚ด๋ ธ์Šต๋‹ˆ๋‹ค.

4๏ธโƒฃ Java Enum์„ ์ ์šฉํ•œ๋‹ค.

Java์˜ Enum์€ ๋ฌด์—‡์ผ๊นŒ์š”?
์šฐ์„  Java Enum ํ™œ์šฉ๊ธฐ๋ฅผ ์ฝ์–ด๋ณด๊ณ  ์˜ค์‹œ๋ฉด ๋งŽ์ด ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Enum์€ ๋‹ค์–‘ํ•œ ์ผ€์ด์Šค์˜ ์ƒ์ˆ˜๋ฅผ ๊ฐ์ฒดํ™”ํ•ด ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    ์ฆ‰, ์—ด๊ฑฐํ˜• ์ƒ์ˆ˜๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์ฃ .

  • ๋‹จ์ˆœ ์—ด๊ฑฐํ˜• ์ƒ์ˆ˜์˜ ๊ฒฝ์šฐ, Enum ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํžˆ ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฆฌํ•ด ๊ฐ์ฒด๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!!

์ด๋Ÿฌํ•œ ๊ธฐ์ดˆ ์ง€์‹์„ ์Œ“์€ ๋’ค ์ด๋ฒˆ ๋ฏธ์…˜์—์„œ Enum์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋ฅผ ๋ถ„์„ํ•ด๋ดค์Šต๋‹ˆ๋‹ค.
๋กœ๋˜ ๊ฒŒ์ž„์ด ๋ชจ๋‘ ์ง„ํ–‰๋˜๊ณ ๋‚˜๋ฉด, ๋งˆ๋ฌด๋ฆฌ ๋‹จ๊ณ„์—์„œ ๋‹น์ฒจ ํ†ต๊ณ„๋ฅผ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ์š”.
์ด ๋‹น์ฒจ ํ†ต๊ณ„๋ฅผ 6๊ฐœ ์ผ์น˜, 5๊ฐœ ์ผ์น˜, 4๊ฐœ ์ผ์น˜,...์—์„œ ๊ณ„์†์ ์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด....!
์‹ฌ์ง€์–ด ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•ด์„œ 5๊ฐœ๊ฐ€ ์ผ์น˜๋˜๋Š” ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‹ˆ..
์ƒ๊ฐ๋งŒ ํ•ด๋„ ๋„ˆ๋ฌด ์•„๋“ํ•ด์ง€์ฃ ๐Ÿ˜ตโ€๐Ÿ’ซ

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—, ๋‹น์ฒจ ํ†ต๊ณ„์— ๋Œ€ํ•œ ๋žญํ‚น ์ •๋ณด๋Š” Enum์„ ํ†ตํ•ด ๋ณ„๋„ ๊ด€๋ฆฌํ•˜๊ณ , ๊ฐ„๋‹จํžˆ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ผ ๊ฒ๋‹ˆ๋‹ค!!

๐Ÿ“‚ LottoRankingInfo.java

package lotto.Enum;

import java.util.Arrays;

public enum LottoRankingInfo {
    SIX_MATCH(6, 2000000000),
    FIVE_AND_BONUS(7, 30000000),
    FIVE_MATCH(5, 1500000),
    FOUR_MATCH(4, 50000),
    THREE_MATCH(3, 5000),
    ONE_MATCH(1, 0);

    private final int countWinngNumbers;
    private final int rankWinningPrize;

    LottoRankingInfo(int countWinngNumbers, int rankWinningPrize) {
        this.countWinngNumbers = countWinngNumbers;
        this.rankWinningPrize = rankWinningPrize;
    }

    public int getRankWinningPrize() {
        return rankWinningPrize;
    }

    public static LottoRankingInfo valueOf(int countWinningNumbers) {
        return Arrays.stream(LottoRankingInfo.values())
                .filter(info -> info.countWinngNumbers == countWinningNumbers)
                .findFirst()
                .orElse(null);
    }
}

5๏ธโƒฃ ๋ชจ๋“  ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜๊ณ , ํ…Œ์ŠคํŠธ ์ง„ํ–‰!


โญ๏ธ ๋งˆ์น˜๋ฉฐ

๐Ÿ˜ฎ ๋ฐ˜์„ฑํ•  ์ 

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ˆ˜์ค€์„ ํ™•์‹คํ•˜๊ฒŒ ์ •ํ•˜๊ธฐ!

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

๐Ÿƒ๐Ÿปโ€โ™€๏ธ ๋‚˜์•„๊ฐˆ ์ 

๐Ÿ“ฌย ๊นŒ๋‹ค๋กœ์›Œ์ง€๋Š” ์š”๊ตฌ์‚ฌํ•ญ์„ ์ตœ๋Œ€ํ•œ ๋งž์ถœ ์ˆ˜ ์žˆ๋„๋ก, ์šฐ์„ ์ˆœ์œ„ ๋ฐ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ •ํ•˜๊ธฐ!

  • ์ฃผ์ฐจ๊ฐ€ ๋„˜์–ด๊ฐˆ์ˆ˜๋ก ์š”๊ตฌ์‚ฌํ•ญ์ด ๊นŒ๋‹ค๋กœ์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค๐Ÿ˜ž
    ์‚ฌ์‹ค ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ ์ง๊ตฐ์—์„œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ›๊ณ , ๊ทธ์— ๋งž์ถฐ ์ฝ”๋”ฉ์„ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๊ฝค ๋งŽ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ด๊ฑธ ์™œ ๊ตณ์ด ์ด๋ ‡๊ฒŒ ํ•ด์•ผํ•˜์ง€?๋ผ๋Š” ์ƒ๊ฐ์„ ์•ˆํ•  ์ˆ˜๋Š” ์—†๊ฒ ์ง€๋งŒ!
    ์ฃผ์–ด์ง„ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์šฐ์„ ์ˆœ์œ„์™€ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •ํ•ด์•ผ ๋‹ค์Œ ์ฃผ์ฐจ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ โœŒ๏ธ

์—ฌ๊ธฐ๊นŒ์ง€ ์ฝ์–ด์ฃผ์‹  ๋‹น์‹  ใ……..์‚ฌ...์• ์ •ํ•ด์š”:)

์ด๋ฒˆ์ฃผ๋„ ํž˜๋“ค๊ณ , ํ˜น์‹œ๋‚˜ ๋ชปํ•˜๋ฉด ์–ด์ฉŒ์ง€ํ•˜๋ฉด์„œ ์Šฌํผํ–ˆ์ง€๋งŒ....!
๊ฒฐ๊ตญ ํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค!!

ํ•  ์ˆ˜ ์žˆ๋‹ค!!โœจ

๊ทธ๋Ÿผ ์ €๋Š” ์ด๋งŒ ๊ฐ€๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!


์—ํ•„๋กœ๊ทธ

๊ฐœ๋ฐœ ๊ณผ์ •์˜ ๋” ์„ธ์„ธํ•˜๊ณ  ์žฌ๋ฏธ์žˆ๋Š” ์ผ๋“ค์ด ๊ถ๊ธˆํ•˜์‹œ๋‹ค๋ฉด ์•„๋ž˜์˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!
์Šฌ์ฉ ๋†“๊ณ  ๊ฐ‘๋‹ˆ๋‹ค๐Ÿ˜ฝ
๐Ÿ€ Week3: ๋กœ๋˜

์ด๋ฒˆ ๋ฏธ์…˜์˜ ์ œ ๋ชจ์Šต์ด์—ˆ์Šต๋‹ˆ๋‹ค๐Ÿคฃ

profile
์–ธ์  ๊ฐ€ ๋‚ด ์ฝ”๋“œ๋กœ ์„ธ์ƒ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก, BE ๊ฐœ๋ฐœ ๊ธฐ๋ก ๋…ธํŠธโ˜˜๏ธ

0๊ฐœ์˜ ๋Œ“๊ธ€