- λ―Έμ μ κΈ°λ₯ μꡬμ¬ν, νλ‘κ·Έλλ° μꡬμ¬ν, κ³Όμ μ§ν μꡬμ¬ν μΈ κ°μ§λ‘ ꡬμ±λμ΄ μλ€.
- μΈ κ°μ μꡬμ¬νμ λ§μ‘±νκΈ° μν΄ λ Έλ ₯νλ€. νΉν κΈ°λ₯μ ꡬννκΈ° μ μ κΈ°λ₯ λͺ©λ‘μ λ§λ€κ³ , κΈ°λ₯ λ¨μλ‘ μ»€λ° νλ λ°©μμΌλ‘ μ§ννλ€.
- κΈ°λ₯ μꡬμ¬νμ κΈ°μ¬λμ§ μμ λ΄μ©μ μ€μ€λ‘ νλ¨νμ¬ κ΅¬ννλ€.
λ°νλλ λμ μ΄ μ΅μνμ΄ λλ μνκΈ°λ₯Ό ꡬννλ€.
μλ¨μΒ νλ©λ΄κ° μ‘΄μ¬νλ©° κ° νμ λ°λΌ μ μ ν κΈ°λ₯μ μννλ€.
μν κ΄λ¦¬νμ μνκΈ°κ° λ³΄μ νκ³ μλΒ μνμ μΆκ°νλ κΈ°λ₯μ μννλ€.μλ μΆ©μ νμΒ μνκΈ°κ° λ³΄μ ν κΈμ‘μ μΆ©μ νλ κΈ°λ₯μ μννλ€.μν ꡬ맀νμ μ¬μ©μκ°Β κΈμ‘μ ν¬μ ν μ μμΌλ©°, ν¬μ ν κΈμ‘μ λ§μΆ°Β μνμ ꡬ맀νκ³ , λ¨μ κΈμ‘μ λν΄μλΒ μλμ λ°ννλ κΈ°λ₯μ μννλ€.- λ€λ₯Έ νμΌλ‘ μ΄λνλ€ λμμλ κΈ°μ‘΄ νμ μνκ° μ μ§λμ΄μΌ νλ€.
- localStorageλ₯Ό μ΄μ©νμ¬, μλ‘κ³ μΉ¨νλλΌλ κ°μ₯ μ΅κ·Όμ μμ ν μ 보λ€μ λΆλ¬μ¬ μ μλλ‘ νλ€.
μν κ΄λ¦¬νμμ, λ€μκ³Ό κ°μ κ·μΉμ λ°νμΌλ‘ μνμ μΆκ°νλ€.
- μ΅μ΄ μν λͺ©λ‘μ λΉμμ§ μνμ΄λ€.
- μνλͺ
, κ°κ²©, μλμ μ
λ ₯ν΄ μνμ μΆκ°ν μ μλ€.
- μν κ°κ²©μ 100μλΆν° μμνλ©°, 10μμΌλ‘ λλμ΄ λ¨μ΄μ ΈμΌ νλ€.
- μ¬μ©μλ μΆκ°ν μνμ νμΈν μ μλ€.
μλ μΆ©μ Β νμμ, λ€μκ³Ό κ°μ κ·μΉμΌλ‘ μνκΈ° 보μ κΈμ‘μ μΆ©μ νλ€.
μλ μΆ©μ Β νμμ μ΅μ΄ μνκΈ°κ° λ³΄μ ν κΈμ‘μ 0μμ΄λ©°, κ° λμ μ κ°μλ 0κ°μ΄λ€.- μλ μΆ©μ μ
λ ₯ μμμ μΆ©μ ν κΈμ‘μ μ
λ ₯ν ν,
μΆ©μ νκΈ°λ²νΌμ λλ¬ μνκΈ° 보μ κΈμ‘μ μΆ©μ ν μ μλ€.- μνκΈ° 보μ κΈμ‘μΒ
{κΈμ‘}μΒ νμμΌλ‘ λνλΈλ€.
- μνκΈ° 보μ κΈμ‘μΒ
- μνκΈ° 보μ κΈμ‘λ§νΌμ λμ μ΄ λ¬΄μμλ‘ μμ±λλ€.
- λμ μ κ°μλΒ
{κ°μ}κ°Β νμμΌλ‘ λνλΈλ€.
- λμ μ κ°μλΒ
- μνκΈ° 보μ κΈμ‘μ λμ νμ¬ μΆ©μ ν μ μλ€. μΆκ° μΆ©μ κΈμ‘λ§νΌμ λμ μ΄ λ¬΄μμλ‘ μμ±λμ΄ κΈ°μ‘΄ λμ λ€μ λν΄μ§λ€.
- μν ꡬ맀 νμμ ν¬μ ν κΈμ‘μ μνκΈ° 보μ κΈμ‘μ λνμ§ μλλ€.
μν ꡬ맀νμμ, λ€μκ³Ό κ°μ κ·μΉμ λ°νμΌλ‘ κΈμ‘μ μΆ©μ νκ³ , μνμ ꡬ맀νλ©°, μλμ λ°ννλ€.
μν ꡬ맀 νμ΄μ§μμ μ΅μ΄ μΆ©μ κΈμ‘μ 0μμ΄λ©°, λ°νλ κ° λμ μ κ°μλ 0κ°μ΄λ€.- μ¬μ©μλ ν¬μ
ν κΈμ‘ μ
λ ₯ μμμ ν¬μ
κΈμ‘μ μ
λ ₯ν ν,
ν¬μ νκΈ°λ²νΌμ μ΄μ©νμ¬ κΈμ‘μ ν¬μ νλ€.- κΈμ‘μ 10μμΌλ‘ λλμ΄ λ¨μ΄μ§λ κΈμ‘λ§ ν¬μ ν μ μλ€.
- μνκΈ°κ° λ³΄μ ν κΈμ‘μΒ
{κΈμ‘}μΒ νμμΌλ‘ λνλΈλ€.
- κΈμ‘μ λμ μΌλ‘ ν¬μ ν μ μλ€.
- νμ λ μνμ
ꡬ맀νκΈ°λ²νΌμ disabled λμ΄μΌ νλ€. - μ¬μ©μλΒ
λ°ννκΈ°Β λ²νΌμ ν΅ν΄ μλμ λ°ν λ°μ μ μλ€.
μν ꡬ맀 > μλ κ³μ° λͺ¨λ
μν ꡬ맀 νμμ μλ λ°ν μ λ€μκ³Ό κ°μ κ·μΉμ ν΅ν΄ μλμ λ°ννλ€.
- μλμ λλ €μ€ λλ νμ¬ λ³΄μ ν μ΅μ κ°μμ λμ μΌλ‘ μλμ λλ €μ€λ€.
- μ§νλ₯Ό μλμΌλ‘ λ°ννλ κ²½μ°λ μλ€κ³ κ°μ νλ€.
- μλμ λ°νν μ μλ κ²½μ° μλμΌλ‘ λ°νν μ μλ κΈμ‘λ§ λ°ννλ€.
- λμ μ κ°μλ₯Ό λνλ΄λ μ 보λΒ
{κ°μ}κ°Β νμμΌλ‘ λνλΈλ€.
κ° μμμ μλμ κ°μ μ νμλ₯Ό λ°λμ μ§μ νλ€.
ν λ©λ΄ λ²νΌ
μν ꡬ맀νμΌλ‘ μ΄λνλ λ©λ΄ λ²νΌ idλΒproduct-purchase-menuμ΄λ€.μλ μΆ©μ νμΌλ‘ μ΄λνλ λ©λ΄ λ²νΌ idλΒvending-machine-manage-menuμ΄λ€.μν κ΄λ¦¬νμΌλ‘ μ΄λνλ λ©λ΄ λ²νΌ idλΒproduct-add-menuμ΄λ€.
μν κ΄λ¦¬(μΆκ°) λ©λ΄
- μν μΆκ° μ
λ ₯ νΌμ μνλͺ
μ
λ ₯ μμμ idλΒ
product-name-inputμ΄λ€. - μν μΆκ° μ
λ ₯ νΌμ μν κ°κ²© μ
λ ₯ μμμ idλΒ
product-price-inputμ΄λ€. - μν μΆκ° μ
λ ₯ νΌμ μλ μ
λ ₯ μμμ idλΒ
product-quantity-inputμ΄λ€. - μν
μΆκ°νκΈ°λ²νΌ μμμ idλΒproduct-add-buttonμ΄λ€. - μΆκ°ν κ° μν μμμ classλͺ
μ
product-manage-itemμ΄λ©°, νμμ μλ μμλ€μ κ°λλ€.- μνλͺ
μ ν΄λΉνλ μμμ classλͺ
μΒ
product-manage-nameμ΄λ€. - κ°κ²©μ ν΄λΉνλ μμμ classλͺ
μΒ
product-manage-priceμ΄λ€. - μλμ ν΄λΉνλ μμμ classλͺ
μΒ
product-manage-quantityμ΄λ€.
- μνλͺ
μ ν΄λΉνλ μμμ classλͺ
μΒ
μλ μΆ©μ (μνκΈ° 보μ λμ ) λ©λ΄
- μνκΈ°κ° λ³΄μ ν κΈμ‘μ μΆ©μ ν μμμ idλΒ
vending-machine-charge-inputμ΄λ€. μΆ©μ νκΈ°Β λ²νΌμ ν΄λΉνλ μμμ idλΒvending-machine-charge-buttonμ΄λ€.- μΆ©μ λ κΈμ‘μ νμΈνλ μμμ idλΒ
vending-machine-charge-amountΒ μ΄λ€. - 보μ ν κ° λμ μ κ°μμ ν΄λΉνλ μμμ idλ λ€μκ³Ό κ°λ€.
- 500μ:Β
vending-machine-coin-500-quantity - 100μ:Β
vending-machine-coin-100-quantity - 50μ:Β
vending-machine-coin-50-quantity - 10μ:Β
vending-machine-coin-10-quantity
- 500μ:Β
μν ꡬ맀 λ©λ΄
- ν¬μ
κΈμ‘ μ
λ ₯ μμμ idλΒ
charge-inputμ΄λ€. - ν¬μ
νκΈ° λ²νΌ μμμ idλΒ
charge-buttonμ΄λ€. - ν¬μ
ν κΈμ‘μ νμΈνλ μμμ idλΒ
charge-amountμ΄λ€. - λ°ννκΈ° λ²νΌ μμμ idλΒ
coin-return-buttonμ΄λ€. - λ°νλ κ° λμ μ κ°μμ ν΄λΉνλ μμμ idλ λ€μκ³Ό κ°λ€.
- 500μ:Β
coin-500-quantity - 100μ:Β
coin-100-quantity - 50μ:Β
coin-50-quantity - 10μ:Β
coin-10-quantity
- 500μ:Β
- κ° μν μμμ classλͺ
μ
product-purchase-itemμ΄κ³ , νμμ μλ μμλ€μ κ°λλ€.- ꡬ맀 λ²νΌμ ν΄λΉνλ μμμ classλͺ
μΒ
purchase-buttonμ΄λ€. - μνλͺ
μ ν΄λΉνλ μμμ classλͺ
μΒ
product-purchase-nameμ΄λ€. - κ°κ²©μ ν΄λΉνλ μμμ classλͺ
μΒ
product-purchase-priceμ΄λ€. - μλμ ν΄λΉνλ μμμ classλͺ
μΒ
product-purchase-quantityμ΄λ€. - μνλͺ
μ
datasetΒ μμ±μ μ¬μ©νκ³ Βdata-product-nameΒ νμμΌλ‘ μ μ₯νλ€. - κ°κ²©μΒ
datasetΒ μμ±μ μ¬μ©νκ³ Βdata-product-priceΒ νμμΌλ‘ μ μ₯νλ€. - μλμΒ
datasetΒ μμ±μ μ¬μ©νκ³ Βdata-product-quantityΒ νμμΌλ‘ μ μ₯νλ€.
- ꡬ맀 λ²νΌμ ν΄λΉνλ μμμ classλͺ
μΒ
-
μλμ 무μμλ‘ μμ±νλ κΈ°λ₯μ
MissionUtilsλΌμ΄λΈλ¬λ¦¬μRandom.pickNumberInListλ₯Ό μ¬μ©ν΄ ꡬνλ€.MissionUtilsλΌμ΄λΈλ¬λ¦¬ μ€ν¬λ¦½νΈλindex.htmlμ μ΄λ―Έ ν¬ν¨λμ΄ μ μ κ°μ²΄μ μΆκ°λμ΄ μμΌλ―λ‘, λ°λ‘importνμ§ μμλ ꡬν μ½λ μ΄λμμλ μ¬μ©ν μ μλ€.
// ex) const randomNumber = Random.pickNumberInList([10, 50, 100, 500]);
- μ€ν¬λ¦½νΈ μΆκ° μΈμ μ£Όμ΄μ§Β
index.htmlνμΌμ μμ ν μ μλ€.- μ€νμΌ(css)μ μ±μ μμκ° μλλ€.
- λͺ¨λ μμΈ λ°μ μν©μ
alertλ©μλλ₯Ό μ΄μ©νμ¬ μ²λ¦¬νλ€. - μΈλΆ λΌμ΄λΈλ¬λ¦¬(jQuery, Lodash λ±)λ₯Ό μ¬μ©νμ§ μκ³ , μμ Vanilla JSλ‘λ§ κ΅¬ννλ€.
- μλ°μ€ν¬λ¦½νΈ μ½λ 컨벀μ μ μ§ν€λ©΄μ νλ‘κ·Έλλ° νλ€.
- indent(μΈλ΄νΈ, λ€μ¬μ°κΈ°) depthλ₯Ό 3μ΄ λμ§ μλλ‘ κ΅¬ννλ€. 2κΉμ§λ§ νμ©νλ€.
- μλ₯Ό λ€μ΄ whileλ¬Έ μμ ifλ¬Έμ΄ μμΌλ©΄ λ€μ¬μ°κΈ°λ 2μ΄λ€.
- ννΈ: indent(μΈλ΄νΈ, λ€μ¬μ°κΈ°) depthλ₯Ό μ€μ΄λ μ’μ λ°©λ²μ ν¨μ(λλ λ©μλ)λ₯Ό λΆλ¦¬νλ©΄ λλ€.
- ν¨μ(λλ λ©μλ)κ° ν κ°μ§ μΌλ§ νλλ‘ μ΅λν μκ² λ§λ€μ΄λΌ.
- λ³μ μ μΈμ
varλ₯Ό μ¬μ©νμ§ μλλ€.constμletμ μ¬μ©νλ€. importλ¬Έμ μ΄μ©ν΄ μ€ν¬λ¦½νΈλ₯Ό λͺ¨λννκ³ λΆλ¬μ¬ μ μκ² λ§λ λ€.- ν¨μ(λλ λ©μλ)μ κΈΈμ΄κ° 15λΌμΈμ λμ΄κ°μ§ μλλ‘ κ΅¬ννλ€.
- ν¨μ(λλ λ©μλ)κ° ν κ°μ§ μΌλ§ μ νλλ‘ κ΅¬ννλ€.
- λ―Έμ μ javascript-vendingmachine-precourse μ μ₯μλ₯Ό Fork/Cloneν΄ μμνλ€.
- κΈ°λ₯μ ꡬννκΈ° μ μ javascript-vendingmachine-precourse/docs/README.md νμΌμ ꡬνν κΈ°λ₯ λͺ©λ‘μ μ λ¦¬ν΄ μΆκ°νλ€.
- Gitμ μ»€λ° λ¨μλ μ λ¨κ³μμ README.md νμΌμ μ 리ν κΈ°λ₯ λͺ©λ‘ λ¨μλ‘ μΆκ°νλ€.
- AngularJS Commit Message Conventions μ°Έκ³ ν΄ commit logλ₯Ό λ¨κΈ΄λ€.
- κ³Όμ μ§ν λ° μ μΆ λ°©λ²μ ν리μ½μ€ κ³Όμ μ μΆ λ¬Έμ λ₯Ό μ°Έκ³ νλ€.
- λ―Έμ
ꡬνμ μλ£ν ν GitHubμ ν΅ν΄ μ μΆν΄μΌ νλ€.
- GitHubμ νμ©ν μ μΆ λ°©λ²μ ν리μ½μ€ κ³Όμ μ μΆ λ¬Έμ λ₯Ό μ°Έκ³ ν΄ μ μΆνλ€.
- GitHubμ λ―Έμ
μ μ μΆν ν μ°μνν
ν¬μ½μ€ μ§μ νλ«νΌ μ μ μνμ¬ ν리μ½μ€ κ³Όμ λ₯Ό μ μΆνλ€.
- μμΈν λ°©λ²μ λ§ν¬ λ₯Ό μ°Έκ³ νλ€.
- Pull Requestλ§ λ³΄λ΄κ³ , μ§μ νλ«νΌμμ κ³Όμ λ₯Ό μ μΆνμ§ μμΌλ©΄ μ΅μ’ μ μΆνμ§ μμ κ²μΌλ‘ μ²λ¦¬λλ μ£Όμνλ€.
- μꡬμ¬νμ λͺ μλ μΆλ ₯κ° νμμ μ§ν€μ§ μμ κ²½μ° κΈ°λ₯ ꡬνμ λͺ¨λ μ μμ μΌλ‘ νλλΌλ 0μ μΌλ‘ μ²λ¦¬λλ€.
- κΈ°λ₯ ꡬνμ μλ£ν λ€ μλ κ°μ΄λμ λ°λΌ ν μ€νΈλ₯Ό μ€ννμ λ λͺ¨λ ν μ€νΈκ° μ±κ³΅νλ μ§ νμΈνλ€. ν μ€νΈκ° μ€ν¨ν κ²½μ° 0μ μΌλ‘ μ²λ¦¬λλ―λ‘, λ°λμ νμΈ ν μ μΆνλ€.
- ν
μ€νΈ μ€νμ νμν ν¨ν€μ§ μ€μΉλ₯Ό μν΄
Node.jsλ²μ 14μ΄μμ΄ νμνλ€. - λ€μ λͺ λ Ήμ΄λ₯Ό μ λ ₯ν΄ ν¨ν€μ§λ₯Ό μ€μΉνλ€.
// {ν΄λ κ²½λ‘}/javascript-vendingmachine-precourse/ μμ
npm install- μ€μΉκ° μλ£λμλ€λ©΄, λ€μ λͺ λ Ήμ΄λ₯Ό μ λ ₯ν΄ ν μ€νΈλ₯Ό μ€ννλ€.
// {ν΄λ κ²½λ‘}/javascript-vendingmachine-precourse/ μμ
npm run test- μλμ κ°μ νλ©΄μ΄ λμ€λ©° λͺ¨λ ν μ€νΈκ° passνλ€λ©΄ μ±κ³΅!



