πŸ“š 쏙쏙 λ“€μ–΄μ˜€λŠ” ν•¨μˆ˜ν˜• μ½”λ”©(3)

yooooujinΒ·2024λ…„ 2μ›” 12일
0
post-thumbnail

κ°œμš”

μ±… λ‚΄μš©μ˜ μž₯보기 ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° 과정을 μ •λ¦¬ν•˜λ©΄μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ‘œ μž‘μ„±ν•΄λ³΄μ•˜λ‹€.

μ•‘μ…˜κ³Ό 계산, 데이터

  • μ•‘μ…˜: μ‹€ν–‰ μ‹œμ κ³Ό νšŸμˆ˜μ— μ˜μ‘΄ν•˜λŠ” ν•¨μˆ˜
  • 계산: μž…λ ₯으둜 좜λ ₯을 계산
  • 데이터: μ΄λ²€νŠΈμ— λŒ€ν•œ 사싀

μž₯보기 κ³Όμ •

μž₯보기 κ³Όμ • - νƒ€μž„λΌμΈ

냉μž₯κ³  ν™•μΈν•˜κΈ°(μ•‘μ…˜)

냉μž₯κ³  ν™•μΈν•˜λŠ” 일은 ν™•μΈν•˜λŠ” μ‹œμ λ§ˆλ‹€ μž¬κ³ κ°€ λ‹€λ₯΄λ―€λ‘œ μ•‘μ…˜μ΄λ‹€.

ν˜„μž¬ λ¬Όν’ˆ(데이터)

냉μž₯κ³ λ₯Ό ν™•μΈν•˜λŠ” μ‹œμ μ— λ“€μ–΄μžˆλŠ” μ œν’ˆλ“€μ€ 데이터이닀.

ν•„μš”ν•œ λ¬Όν’ˆ(데이터)

μž₯보기 전에 ν•„μš”ν•œ μ œν’ˆλ“€μ΄λ©° 데이터이닀.

μž₯보기 λ¬Όν’ˆ λͺ©λ‘ λ§Œλ“€κΈ°(계산)

ν˜„μž¬ μž¬κ³ μ™€ ν•„μš”ν•œ 재고λ₯Ό 맀개 λ³€μˆ˜λ‘œ λ°›μ•„ μž₯을 봐야할 λ¬Όν’ˆ λͺ©λ‘μ„ λ°˜ν™˜ν•΄μ€€λ‹€.

μž₯보기 λͺ©λ‘(데이터)

ν•„μš”ν•œ μž¬κ³ μ—μ„œ ν˜„μž¬ μžˆλŠ” 재고λ₯Ό μ œμ™Έν•œ 사야할 λ¬Όν’ˆ λͺ©λ‘μ΄λ‹€.

λͺ©λ‘μ— μžˆλŠ” 것 κ΅¬μž…ν•˜κΈ°(μ•‘μ…˜)

κ΅¬μž…ν•˜κΈ°λŠ” μ‡Όν•‘ λͺ©λ‘μ„ 맀개 λ³€μˆ˜λ‘œ 받을 수 μžˆμ§€λ§Œ κ΅¬μž…ν•œ λ¬Όν’ˆλ“€μ„ ν˜„μž¬ μž¬κ³ μ— λ°˜μ˜ν•΄μ•Όν•˜λ―€λ‘œ μ•‘μ…˜μœΌλ‘œ λΆ„λ₯˜ν•˜μ˜€λ‹€. λͺ©λ‘μ— μžˆλŠ” 것 κ΅¬μž…ν•˜κΈ° μ•‘μ…˜μ„ μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ 재고 ν™•μΈν•œ ν›„ μž₯보기 λͺ©λ‘μ„ λ§Œλ“€ 수 μžˆλ‹€.

μš΄μ „ν•΄μ„œ μƒμ μœΌλ‘œ κ°€κΈ° / μ§‘μœΌλ‘œ 였기(μ•‘μ…˜)

μš΄μ „ν•΄μ„œ μƒμ μœΌλ‘œ 가기와 μ§‘μœΌλ‘œ μ˜€κΈ°λŠ” μœ„μΉ˜μ— 따라 μ‹€ν–‰ κ°€λŠ₯ μ—¬λΆ€κ°€ λ‹¬λΌμ§€λ―€λ‘œ μ•‘μ…˜μ΄λ‹€. 이 μ•‘μ…˜μ—μ„œλŠ” 데이터가 더 μžˆμ„ 수 μžˆμ§€λ§Œ, μ—¬κΈ°μ—μ„œλŠ” λ”°λ‘œ 닀루지 μ•ŠμœΌλ €κ³  ν•œλ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ κ΅¬ν˜„ν•΄λ³΄κΈ°

μ±…μ—μ„œλŠ” λ‚˜μ˜€μ§€ μ•Šμ§€λ§Œ μž₯보기 과정을 μ½”λ“œλ‘œ μž‘μ„±ν•΄λ³΄μ•˜λ‹€. μš΄μ „ν•˜κΈ° μ•‘μ…˜λ“€μ€ μƒλž΅ν•΄μ£Όμ—ˆλ‹€. μž‘μ„±ν•œ μ½”λ“œλŠ” Githubμ—μ„œλ„ 확인이 κ°€λŠ₯ν•˜λ‹€.

