๊ธฐ๋ฅ ๋ชฉ๋ก
๐ ๊ธฐ๋ฅ ๋ชฉ๋ก
โต 1. ํ๋ก์ฐ ์ฐจํธ
๐ฉ 2. ์ ์ถ๋ ฅ ๊ด๋ จ ๊ธฐ๋ฅ
2.1. ์ ๋ ฅ
- ๋ฐฉ๋ฌธ ๋ ์ง๋ฅผ ์ ๋ ฅ ๋ฐ๋๋ค.
ย - 12์ ์ค ์๋น ์์ ๋ฐฉ๋ฌธ ๋ ์ง๋ ์ธ์ ์ธ๊ฐ์?
๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ถ๋ ฅํ์ฌ ์
๋ ฅ์ ์์ฒญํ๋ค.
ย - ๋ฐฉ๋ฌธ ๋ ์ง
๋ 1 - 31
์ฌ์ด์ ์ ์๋ง ์
๋ ฅ ๊ฐ๋ฅํ๋ค.
12์ ์ค ์๋น ์์ ๋ฐฉ๋ฌธ ๋ ์ง๋ ์ธ์ ์ธ๊ฐ์? (์ซ์๋ง ์
๋ ฅํด ์ฃผ์ธ์!)
26
- ์ฃผ๋ฌธ ๋ฉ๋ด์ ๊ฐ์๋ฅผ ์ ๋ ฅ ๋ฐ๋๋ค.
ย - ์ฃผ๋ฌธํ์ค ๋ฉ๋ด๋ฅผ ๋ฉ๋ด ์ด๋ฆ๊ณผ ๊ฐ์๋ก ์๋ ค ์ฃผ์ธ์. (e.g. ํด์ฐ๋ฌผํ์คํ-2,๋ ๋์์ธ-1,์ด์ฝ์ผ์ดํฌ-1)
๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ถ๋ ฅํ์ฌ ์
๋ ฅ์ ์์ฒญํ๋ค.
ย - ์ ๋ ฅ์ ๋ฐ๋์ ๋ฉ๋ดํ์ ์กด์ฌํ๋ ๋ฉ๋ด์ฌ์ผ ํ๋ค.
ย - ๋ฉ๋ด์ ๊ฐ์๋ 1์ด์์ด์ด์ผ ํ๋ค.
ย - ์ฃผ๋ฌธ ํ์์ด ์ ๊ณต๋ ์์์ ๊ฐ์์ผ ํ๋ค.
ย - ์ ๋ ฅ ์ค ์ค๋ณต๋ ๋ฉ๋ด๊ฐ ์์ด์ผ ํ๋ค.
ย - ๋ฉ๋ด๋ ํ๋ฒ์ ์ต๋ 20๊ฐ๊น์ง๋ง ์ฃผ๋ฌธ ๊ฐ๋ฅํ๋ค
ย - ์๋ฃ๋ง ์ฃผ๋ฌธ ์, ์ฃผ๋ฌธํ ์ ์๋ค.
์ฃผ๋ฌธํ์ค ๋ฉ๋ด๋ฅผ ๋ฉ๋ด์ ์ด๋ฆ๊ณผ ๊ฐ์๋ก ์๋ ค์ฃผ์ธ์. (e.g. ํด์ฐ๋ฌผํ์คํ-2,๋ ๋์์ธ-1,์ด์ฝ์ผ์ดํฌ-1)
ํํ์ค-1,์ ๋ก์ฝ๋ผ-1
- ๋ชจ๋ ์
๋ ฅ์
@woowacourse/mission-utils
๋ผ์ด๋ธ๋ฌ๋ฆฌ์Console.readLineAsync
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ๋๋ค.
2.2. ์ถ๋ ฅ ํ์
- ์ฃผ๋ฌธ ๋ฉ๋ด๋ฅผ ์ถ๋ ฅํ๋ค.
ย - ๊ฐ ๋ฉ๋ด์ ์ด๋ฆ๊ณผ ์๋์ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
<์ฃผ๋ฌธ ๋ฉ๋ด>
ํํ์ค 1๊ฐ
์ ๋ก์ฝ๋ผ 1๊ฐ
- ํ ์ธ ์ ์ด ์ฃผ๋ฌธ ๊ธ์ก์ ์ถ๋ ฅํ๋ค
ย - ์ซ์ ์ธ ์๋ฆฌ๋ง๋ค ์ผํ(,)๋ฅผ ํ๊ธฐํ๋ค.
ย - 8,500์
๊ณผ ๊ฐ์ ํ์์ผ๋ก ์ถ๋ ฅํ๋ค.
<ํ ์ธ ์ ์ด์ฃผ๋ฌธ ๊ธ์ก>
8,500์
- ์ฆ์ ๋ฉ๋ด๋ฅผ ์ถ๋ ฅํ๋ค
ย - ์ดํ์ธ 1๊ฐ
ํน์ ์์
์ ์ถ๋ ฅํ๋ค.
<์ฆ์ ๋ฉ๋ด>
์ดํ์ธ 1๊ฐ
- ํํ ๋ด์ญ์ ์ถ๋ ฅํ๋ค
ย - ํ ์ธ ๋ด์ฉ : -1,200์
ํ์์ผ๋ก ํ ์ค๋น ํ๋์ ํ ์ธ ๋ด์ฉ์ ์ถ๋ ฅํ๋ค.
<ํํ ๋ด์ญ>
ํฌ๋ฆฌ์ค๋ง์ค ๋๋ฐ์ด ํ ์ธ: -1,200์
ํ์ผ ํ ์ธ: -4,046์
ํน๋ณ ํ ์ธ: -1,000์
์ฆ์ ์ด๋ฒคํธ: -25,000์
- ์ด ํํ ๊ธ์ก์ ์ถ๋ ฅํ๋ค
ย - -31,246์
ํ์์ผ๋ก ์ถ๋ ฅํ๋ค.
ย - ์ด ํํ ๊ธ์ก
์ ์ด ํ ์ธ ๊ธ์ก + ์ฆ์ ๋ฉ๋ด์ ๊ฐ๊ฒฉ
์ด๋ค.
<์ด ํํ ๊ธ์ก>
-31,246์
- ํ ์ธ ํ ์์ ๊ฒฐ์ ๊ธ์ก์ ์ถ๋ ฅํ๋ค
ย - 13,754์
ํ์์ผ๋ก ํ ์ธ ๊ธ์ก์ ์ฐจ๊ฐํ ๊ฒฐ์ ๊ธ์ก์ ์ถ๋ ฅํ๋ค.
<ํ ์ธ ํ ์์ ๊ฒฐ์ ๊ธ์ก>
135,754์
- ์ฆ์ ํ ์ด๋ฒคํธ ๋ฑ์ง๋ฅผ ์ถ๋ ฅํ๋ค
<12์ ์ด๋ฒคํธ ๋ฐฐ์ง>
์ฐํ
- ๋ชจ๋ ์ถ๋ ฅ์
@woowacourse/mission-utils
๋ผ์ด๋ธ๋ฌ๋ฆฌ์Console.print
๋ฅผ ์ฌ์ฉํ๋ค.
2.3. ์ ์ฒด ์คํ ๊ฒฐ๊ณผ ์์
์๋
ํ์ธ์! ์ฐํ
์ฝ ์๋น 12์ ์ด๋ฒคํธ ํ๋๋์
๋๋ค.
12์ ์ค ์๋น ์์ ๋ฐฉ๋ฌธ ๋ ์ง๋ ์ธ์ ์ธ๊ฐ์? (์ซ์๋ง ์
๋ ฅํด ์ฃผ์ธ์!)
3
์ฃผ๋ฌธํ์ค ๋ฉ๋ด๋ฅผ ๋ฉ๋ด์ ๊ฐ์๋ฅผ ์๋ ค ์ฃผ์ธ์. (e.g. ํด์ฐ๋ฌผํ์คํ-2,๋ ๋์์ธ-1,์ด์ฝ์ผ์ดํฌ-1)
ํฐ๋ณธ์คํ
์ดํฌ-1,๋ฐ๋นํ๋ฆฝ-1,์ด์ฝ์ผ์ดํฌ-2,์ ๋ก์ฝ๋ผ-1
12์ 3์ผ์ ์ฐํ
์ฝ ์๋น์์ ๋ฐ์ ์ด๋ฒคํธ ํํ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ!
<์ฃผ๋ฌธ ๋ฉ๋ด>
ํฐ๋ณธ์คํ
์ดํฌ 1๊ฐ
๋ฐ๋นํ๋ฆฝ 1๊ฐ
์ด์ฝ์ผ์ดํฌ 2๊ฐ
์ ๋ก์ฝ๋ผ 1๊ฐ
<ํ ์ธ ์ ์ด์ฃผ๋ฌธ ๊ธ์ก>
142,000์
<์ฆ์ ๋ฉ๋ด>
์ดํ์ธ 1๊ฐ
<ํํ ๋ด์ญ>
ํฌ๋ฆฌ์ค๋ง์ค ๋๋ฐ์ด ํ ์ธ: -1,200์
ํ์ผ ํ ์ธ: -4,046์
ํน๋ณ ํ ์ธ: -1,000์
์ฆ์ ์ด๋ฒคํธ: -25,000์
<์ดํํ ๊ธ์ก>
-31,246์
<ํ ์ธ ํ ์์ ๊ฒฐ์ ๊ธ์ก>
135,754์
<12์ ์ด๋ฒคํธ ๋ฐฐ์ง>
์ฐํ
- ์ ์ฉ๋ ์ด๋ฒคํธ๊ฐ ํ๋๋ ์์๋
์๋
ํ์ธ์! ์ฐํ
์ฝ ์๋น 12์ ์ด๋ฒคํธ ํ๋๋์
๋๋ค.
12์ ์ค ์๋น ์์ ๋ฐฉ๋ฌธ ๋ ์ง๋ ์ธ์ ์ธ๊ฐ์? (์ซ์๋ง ์
๋ ฅํด ์ฃผ์ธ์!)
26
์ฃผ๋ฌธํ์ค ๋ฉ๋ด๋ฅผ ๋ฉ๋ด์ ๊ฐ์๋ฅผ ์๋ ค ์ฃผ์ธ์. (e.g. ํด์ฐ๋ฌผํ์คํ-2,๋ ๋์์ธ-1,์ด์ฝ์ผ์ดํฌ-1)
ํํ์ค-1,์ ๋ก์ฝ๋ผ-1
12์ 26์ผ์ ์ฐํ
์ฝ ์๋น์์ ๋ฐ์ ์ด๋ฒคํธ ํํ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ!
<์ฃผ๋ฌธ ๋ฉ๋ด>
ํํ์ค 1๊ฐ
์ ๋ก์ฝ๋ผ 1๊ฐ
<ํ ์ธ ์ ์ด์ฃผ๋ฌธ ๊ธ์ก>
8,500์
<์ฆ์ ๋ฉ๋ด>
์์
<ํํ ๋ด์ญ>
์์
<์ดํํ ๊ธ์ก>
0์
<ํ ์ธ ํ ์์ ๊ฒฐ์ ๊ธ์ก>
8,500์
<12์ ์ด๋ฒคํธ ๋ฐฐ์ง>
์์
๐จ3. ์ ํจ์ฑ ๊ฒ์ฌ ๊ด๋ จ ๊ธฐ๋ฅ
-
๋ฐฉ๋ฌธ ๋ ์ง ์ ํจ์ฑ ๊ฒ์ฌ
ย - 1 ์ด์ 31 ์ดํ์ ์ซ์๊ฐ ์๋ ๊ฒฝ์ฐ, โ[ERROR] ์ ํจํ์ง ์์ ๋ ์ง์ ๋๋ค. ๋ค์ ์ ๋ ฅํด ์ฃผ์ธ์.โ๋ผ๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ ์ฃผ์ธ์.
-
์ฃผ๋ฌธ ๋ฉ๋ด ์ ํจ์ฑ ๊ฒ์ฌ
ย - ๊ณ ๊ฐ์ด ๋ฉ๋ดํ์ ์๋ ๋ฉ๋ด๋ฅผ ์
๋ ฅํ๋ ๊ฒฝ์ฐ, [ERROR] ์ ํจํ์ง ์์ ์ฃผ๋ฌธ์
๋๋ค. ๋ค์ ์
๋ ฅํด ์ฃผ์ธ์.
๋ผ๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
ย - ๋ฉ๋ด์ ๊ฐ์๋ 1 ์ด์์ ์ซ์๋ง ์
๋ ฅ๋๋๋ก ํด์ฃผ์ธ์. ์ด์ธ์ ์
๋ ฅ๊ฐ์ [ERROR] ์ ํจํ์ง ์์ ์ฃผ๋ฌธ์
๋๋ค. ๋ค์ ์
๋ ฅํด ์ฃผ์ธ์.
๋ผ๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
ย - ๋ฉ๋ด ํ์์ด ์์์ ๋ค๋ฅธ ๊ฒฝ์ฐ, [ERROR] ์ ํจํ์ง ์์ ์ฃผ๋ฌธ์
๋๋ค. ๋ค์ ์
๋ ฅํด ์ฃผ์ธ์.
๋ผ๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
ย - ์ค๋ณต ๋ฉ๋ด๋ฅผ ์
๋ ฅํ ๊ฒฝ์ฐ(e.g. ์์ ์๋ฌ๋-1,์์ ์๋ฌ๋-1), [ERROR] ์ ํจํ์ง ์์ ์ฃผ๋ฌธ์
๋๋ค.
๋ผ๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
ย - ์ฃผ๋ฌธ ๋ฉ๋ด๊ฐ ์๋ฃ๋ง ์กด์ฌํ๋ ๊ฒฝ์ฐ, ์๋ฃ๋ง ์ฃผ๋ฌธ ์, ์ฃผ๋ฌธํ ์ ์์ต๋๋ค.
๋ผ๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
ย - ๋ฉ๋ด๊ฐ 20๊ฐ ์ด๊ณผ์ผ ๊ฒฝ์ฐ ๋ฉ๋ด๋ ํ๋ฒ์ ์ต๋ 20๊ฐ๊น์ง๋ง ์ฃผ๋ฌธํ ์ ์์ต๋๋ค.
๋ผ๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
ย - ์ด ์ฃผ๋ฌธ ๊ธ์ก์ด 10,000์ ๋ฏธ๋ง์ผ ๊ฒฝ์ฐ ์ด ์ฃผ๋ฌธ ๊ธ์ก 10,000์ ์ด์๋ถํฐ ์ด๋ฒคํธ๊ฐ ์ ์ฉ๋ฉ๋๋ค. ์ด๋๋ก ์ฃผ๋ฌธ์ ์งํํ์๊ฒ ์ต๋๊น?(Y/N)
์ด๋ผ๋ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ Y
๋ฅผ ์
๋ ฅ ๋ฐ์ ๊ฒฝ์ฐ ์งํ, N
์ ์
๋ ฅ ๋ฐ์ ๊ฒฝ์ฐ ์
๋ ฅ์ ๋ค์ ๋ฐ๋๋ค.
๐ 4. ํ๋ก๋ชจ์ ๊ด๋ จ ๊ธฐ๋ฅ
๋ฉ๋ด
<์ ํผํ์ด์ >
์์ก์ด์ํ(6,000), ํํ์ค(5,500), ์์ ์๋ฌ๋(8,000)
<๋ฉ์ธ>
ํฐ๋ณธ์คํ
์ดํฌ(55,000), ๋ฐ๋นํ๋ฆฝ(54,000), ํด์ฐ๋ฌผํ์คํ(35,000), ํฌ๋ฆฌ์ค๋ง์คํ์คํ(25,000)
<๋์ ํธ>
์ด์ฝ์ผ์ดํฌ(15,000), ์์ด์คํฌ๋ฆผ(5,000)
<์๋ฃ>
์ ๋ก์ฝ๋ผ(3,000), ๋ ๋์์ธ(60,000), ์ดํ์ธ(25,000)
4.1. ํ ์ธ ๊ธฐ๋ฅ
- ํฌ๋ฆฌ์ค๋ง์ค ๋๋ฐ์ด ํ ์ธ
ย - ์ด๋ฒคํธ ๊ธฐ๊ฐ: 2023.12.1 ~ 2023.12.25
ย - 1,000์์ผ๋ก ์์ํ์ฌ ํฌ๋ฆฌ์ค๋ง์ค๊ฐ ๋ค๊ฐ์ฌ์๋ก ๋ ๋ง๋ค ํ ์ธ ๊ธ์ก์ด 100์์ฉ ์ฆ๊ฐํ๋ค.
ย - ์ด์ฃผ๋ฌธ ๊ธ์ก์์ ํด๋น ๊ธ์ก๋งํผ ํ ์ธํ๋ค. (e.g. ์์์ผ์ธ 12์ 1์ผ์ 1,000์, 2์ผ์ 1,100์, โฆ, 25์ผ์ 3,400์ ํ ์ธ)
- ํ์ผ ํ ์ธ(์ผ์์ผ~๋ชฉ์์ผ)
ย - ๋์ ํธ ๋ฉ๋ด๋ฅผ ๋ฉ๋ด 1๊ฐ๋น 2,023์ ํ ์ธํ๋ค.
- ์ฃผ๋ง ํ ์ธ(๊ธ์์ผ~ํ ์์ผ)
ย - ๋ฉ์ธ ๋ฉ๋ด๋ฅผ ๋ฉ๋ด 1๊ฐ๋น 2,023์ ํ ์ธํ๋ค.
- ํน๋ณ ํ ์ธ
ย - ์ด๋ฒคํธ ๋ฌ๋ ฅ์ ๋ณ์ด ์์ผ๋ฉด ์ด ์ฃผ๋ฌธ ๊ธ์ก์์ 1,000์ ํ ์ธํ๋ค.
ย - ๋ณ์ด ํ์๋ ๋ ์ง๋ ๋งค์ฃผ ์ผ์์ผ๊ณผ ํฌ๋ฆฌ์ค๋ง์ค ๋น์ผ์ด๋ค. (3์ผ, 10์ผ, 17์ผ, 24์ผ, 25์ผ, 31์ผ)
4.2. ์ฆ์ ์ด๋ฒคํธ ๊ธฐ๋ฅ
- ํ ์ธ ์ ์ด ์ฃผ๋ฌธ ๊ธ์ก์ด 12๋ง์ ์ด์์ผ ๋, ์ดํ์ธ 1๊ฐ๋ฅผ ์ฆ์ ํ๋ค.
4.3 ํํ ๋ด์ญ ์์ฑ ๊ธฐ๋ฅ
- ์๋์ ๊ฐ์ ํ์์ผ๋ก ํํ ๋ด์ญ์ ์์ฑํ๋ค.
ํฌ๋ฆฌ์ค๋ง์ค ๋๋ฐ์ด ํ ์ธ: -1,200์
ํ์ผ ํ ์ธ: -4,046์
ํน๋ณ ํ ์ธ: -1,000์
์ฆ์ ์ด๋ฒคํธ: -25,000์
4.4 ์ด ํํ ๊ธ์ก, ํ ์ธ ํ ์์ ๊ฒฐ์ ๊ธ์ก ๊ณ์ฐ ๊ธฐ๋ฅ
- ์ด ํํ ๊ธ์ก๊ณผ ํ ์ธ ํ ์์ ๊ฒฐ์ ๊ธ์ก์ ๊ณ์ฐํ๋ค.
4.5 ์ด๋ฒคํธ ๋ฐฐ์ง ๋ถ์ฌ ๊ธฐ๋ฅ
- ์ดํํ ๊ธ์ก ๋ณ ์๋์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ด๋ฒคํธ ๋ฐฐ์ง๋ฅผ ๋ถ์ฌํ๋ค.
ย - 5์ฒ ์ ์ด์: ๋ณ
ย - 1๋ง ์ ์ด์: ํธ๋ฆฌ
ย - 2๋ง ์ ์ด์: ์ฐํ
5. MVC ๋์์ธ
Model
-
DateModel.js
: ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ ์ง ๋ฐ์ดํฐ์ ๊ด๋ จ๋ ๋ก์ง ์ฒ๋ฆฌ -
MenuModel.js
: ์ฌ์ฉ์๊ฐ ์ ํํ ๋ฉ๋ด์ ์๋ ๊ด๋ จ ๋ก์ง ์ฒ๋ฆฌ -
EventModel.js
: ์ด๋ฒคํธ ๋ฐ ํ ์ธ ๋ก์ง ์ฒ๋ฆฌ
View
-
InputView.js
: ์ฌ์ฉ์ ์ ๋ ฅ ๊ด๋ จ ๊ธฐ๋ฅ -
OutputView.js
: ์ฌ์ฉ์์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ
Control
-
AppController.js
: ๋ชจ๋ธ๊ณผ ๋ทฐ๋ฅผ ์ฐ๊ฒฐํ๊ณ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฉ์ธ ๋ก์ง์ ์คํ
Utils
-
Validation.js
: ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ ํจ์ฑ ๊ฒ์ฌ ๋ก์ง -
Constants.js
: ํ๋ก๊ทธ๋จ ์ ๋ฐ์์ ์ฌ์ฉ๋๋ ์์ ์ ์(๋ฉ๋ด ๋ชฉ๋ก, ํ ์ธ ์ ๋ณด, ์๋ฌ ๋ฌธ์, ๋งค์ง ๋๋ฒ ๋ฑ)
์ฌ์ฉ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
This line appears after every note.
Notes mentioning this note
There are no notes linking to this note.