🩺πŸͺ Dr.Tart - 1μ°¨ ν”„λ‘œμ νŠΈ 1st Sprint 회고

sanha_OvOΒ·2021λ…„ 12μ›” 5일
0

Project

λͺ©λ‘ 보기
1/7

Dr.Tart ν”„λ‘œμ νŠΈλŠ” λ‹₯ν„°μžλ₯΄νŠΈ ν™ˆνŽ˜μ΄μ§€λ₯Ό ν΄λ‘ μ½”λ”©ν•˜λŠ” ν”„λ‘œμ νŠΈμ΄λ‹€.
λ‹€λ§Œ ν™”μž₯ν’ˆμ΄ μ•„λ‹Œ λ””μ €νŠΈκ°€ λ‚˜μ˜€λ„λ‘...

ν”„λ‘œμ νŠΈ μ‹œμž‘

11μ›” 29일 μ›”μš”μΌλΆ€ν„° ν”„λ‘œμ νŠΈκ°€ μ‹œμž‘λ˜μ—ˆλ‹€.

μš°λ¦¬νŒ€μ€ λ‹₯ν„°μžλ₯΄νŠΈ ν™ˆνŽ˜μ΄μ§€λ₯Ό 클둠코딩할 μ˜ˆμ •μ΄μ—ˆκ³ ,

그리고 였늘 2μ£Όκ°„μ˜ 1μ°¨ ν”„λ‘œμ νŠΈμ€‘μ—μ„œ 벌써 1μ£Όκ°€ μ§€λ‚˜λ²„λ Έλ‹€.

μ»΄ν¬λ„ŒνŠΈ 기반의 개발

λ‹₯터타λ₯΄νŠΈ ν”„λ‘ νŠΈμ—”λ“œνŒ€μ˜ 핡심적인 ν‚€μ›Œλ“œλŠ” λ°”λ‘œ μ»΄ν¬λ„ŒνŠΈ 기반의 κ°œλ°œμ΄μ—ˆλ‹€.

ν”„λ‘ νŠΈμ—”νŠΈνŒ€ 각자 νŽ˜μ΄μ§€λ₯Ό ν•˜λ‚˜μ”© 맏되, μ»΄ν¬λ„ŒνŠΈλ₯Ό ν•˜λ‚˜μ˜ κΈ°λŠ₯ λ‹¨μœ„λ‘œ μž‘μ•„ μ μ§„μ μœΌλ‘œ νŽ˜μ΄μ§€λ₯Ό μ™„μ„± ν•  수 μžˆλ„λ‘ ν•˜μ˜€κ³ , λ°˜λ³΅λ˜λŠ” μ»΄ν¬λ„ŒνŠΈμ˜ μž¬μ‚¬μš©μ„±μ„ 높일렀고 λ…Έλ ₯ν•˜μ˜€λ‹€.


λ‚΄ κ΅¬ν˜„ 사항


μ™Όμͺ½ 츑면에 λΆ™μ–΄μžˆλŠ” nav에 ν•΄λ‹Ήν•˜λŠ” μ»΄ν¬λ„ŒνŠΈμ΄λ‹€.

ProductList.js


μ œν’ˆ νŽ˜μ΄μ§€μ— ν•΄λ‹Ήν•˜λŠ” νŽ˜μ΄μ§€μ΄λ‹€.

직접 κ΅¬ν˜„ν•œ 이미지 μŠ¬λΌμ΄λ“œκ°€ λ“€μ–΄κ°€ 있으며, μ œν’ˆ μ»΄ν¬λ„ŒνŠΈκ°€ μ œν’ˆλ§ˆλ‹€ λ°˜λ³΅λ˜λŠ” 것을 확인할 수 μžˆλ‹€.

react-router-domλ₯Ό μ΄μš©ν•˜μ—¬ λ™μ λΌμš°νŒ…μ„ κ΅¬ν˜„ν•˜μ˜€κ³ , useParams()λ₯Ό μ΄μš©ν•˜μ—¬ url을 parameter둜 받아와 κ·Έκ±Έ 기반으둜 μ œν’ˆκ΅°μ„ λΆ„λ₯˜ν•  수 μžˆλ„λ‘ ν•˜μ˜€λ‹€.

  • Product.js

μ œν’ˆ νŽ˜μ΄μ§€μ—μ„œ κ³„μ†ν•΄μ„œ μž¬μ‚¬μš©λ˜λŠ” Product.jsλŠ” λ‹€μŒκ³Ό 같이 μ½”λ“œλ₯Ό μ§°λ‹€.

css μ• λ‹ˆλ©”μ΄μ…˜ λΆ€λΆ„μ—μ„œ κ³„μ†ν•΄μ„œ λ°˜λ³΅λ˜λŠ” 뢀뢄이 μžˆμ–΄ λ¦¬νŒ©ν† λ§μ΄ ν•„μš”ν•  λ“― μ‹Άλ‹€.

import React, { useState } from 'react';
import './Product.scss';

const Product = ({ productName, productPrice, productImage }) => {
  const [isProductHover, setIsProductHover] = useState(false);

  return (
    <div
      className="product"
      onMouseOver={() => setIsProductHover(true)}
      onMouseOut={() => setIsProductHover(false)}
    >
      <div className="productContainer">
        <div className="productImageWrapper">
          <img
            className="productImage"
            alt="example"
            src="/images/tartexam.jpg"
          />
        </div>
        <div className="productName">{productName}</div>
        <div className="productPrice">{Math.round(productPrice)}원</div>
      </div>
      {isProductHover && (
        <div
          className={`productEffectContainer ${
            isProductHover ? 'mountAnimation' : ''
          }`}
        >
          <div className="effectContents">
            <div className="productButtonContainer">
              <button className="productBuyButton">κ΅¬λ§€ν•˜κΈ°</button>
              <button className="productCartButton">
                <i className="fas fa-shopping-cart" />
              </button>
              <button className="productLikeButton">
                <i className="far fa-heart" />
              </button>
            </div>
          </div>
        </div>
      )}
    </div>
  );
};

export default Product;
  • ImageSlide.js


2nd Sprintμ—μ„œ ν•΄μ•Όν•  일

일단 아직 μ™„μ„±λ˜μ§€ λͺ»ν•œ μž₯λ°”κ΅¬λ‹ˆ, 결제 νŽ˜μ΄μ§€μ˜ 완성이 ν•„μš”ν•˜λ‹€.

λ˜ν•œ 아직 λ°±μ—”λ“œμ™€μ˜ 접합이 μ™„λ²½ν•˜μ§€ μ•Šμ€ μƒνƒœμ΄λ―€λ‘œ μ’€ 더 완성도λ₯Ό 높일 ν•„μš”κ°€ μžˆμ„ 것 κ°™λ‹€.

profile
Web Developer / Composer

0개의 λŒ“κΈ€