// ν˜„μž¬ λ¬Όν’ˆ
const items = {
  milk: 1,
  egg: 2,
  kimchi: 6,
};

// μž₯보기 λͺ©λ‘ λ§Œλ“€κΈ°
const createShoppingList = (currentItems, neededItems) => {
  const shoppingList = {};

  Object.entries(neededItems).forEach(([neededItem, neededItemCount]) => {
    if (!currentItems[neededItem]) {
      shoppingList[neededItem] = neededItemCount;
    } else if (currentItems[neededItem] - neededItemCount < 0) {
      shoppingList[neededItem] = neededItemCount - currentItems[neededItem];
    }
  });

  return shoppingList;
};

// 냉μž₯κ³  ν™•μΈν•˜κΈ°
const checkRefrigerator = () => {
  return items;
};

// λͺ©λ‘μ— μžˆλŠ” 것 κ΅¬μž…ν•˜κΈ°
const buyItems = (shoppingList) => {
  Object.entries(shoppingList).forEach(([purchaseItem, purchaseItemCount]) => {
    if (!items[purchaseItem]) items[purchaseItem] = 0;
    items[purchaseItem] += purchaseItemCount;
    delete shoppingList[purchaseItem];
  });
};

// μž₯보기
const shopping = () => {
  let currentItems = checkRefrigerator();
  const neededItems = {
    milk: 1,
    cheese: 3,
    kimchi: 1,
  };
  
  console.log("------------------------------------------");
  console.log("ν˜„μž¬ 냉μž₯고에 λ“€μ–΄ μžˆλŠ” λ¬Όν’ˆ >", currentItems);
  console.log("ν•„μš”ν•œ λ¬Όν’ˆλ“€ >", neededItems);
  
  const shoppingList = createShoppingList(currentItems, neededItems);
  
  console.log("------------------------------------------");
  console.log("사야할 λ¬Όν’ˆ λͺ©λ‘ >", shoppingList);
  console.log("------------------------------------------");

  buyItems(shoppingList);
  
  console.log("μž₯보기 μ™„λ£Œ!");
  console.log("냉μž₯κ³  λ¬Όν’ˆ ν™•μΈν•˜κΈ° >", checkRefrigerator());
  console.log("------------------------------------------");
  
  
};

shopping();

μ‹€ν–‰ν•œ κ²°κ³Ό
μœ„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•œ 결과이닀.

μž₯보기 전에 냉μž₯κ³ μ—λŠ” 우유 1개, 달걀 2개, κΉ€μΉ˜κ°€ 6개 λ‹΄κ²¨μžˆμ—ˆλ‹€.

ν•„μš”ν•œ λ¬Όν’ˆλ“€μ€ 우유 1개, 치즈 3개, κΉ€μΉ˜ 1κ°œμ˜€μ§€λ§Œ, 냉μž₯고에 κΉ€μΉ˜μ™€ μš°μœ κ°€ μΆ©λΆ„νžˆ λ“€μ–΄μžˆμœΌλ―€λ‘œ κ΅¬μž…ν•΄μ•Όν•  λ¬Όν’ˆμ€ 치즈 3κ°œμ΄λ‹€.

μž₯보기 λͺ©λ‘μ— μž‘μ„±ν•œ λ¬Όν’ˆμ„ κ΅¬μž…ν•˜κ³  냉μž₯κ³ λ₯Ό λ‹€μ‹œ ν™•μΈν•΄λ³΄μ•˜λ‹€.
우유 1개, 달걀 2개, κΉ€μΉ˜ 6개, 치즈 3개둜 μ΄λ²ˆμ— κ΅¬μž…ν•œ λ¬Όν’ˆκΉŒμ§€ 잘 λ“€μ–΄κ°€μžˆλŠ” 것을 확인할 수 μžˆλ‹€.

μž₯보기 과정을 μ‹€μ œ μ½”λ“œλ‘œ μž‘μ„±ν•΄λ³΄λ©΄μ„œ μ•‘μ…˜κ³Ό 계산을 λΆ„λ¦¬ν•˜λŠ” 것이 쉽지 μ•Šμ•˜λ‹€.
λ„ˆλ¬΄ λ§Žμ€ 계산은 였히렀 μ½”λ“œ 읽기가 νž˜λ“€μ–΄μ‘Œμ—ˆκ³ ,
μ•‘μ…˜λ§Œ μžˆμ–΄λ„ λ‚˜μ€‘μ— μœ μ§€λ³΄μˆ˜κ°€ νž˜λ“€λ‹€κ³  ν•˜λ‹ˆ μ μ ˆν•¨μ„ μ°ΎλŠ”κ²Œ μ–΄λ €μ› λ‹€.

0개의 λŒ“κΈ€