- κ΄λ ¨ ν¨μλ₯Ό λ¬Άμ΄ ν΄λμ€λ₯Ό λ§λ€κ³ , κ°μ²΄λ€μ΄ νλ ₯νμ¬ νλμ ν° κΈ°λ₯μ μννλλ‘ νλ€.
- ν΄λμ€μ ν¨μμ λν λ¨μ ν μ€νΈλ₯Ό ν΅ν΄ μλν λλ‘ μ ννκ² μλνλ μμμ ν보νλ€.
- 3μ£Ό μ°¨ κ³΅ν΅ νΌλλ°±μ μ΅λν λ°μνλ€.
- λΉκ³΅κ° μ μ₯μ κ³Όμ μ§ν κ°μ΄λλ₯Ό μ°Έκ³ νμ¬ μλ‘μ΄ λ°©μμΌλ‘ κ³Όμ μ μΆλ¬Όμ μ μΆνλ€.
μλ μ§λ¬Έμ λν μ΅μ’ νκ³ λ₯Ό μ§ννκ³ μκ°μ ꡬ체μ μΈ κ²°κ³Όλ₯Ό μμ±νλ€. μκ°μ ν μ€νΈλ‘ μμ±ν΄μΌ νλ©° μΈλΆ λ§ν¬λ νμ©νμ§ μλλ€.
- μ§μμλ μ€κ° νκ³ μμ νμ€μ μΈ λͺ©νλ₯Ό μ€μ νκ³ μ΄λ₯Ό λ¬μ±νλ€κ³ μκ°νλμ? κ·Έ μ΄μ λ 무μμΈκ°μ?
- μ€κ° νκ³ μμ μ‘°μ ν λͺ©νκ° μ€μ λͺ©ν λ¬μ±μ λμμ΄ λμλμ? λͺ©νλ₯Ό λ¬μ±νλ λ° μ΄λ€ μ μ΄ ν¨κ³Όμ μ΄μλ€κ³ μκ°νλμ?
- κ° λ―Έμ μ λͺ©νλ₯Ό λ¬μ±νκΈ° μν΄ μΈμ΄ κ³νμ μ μ΄ννλμ? κ·Έ κ³Όμ μμ μ΄λ€ μ λ΅μ΄ ν¨κ³Όκ° μμλμ?
- λͺ°μ νκ³ ν¨κ» μ±μ₯νλ κ³Όμ μ ν΅ν΄ μΈμ κΉμλ κ²½νμ΄λ λ³νκ° μμλμ?
- λ―Έμ μΒ κ³Όμ μ§ν μꡬ μ¬ν,Β κΈ°λ₯ μꡬ μ¬ν,Β νλ‘κ·Έλλ° μꡬ μ¬νΒ μΈ κ°μ§λ‘ ꡬμ±λμ΄ μλ€.
- μΈ κ°μ μꡬ μ¬νμ λ§μ‘±νκΈ° μν΄ λ Έλ ₯νλ€. νΉν κΈ°λ₯μ ꡬννκΈ° μ μ κΈ°λ₯ λͺ©λ‘μ λ§λ€κ³ , κΈ°λ₯ λ¨μλ‘ μ»€λ° νλ λ°©μμΌλ‘ μ§ννλ€.
- κΈ°λ₯ μꡬ μ¬νμ κΈ°μ¬λμ§ μμ λ΄μ©μ μ€μ€λ‘ νλ¨νμ¬ κ΅¬ννλ€.
- λ§€μ£Ό μ§νν λ―Έμ
μ νμμΌ μ€ν 3μλΆν° νμΈν μ μμΌλ©°, λ€μ μ£Ό μμμΌκΉμ§ ꡬνμ μλ£νμ¬ μ μΆν΄μΌ νλ€.Β μ μΆμ μΌμμΌ μ€ν 3μλΆν° κ°λ₯νλ€.
- μ ν΄μ§ μκ°μ μ§ν€μ§ μμ κ²½μ° λ―Έμ μ μ μΆνμ§ μμ κ²μΌλ‘ κ°μ£Όνλ€.
- μ ν΄μ§ μκ° λ΄μ μ°μνν ν¬μ½μ€ κ³μ μ νλ ₯μλ‘ μ΄λνμ§ μμΌλ©΄ μ μΆνμ§ μμ κ²μΌλ‘ κ°μ£Όνλ€.
- μ’ λ£ μΌμ μ΄νμλ μΆκ° νΈμλ₯Ό νμ©νμ§ μλλ€.
- λ―Έμ
ꡬνμ μλ£ν ν GitHubμ ν΅ν΄ μ μΆν΄μΌ νλ€.
- GitHubμ νμ©ν μ μΆ λ°©λ²μΒ ν리μ½μ€ κ³Όμ μ μΆΒ λ¬Έμλ₯Ό μ°Έκ³ ν΄ μ μΆνλ€.
- GitHubμ λ―Έμ
μ μ μΆν νΒ μ°μνν
ν¬μ½μ€ μ§μ νλ«νΌμμ κ³Όμ μ μΆλ¬Όμ μ΅μ’
μ μΆνλ€.
- μμΈν μλ΄λΒ μ μΆ κ°μ΄λλ₯Ό μ°Έκ³ νλ€.
- κ³Όμ λ₯Ό μννλ©΄μ λλ μ , λ°°μ΄ μ , λ§μ μκ°μ ν¬μν λΆλΆ λ± μμ λ‘κ² μμ±νλ€.
- κΈ°λ₯μ μ¬λ°λ₯΄κ² ꡬννλλΌλΒ μꡬ μ¬νμ λͺ μλ μΆλ ₯ νμμ λ°λ₯΄μ§ μμΌλ©΄ 0μ μ λ°κ² λλ€.
- κΈ°λ₯ ꡬνμ μλ£ν ν μλ κ°μ΄λμ λ°λΌ λͺ¨λ ν μ€νΈκ° μ±κ³΅μ μΌλ‘ μ€νλλμ§ νμΈνλ€.
- ν μ€νΈκ° μ€ν¨νλ©΄ μ μκ° 0μ μ΄ λλ―λ‘ μ μΆνκΈ° μ μ λ°λμ νμΈνλ€.
- IntelliJ IDEA λλ Android Studioμ κ°μ IDEμμ Kotlin 1.9.24λ‘ μ€νλλμ§ νμΈνλ€.
- ν°λ―Έλμμ Mac λλ Linux μ¬μ©μμ κ²½μ°Β
./gradlew clean test
Β λͺ λ Ήμ μ€ννκ³ , Windows μ¬μ©μμ κ²½μ°Βgradlew.bat clean test
Β λλΒ.\gradlew.bat clean test
Β λͺ λ Ήμ μ€νν λ λͺ¨λ ν μ€νΈκ° μλμ κ°μ΄ ν΅κ³Όνλμ§ νμΈνλ€.
BUILD SUCCESSFUL in 0s
- λ―Έμ μΒ νΈμμ Β μ μ₯μλ₯Ό μμ±νλ κ²μΌλ‘ μμνλ€.
- κΈ°λ₯μ ꡬννκΈ° μ Β
README.md
μ ꡬνν κΈ°λ₯ λͺ©λ‘μ μ λ¦¬ν΄ μΆκ°νλ€. - Gitμ μ»€λ° λ¨μλ μ λ¨κ³μμΒ
README.md
μ μ 리ν κΈ°λ₯ λͺ©λ‘ λ¨μλ‘ μΆκ°νλ€.- AngularJS Git Commit Message Conventionsμ μ°Έκ³ ν΄ μ»€λ° λ©μμ§λ₯Ό μμ±νλ€.
- μμΈν κ³Όμ μ§ν λ°©λ²μ ν리μ½μ€ μ§ν κ°μ΄λ λ¬Έμλ₯Ό μ°Έκ³ νλ€.
ꡬ맀μμ ν μΈ ννκ³Ό μ¬κ³ μν©μ κ³ λ €νμ¬ μ΅μ’ κ²°μ κΈμ‘μ κ³μ°νκ³ μλ΄νλ κ²°μ μμ€ν μ ꡬννλ€.
- μ¬μ©μκ° μ
λ ₯ν μνμ κ°κ²©κ³Ό μλμ κΈ°λ°μΌλ‘ μ΅μ’
κ²°μ κΈμ‘μ κ³μ°νλ€.
- μ΄κ΅¬λ§€μ‘μ μνλ³ κ°κ²©κ³Ό μλμ κ³±νμ¬ κ³μ°νλ©°, νλ‘λͺ¨μ λ° λ©€λ²μ ν μΈ μ μ± μ λ°μνμ¬ μ΅μ’ κ²°μ κΈμ‘μ μ°μΆνλ€.
- ꡬ맀 λ΄μκ³Ό μ°μΆν κΈμ‘ μ 보λ₯Ό μμμ¦μΌλ‘ μΆλ ₯νλ€.
- μμμ¦ μΆλ ₯ ν μΆκ° ꡬ맀λ₯Ό μ§νν μ§ λλ μ’ λ£ν μ§λ₯Ό μ νν μ μλ€.
- μ¬μ©μκ° μλͺ»λ κ°μ μ
λ ₯ν κ²½μ°Β
IllegalArgumentException
λ₯Ό λ°μμν€κ³ , "[ERROR]"λ‘ μμνλ μλ¬ λ©μμ§λ₯Ό μΆλ ₯ ν κ·Έ λΆλΆλΆν° μ λ ₯μ λ€μ λ°λλ€.Exception
μ΄ μλΒIllegalArgumentException
,ΒIllegalStateException
Β λ±κ³Ό κ°μ λͺ νν μ νμ μ²λ¦¬νλ€.
- κ° μνμ μ¬κ³ μλμ κ³ λ €νμ¬ κ²°μ κ°λ₯ μ¬λΆλ₯Ό νμΈνλ€.
- κ³ κ°μ΄ μνμ ꡬ맀ν λλ§λ€, κ²°μ λ μλλ§νΌ ν΄λΉ μνμ μ¬κ³ μμ μ°¨κ°νμ¬ μλμ κ΄λ¦¬νλ€.
- μ¬κ³ λ₯Ό μ°¨κ°ν¨μΌλ‘μ¨ μμ€ν μ μ΅μ μ¬κ³ μνλ₯Ό μ μ§νλ©°, λ€μ κ³ κ°μ΄ ꡬ맀ν λ μ νν μ¬κ³ μ 보λ₯Ό μ 곡νλ€.
- μ€λ λ μ§κ° νλ‘λͺ¨μ κΈ°κ° λ΄μ ν¬ν¨λ κ²½μ°μλ§ ν μΈμ μ μ©νλ€.
- νλ‘λͺ¨μ μ Nκ° κ΅¬λ§€ μ 1κ° λ¬΄λ£ μ¦μ (Buy N Get 1 Free)μ ννλ‘ μ§νλλ€.
- 1+1 λλ 2+1 νλ‘λͺ¨μ μ΄ κ°κ° μ§μ λ μνμ μ μ©λλ©°, λμΌ μνμ μ¬λ¬ νλ‘λͺ¨μ μ΄ μ μ©λμ§ μλλ€.
- νλ‘λͺ¨μ ννμ νλ‘λͺ¨μ μ¬κ³ λ΄μμλ§ μ μ©ν μ μλ€.
- νλ‘λͺ¨μ κΈ°κ° μ€μ΄λΌλ©΄ νλ‘λͺ¨μ μ¬κ³ λ₯Ό μ°μ μ μΌλ‘ μ°¨κ°νλ©°, νλ‘λͺ¨μ μ¬κ³ κ° λΆμ‘±ν κ²½μ°μλ μΌλ° μ¬κ³ λ₯Ό μ¬μ©νλ€.
- νλ‘λͺ¨μ μ μ©μ΄ κ°λ₯ν μνμ λν΄ κ³ κ°μ΄ ν΄λΉ μλλ³΄λ€ μ κ² κ°μ Έμ¨ κ²½μ°, νμν μλμ μΆκ°λ‘ κ°μ Έμ€λ©΄ ννμ λ°μ μ μμμ μλ΄νλ€.
- νλ‘λͺ¨μ μ¬κ³ κ° λΆμ‘±νμ¬ μΌλΆ μλμ νλ‘λͺ¨μ νν μμ΄ κ²°μ ν΄μΌ νλ κ²½μ°, μΌλΆ μλμ λν΄ μ κ°λ‘ κ²°μ νκ² λ¨μ μλ΄νλ€.
- λ©€λ²μ νμμ νλ‘λͺ¨μ λ―Έμ μ© κΈμ‘μ 30%λ₯Ό ν μΈλ°λλ€.
- νλ‘λͺ¨μ μ μ© ν λ¨μ κΈμ‘μ λν΄ λ©€λ²μ ν μΈμ μ μ©νλ€.
- λ©€λ²μ ν μΈμ μ΅λ νλλ 8,000μμ΄λ€.
- μμμ¦μ κ³ κ°μ ꡬ맀 λ΄μκ³Ό ν μΈμ μμ½νμ¬ μΆλ ₯νλ€.
- μμμ¦ νλͺ©μ μλμ κ°λ€.
- ꡬ맀 μν λ΄μ: ꡬ맀ν μνλͺ , μλ, κ°κ²©
- μ¦μ μν λ΄μ: νλ‘λͺ¨μ μ λ°λΌ 무λ£λ‘ μ 곡λ μ¦μ μνμ λͺ©λ‘
- κΈμ‘ μ 보
- μ΄κ΅¬λ§€μ‘: ꡬ맀ν μνμ μ΄ μλκ³Ό μ΄ κΈμ‘
- νμ¬ν μΈ: νλ‘λͺ¨μ μ μν΄ ν μΈλ κΈμ‘
- λ©€λ²μν μΈ: λ©€λ²μμ μν΄ μΆκ°λ‘ ν μΈλ κΈμ‘
- λ΄μ€λ: μ΅μ’ κ²°μ κΈμ‘
- μμμ¦μ κ΅¬μ± μμλ₯Ό 보기 μ’κ² μ λ ¬νμ¬ κ³ κ°μ΄ μ½κ² κΈμ‘κ³Ό μλμ νμΈν μ μκ² νλ€.
- ꡬνμ νμν μν λͺ©λ‘κ³Ό νμ¬ λͺ©λ‘μ νμΌ μ
μΆλ ₯μ ν΅ν΄ λΆλ¬μ¨λ€.
src/main/resources/products.md
κ³ΌΒsrc/main/resources/promotions.md
Β νμΌμ μ΄μ©νλ€.- λ νμΌ λͺ¨λ λ΄μ©μ νμμ μ μ§νλ€λ©΄ κ°μ μμ ν μ μλ€.
- ꡬ맀ν μνκ³Ό μλμ μ λ ₯ λ°λλ€. μνλͺ , μλμ νμ΄ν(-)μΌλ‘, κ°λ³ μνμ λκ΄νΈ([])λ‘ λ¬Άμ΄ μΌν(,)λ‘ κ΅¬λΆνλ€.
[μ½λΌ-10],[μ¬μ΄λ€-3]
- νλ‘λͺ¨μ
μ μ©μ΄ κ°λ₯ν μνμ λν΄ κ³ κ°μ΄ ν΄λΉ μλλ³΄λ€ μ κ² κ°μ Έμ¨ κ²½μ°, κ·Έ μλλ§νΌ μΆκ° μ¬λΆλ₯Ό μ
λ ₯λ°λλ€.
- Y: μ¦μ λ°μ μ μλ μνμ μΆκ°νλ€.
- N: μ¦μ λ°μ μ μλ μνμ μΆκ°νμ§ μλλ€.
Y
- νλ‘λͺ¨μ
μ¬κ³ κ° λΆμ‘±νμ¬ μΌλΆ μλμ νλ‘λͺ¨μ
νν μμ΄ κ²°μ ν΄μΌ νλ κ²½μ°, μΌλΆ μλμ λν΄ μ κ°λ‘ κ²°μ ν μ§ μ¬λΆλ₯Ό μ
λ ₯λ°λλ€.
- Y: μΌλΆ μλμ λν΄ μ κ°λ‘ κ²°μ νλ€.
- N: μ κ°λ‘ κ²°μ ν΄μΌνλ μλλ§νΌ μ μΈν ν κ²°μ λ₯Ό μ§ννλ€.
Y
- λ©€λ²μ ν μΈ μ μ© μ¬λΆλ₯Ό μ
λ ₯ λ°λλ€.
- Y: λ©€λ²μ ν μΈμ μ μ©νλ€.
- N: λ©€λ²μ ν μΈμ μ μ©νμ§ μλλ€.
Y
- μΆκ° ꡬ맀 μ¬λΆλ₯Ό μ
λ ₯ λ°λλ€.
- Y: μ¬κ³ κ° μ λ°μ΄νΈλ μν λͺ©λ‘μ νμΈ ν μΆκ°λ‘ ꡬ맀λ₯Ό μ§ννλ€.
- N: ꡬ맀λ₯Ό μ’ λ£νλ€.
Y
- νμ μΈμ¬μ ν¨κ» μνλͺ
, κ°κ²©, νλ‘λͺ¨μ
μ΄λ¦, μ¬κ³ λ₯Ό μλ΄νλ€. λ§μ½ μ¬κ³ κ° 0κ°λΌλ©΄Β
μ¬κ³ μμ
μ μΆλ ₯νλ€.
μλ
νμΈμ. WνΈμμ μ
λλ€.
νμ¬ λ³΄μ νκ³ μλ μνμ
λλ€.
- μ½λΌ 1,000μ 10κ° νμ°2+1
- μ½λΌ 1,000μ 10κ°
- μ¬μ΄λ€ 1,000μ 8κ° νμ°2+1
- μ¬μ΄λ€ 1,000μ 7κ°
- μ€λ μ§μ£Όμ€ 1,800μ 9κ° MDμΆμ²μν
- μ€λ μ§μ£Όμ€ 1,800μ μ¬κ³ μμ
- νμ°μ 1,200μ 5κ° νμ°2+1
- νμ°μ 1,200μ μ¬κ³ μμ
- λ¬Ό 500μ 10κ°
- λΉνλ―Όμν° 1,500μ 6κ°
- κ°μμΉ© 1,500μ 5κ° λ°μ§ν μΈ
- κ°μμΉ© 1,500μ 5κ°
- μ΄μ½λ° 1,200μ 5κ° MDμΆμ²μν
- μ΄μ½λ° 1,200μ 5κ°
- μλμ§λ° 2,000μ 5κ°
- μ μλμλ½ 6,400μ 8κ°
- μ»΅λΌλ©΄ 1,700μ 1κ° MDμΆμ²μν
- μ»΅λΌλ©΄ 1,700μ 10κ°
ꡬ맀νμ€ μνλͺ
κ³Ό μλμ μ
λ ₯ν΄ μ£ΌμΈμ. (μ: [μ¬μ΄λ€-2],[κ°μμΉ©-1])
- νλ‘λͺ¨μ μ μ©μ΄ κ°λ₯ν μνμ λν΄ κ³ κ°μ΄ ν΄λΉ μλλ§νΌ κ°μ Έμ€μ§ μμμ κ²½μ°, ννμ λν μλ΄ λ©μμ§λ₯Ό μΆλ ₯νλ€.
νμ¬ {μνλͺ
}μ(λ) 1κ°λ₯Ό 무λ£λ‘ λ λ°μ μ μμ΅λλ€. μΆκ°νμκ² μ΅λκΉ? (Y/N)
- νλ‘λͺ¨μ μ¬κ³ κ° λΆμ‘±νμ¬ μΌλΆ μλμ νλ‘λͺ¨μ νν μμ΄ κ²°μ ν΄μΌ νλ κ²½μ°, μΌλΆ μλμ λν΄ μ κ°λ‘ κ²°μ ν μ§ μ¬λΆμ λν μλ΄ λ©μμ§λ₯Ό μΆλ ₯νλ€.
νμ¬ {μνλͺ
} {μλ}κ°λ νλ‘λͺ¨μ
ν μΈμ΄ μ μ©λμ§ μμ΅λλ€. κ·Έλλ ꡬ맀νμκ² μ΅λκΉ? (Y/N)
- λ©€λ²μ ν μΈ μ μ© μ¬λΆλ₯Ό νμΈνκΈ° μν΄ μλ΄ λ¬Έκ΅¬λ₯Ό μΆλ ₯νλ€.
λ©€λ²μ ν μΈμ λ°μΌμκ² μ΅λκΉ? (Y/N)
- ꡬ맀 μν λ΄μ, μ¦μ μν λ΄μ, κΈμ‘ μ 보λ₯Ό μΆλ ₯νλ€.
===========W νΈμμ =============
μνλͺ
μλ κΈμ‘
μ½λΌ 3 3,000
μλμ§λ° 5 10,000
===========μ¦ μ =============
μ½λΌ 1
==============================
μ΄κ΅¬λ§€μ‘ 8 13,000
νμ¬ν μΈ -1,000
λ©€λ²μν μΈ -3,000
λ΄μ€λ 9,000
- μΆκ° ꡬ맀 μ¬λΆλ₯Ό νμΈνκΈ° μν΄ μλ΄ λ¬Έκ΅¬λ₯Ό μΆλ ₯νλ€.
κ°μ¬ν©λλ€. ꡬ맀νκ³ μΆμ λ€λ₯Έ μνμ΄ μλμ? (Y/N)
- μ¬μ©μκ° μλͺ»λ κ°μ μ
λ ₯νμ λ, "[ERROR]"λ‘ μμνλ μ€λ₯ λ©μμ§μ ν¨κ» μν©μ λ§λ μλ΄λ₯Ό μΆλ ₯νλ€.
- ꡬ맀ν μνκ³Ό μλ νμμ΄ μ¬λ°λ₯΄μ§ μμ κ²½μ°:Β
[ERROR] μ¬λ°λ₯΄μ§ μμ νμμΌλ‘ μ λ ₯νμ΅λλ€. λ€μ μ λ ₯ν΄ μ£ΌμΈμ.
- μ‘΄μ¬νμ§ μλ μνμ μ
λ ₯ν κ²½μ°:Β
[ERROR] μ‘΄μ¬νμ§ μλ μνμ λλ€. λ€μ μ λ ₯ν΄ μ£ΌμΈμ.
- ꡬ맀 μλμ΄ μ¬κ³ μλμ μ΄κ³Όν κ²½μ°:Β
[ERROR] μ¬κ³ μλμ μ΄κ³Όνμ¬ κ΅¬λ§€ν μ μμ΅λλ€. λ€μ μ λ ₯ν΄ μ£ΌμΈμ.
- κΈ°ν μλͺ»λ μ
λ ₯μ κ²½μ°:Β
[ERROR] μλͺ»λ μ λ ₯μ λλ€. λ€μ μ λ ₯ν΄ μ£ΌμΈμ.
- ꡬ맀ν μνκ³Ό μλ νμμ΄ μ¬λ°λ₯΄μ§ μμ κ²½μ°:Β
μλ
νμΈμ. WνΈμμ μ
λλ€.
νμ¬ λ³΄μ νκ³ μλ μνμ
λλ€.
- μ½λΌ 1,000μ 10κ° νμ°2+1
- μ½λΌ 1,000μ 10κ°
- μ¬μ΄λ€ 1,000μ 8κ° νμ°2+1
- μ¬μ΄λ€ 1,000μ 7κ°
- μ€λ μ§μ£Όμ€ 1,800μ 9κ° MDμΆμ²μν
- μ€λ μ§μ£Όμ€ 1,800μ μ¬κ³ μμ
- νμ°μ 1,200μ 5κ° νμ°2+1
- νμ°μ 1,200μ μ¬κ³ μμ
- λ¬Ό 500μ 10κ°
- λΉνλ―Όμν° 1,500μ 6κ°
- κ°μμΉ© 1,500μ 5κ° λ°μ§ν μΈ
- κ°μμΉ© 1,500μ 5κ°
- μ΄μ½λ° 1,200μ 5κ° MDμΆμ²μν
- μ΄μ½λ° 1,200μ 5κ°
- μλμ§λ° 2,000μ 5κ°
- μ μλμλ½ 6,400μ 8κ°
- μ»΅λΌλ©΄ 1,700μ 1κ° MDμΆμ²μν
- μ»΅λΌλ©΄ 1,700μ 10κ°
ꡬ맀νμ€ μνλͺ
κ³Ό μλμ μ
λ ₯ν΄ μ£ΌμΈμ. (μ: [μ¬μ΄λ€-2],[κ°μμΉ©-1])
[μ½λΌ-3],[μλμ§λ°-5]
λ©€λ²μ ν μΈμ λ°μΌμκ² μ΅λκΉ? (Y/N)
Y
===========W νΈμμ =============
μνλͺ
μλ κΈμ‘
μ½λΌ 3 3,000
μλμ§λ° 5 10,000
===========μ¦ μ =============
μ½λΌ 1
==============================
μ΄κ΅¬λ§€μ‘ 8 13,000
νμ¬ν μΈ -1,000
λ©€λ²μν μΈ -3,000
λ΄μ€λ 9,000
κ°μ¬ν©λλ€. ꡬ맀νκ³ μΆμ λ€λ₯Έ μνμ΄ μλμ? (Y/N)
Y
μλ
νμΈμ. WνΈμμ μ
λλ€.
νμ¬ λ³΄μ νκ³ μλ μνμ
λλ€.
- μ½λΌ 1,000μ 7κ° νμ°2+1
- μ½λΌ 1,000μ 10κ°
- μ¬μ΄λ€ 1,000μ 8κ° νμ°2+1
- μ¬μ΄λ€ 1,000μ 7κ°
- μ€λ μ§μ£Όμ€ 1,800μ 9κ° MDμΆμ²μν
- μ€λ μ§μ£Όμ€ 1,800μ μ¬κ³ μμ
- νμ°μ 1,200μ 5κ° νμ°2+1
- νμ°μ 1,200μ μ¬κ³ μμ
- λ¬Ό 500μ 10κ°
- λΉνλ―Όμν° 1,500μ 6κ°
- κ°μμΉ© 1,500μ 5κ° λ°μ§ν μΈ
- κ°μμΉ© 1,500μ 5κ°
- μ΄μ½λ° 1,200μ 5κ° MDμΆμ²μν
- μ΄μ½λ° 1,200μ 5κ°
- μλμ§λ° 2,000μ μ¬κ³ μμ
- μ μλμλ½ 6,400μ 8κ°
- μ»΅λΌλ©΄ 1,700μ 1κ° MDμΆμ²μν
- μ»΅λΌλ©΄ 1,700μ 10κ°
ꡬ맀νμ€ μνλͺ
κ³Ό μλμ μ
λ ₯ν΄ μ£ΌμΈμ. (μ: [μ¬μ΄λ€-2],[κ°μμΉ©-1])
[μ½λΌ-10]
νμ¬ μ½λΌ 4κ°λ νλ‘λͺ¨μ
ν μΈμ΄ μ μ©λμ§ μμ΅λλ€. κ·Έλλ ꡬ맀νμκ² μ΅λκΉ? (Y/N)
Y
λ©€λ²μ ν μΈμ λ°μΌμκ² μ΅λκΉ? (Y/N)
N
===========W νΈμμ =============
μνλͺ
μλ κΈμ‘
μ½λΌ 10 10,000
===========μ¦ μ =============
μ½λΌ 2
==============================
μ΄κ΅¬λ§€μ‘ 10 10,000
νμ¬ν μΈ -2,000
λ©€λ²μν μΈ -0
λ΄μ€λ 8,000
κ°μ¬ν©λλ€. ꡬ맀νκ³ μΆμ λ€λ₯Έ μνμ΄ μλμ? (Y/N)
Y
μλ
νμΈμ. WνΈμμ μ
λλ€.
νμ¬ λ³΄μ νκ³ μλ μνμ
λλ€.
- μ½λΌ 1,000μ μ¬κ³ μμ νμ°2+1
- μ½λΌ 1,000μ 7κ°
- μ¬μ΄λ€ 1,000μ 8κ° νμ°2+1
- μ¬μ΄λ€ 1,000μ 7κ°
- μ€λ μ§μ£Όμ€ 1,800μ 9κ° MDμΆμ²μν
- μ€λ μ§μ£Όμ€ 1,800μ μ¬κ³ μμ
- νμ°μ 1,200μ 5κ° νμ°2+1
- νμ°μ 1,200μ μ¬κ³ μμ
- λ¬Ό 500μ 10κ°
- λΉνλ―Όμν° 1,500μ 6κ°
- κ°μμΉ© 1,500μ 5κ° λ°μ§ν μΈ
- κ°μμΉ© 1,500μ 5κ°
- μ΄μ½λ° 1,200μ 5κ° MDμΆμ²μν
- μ΄μ½λ° 1,200μ 5κ°
- μλμ§λ° 2,000μ μ¬κ³ μμ
- μ μλμλ½ 6,400μ 8κ°
- μ»΅λΌλ©΄ 1,700μ 1κ° MDμΆμ²μν
- μ»΅λΌλ©΄ 1,700μ 10κ°
ꡬ맀νμ€ μνλͺ
κ³Ό μλμ μ
λ ₯ν΄ μ£ΌμΈμ. (μ: [μ¬μ΄λ€-2],[κ°μμΉ©-1])
[μ€λ μ§μ£Όμ€-1]
νμ¬ μ€λ μ§μ£Όμ€μ(λ) 1κ°λ₯Ό 무λ£λ‘ λ λ°μ μ μμ΅λλ€. μΆκ°νμκ² μ΅λκΉ? (Y/N)
Y
λ©€λ²μ ν μΈμ λ°μΌμκ² μ΅λκΉ? (Y/N)
Y
===========W νΈμμ =============
μνλͺ
μλ κΈμ‘
μ€λ μ§μ£Όμ€ 2 3,600
===========μ¦ μ =============
μ€λ μ§μ£Όμ€ 1
==============================
μ΄κ΅¬λ§€μ‘ 2 3,600
νμ¬ν μΈ -1,800
λ©€λ²μν μΈ -0
λ΄μ€λ 1,800
κ°μ¬ν©λλ€. ꡬ맀νκ³ μΆμ λ€λ₯Έ μνμ΄ μλμ? (Y/N)
N
- JDK 21 λ²μ μμ μ€ν κ°λ₯ν΄μΌ νλ€.
- νλ‘κ·Έλ¨ μ€νμ μμμ μ Applicationμ main()μ΄λ€.
- build.gradle νμΌμ λ³κ²½ν μ μμΌλ©°, μ 곡λ λΌμ΄λΈλ¬λ¦¬ μ΄μΈμ μΈλΆ λΌμ΄λΈλ¬λ¦¬λ μ¬μ©νμ§ μλλ€.
- νλ‘κ·Έλ¨ μ’ λ£ μ System.exit()λ₯Ό νΈμΆνμ§ μλλ€.
- νλ‘κ·Έλλ° μꡬ μ¬νμμ λ¬λ¦¬ λͺ μνμ§ μλ ν νμΌ, ν¨ν€μ§ λ±μ μ΄λ¦μ λ°κΎΈκ±°λ μ΄λνμ§ μλλ€.
- μλ° μ½λ 컨벀μ μ μ§ν€λ©΄μ νλ‘κ·Έλλ°νλ€.
- κΈ°λ³Έμ μΌλ‘ Java Style Guideλ₯Ό μμΉμΌλ‘ νλ€.
- indent(μΈλ΄νΈ, λ€μ¬μ°κΈ°) depthλ₯Ό 3 μ΄ λμ§ μλλ‘ κ΅¬ννλ€. 2κΉμ§λ§ νμ©νλ€. μλ₯Ό λ€μ΄ whileλ¬Έ μμ ifλ¬Έμ΄ μμΌλ©΄ λ€μ¬μ°κΈ°λ 2μ΄λ€. ννΈ: indent(μΈλ΄νΈ, λ€μ¬μ°κΈ°) depthλ₯Ό μ€μ΄λ μ’μ λ°©λ²μ ν¨μ(λλ λ©μλ)λ₯Ό λΆλ¦¬νλ©΄ λλ€.
- 3 ν μ°μ°μλ₯Ό μ°μ§ μλλ€.
- ν¨μ(λλ λ©μλ)κ° ν κ°μ§ μΌλ§ νλλ‘ μ΅λν μκ² λ§λ€μ΄λΌ.
- JUnit 5μ AssertJλ₯Ό μ΄μ©νμ¬ μ 리ν κΈ°λ₯ λͺ©λ‘μ΄ μ μμ μΌλ‘ μλνλμ§ ν μ€νΈ μ½λλ‘ νμΈνλ€.
- else μμ½μ΄λ₯Ό μ°μ§ μλλ€.
- elseλ₯Ό μ°μ§ λ§λΌκ³ νλ switch/caseλ‘ κ΅¬ννλ κ²½μ°κ° μλλ° switch/caseλ νμ©νμ§ μλλ€. ννΈ: if 쑰건μ μμ κ°μ returnνλ λ°©μμΌλ‘ ꡬννλ©΄ elseλ₯Ό μ¬μ©νμ§ μμλ λλ€.
- Java Enumμ μ μ©νμ¬ νλ‘κ·Έλ¨μ ꡬννλ€.
- ꡬνν κΈ°λ₯μ λν λ¨μ ν μ€νΈλ₯Ό μμ±νλ€. (λ¨, UI, System.out, System.in, Scanner) λ‘μ§μ μ μΈνλ€.
-
ν¨μ(λλ λ©μλ)μ κΈΈμ΄κ° 10 λΌμΈμ λμ΄κ°μ§ μλλ‘ κ΅¬ννλ€.
-
ν¨μ(λλ λ©μλ)κ° ν κ°μ§ μΌλ§ μ νλλ‘ κ΅¬ννλ€.
-
μ μΆλ ₯μ λ΄λΉνλ ν΄λμ€λ₯Ό λ³λλ‘ κ΅¬ννλ€.
-
μλ InputView, OutputView ν΄λμ€λ₯Ό μ°Έκ³ νμ¬ μ μΆλ ₯ ν΄λμ€λ₯Ό ꡬννλ€. ν΄λμ€ μ΄λ¦, λ©μλ λ°ν μ ν, μκ·Έλμ² λ±μ μμ λ‘κ² μμ ν μ μλ€.
public class InputView {
public String readItem() {
System.out.println("ꡬ맀νμ€ μνλͺ
κ³Ό μλμ μ
λ ₯ν΄ μ£ΌμΈμ. (μ: [μ¬μ΄λ€-2],[κ°μμΉ©-1])");
String input = Console.readLine();
// ...
}
// ...
}
public class OutputView {
public void printProducts() {
System.out.println("- μ½λΌ 1,000μ 10 κ° νμ°2+1");
// ...
}
// ...
}
- camp.nextstep.edu.missionutilsμμ μ 곡νλ DateTimes λ° ConsoleAPIλ₯Ό μ¬μ©νμ¬ κ΅¬νν΄μΌ νλ€.
- νμ¬ λ μ§μ μκ°μ κ°μ Έμ€λ €λ©΄ camp.nextstep.edu.missionutils.DateTimesμ now() λ₯Ό νμ©νλ€.
- μ¬μ©μκ° μ λ ₯νλ κ°μ camp.nextstep.edu.missionutils.Consoleμ readLine()μ νμ©νλ€.