GREAM+


1차프로젝트以降、2차프로젝트기업협업が行われた.
この間は忙しかった.残念なこともたくさんあって、私を成長させるところもたくさんあります.

絵をかく

  • 靴業仲介プラットフォームクリームをテーマとするプロジェクト
  • は、短いプロジェクトサイクルで開発に専念する必要があるため、設計/計画部分のみがクローン
  • を必要とする.
  • ユーザーがそのウェブサイト上で商品を購入、入札、販売するなどの経験を提供するプラットフォームは
  • を実現する.
  • の開発は初期設定からすべて直接実施され、以下のプレゼンテーションビデオのすべてのコンテンツはバックエンドに関連している.
  • フロントエンドハブ

    プロジェクト参加者

  • Frontend
  • 🍻🍻 朴敬元
  • 💪🏻💪🏻 朴宰亨
  • 🦋🦋 朴慧琳
  • 🔥🔥 朱智紅
  • Backend
  • 🐨🐨 李江日
  • 🐻‍❄️🐻‍❄️ 李道雲
  • プロジェクト期間

  • 2022.02.14 ~ 2022.02.25
  • テクノロジースタック


    tools
  • GIT:バージョン管理
  • GITHUB:バージョン管理によるバインディングと集約
  • SLACK:基本通信交換
  • TRELO:計画
  • frontend
  • HTML/CSS
  • JavaScript(ES6+)
  • React
  • Styled-Components
  • プロジェクトの進捗


  • Planning meeting
    チームメンバーが集まって開発の全体的な計画概念を制定し、十分なコミュニケーションを通じて内容を活動に記録します.

  • Daily Standup meeting
    午前10時から10時30分までのスタンドミーティングで、昨日/今日やるべきこと/ブログを共有し、それぞれのプロジェクトに入ります.

  • Retrospective Meeting
    プロジェクト終了後にそれぞれの残念な部分を思い出したきっかけを議事録にまとめた.
  • 実装目標


    実施目標は、
  • ユーザがホームページにアクセスして購入し、プロジェクトを実施することである.
  • 基本的な実装

  • ソーシャルログイン
  • 商品検索機能
  • を実施する.
  • は、リストページキャッシュ部
  • を実現する.
  • リストページ商品マルチフィルタ機能実現
  • 詳細ページ興味のある商品
  • を追加
  • 詳細ページサイズモードインタフェース、購入モードインタフェース、販売モードインタフェース、興味ある商品モードインタフェース
  • を実現
  • 詳細ページモードウィンドウとモードウィンドウ外のUIバインド
  • 詳細ページ相場表
  • 詳細ページ下部関連カテゴリ推奨商品
  • 私が担当する実施部分


    (詳細ページとリストページ)
    1. 리스트페이지 및 상세페이지 레이아웃
    2. 쿼리스트링 활용을 통한 리스트페이지 다중필터링 기능 구현
    3. 쿼리스트링 활용을 통한 리스트페이지 정렬기능 구현
    4. 리스트페이지 필터 드롭다운
    5. 상세페이지 캐러셀
    6. 상세페이지 관심상품, 시세모달 모달창 내외부 데이터 연동
    7. 상세페이지 구매정보 드롭다운 구현
    8. 상세페이지 연관상품 구현

    自分の作業ページを表示


    リストページ

  • クエリーリストによるリストページ多重フィルタ
  • を実現する.
  • リスト機能によるリストページソート
  • 詳細ページ


    資生堂

  • 相場領域と相場モデルウィンドウ領域はリアルタイムで連動寸法ボタンを押すと、その寸法条件に合致する取引明細が表示され、これらの明細はモデルウィンドウで直接見ることができ、逆に、モデルウィンドウでクリックしてもモデルウィンドウ外部相場領域とデータ連動することができる.
  • 興味のある商品

  • 「興味のある商品を追加」ボタンをクリックすると、ログインしていない場合は「ソーシャルログインモード」ウィンドウが表示され、ログインが完了すると「興味のある商品モードを追加」ウィンドウ
  • が開きます.
  • モードウィンドウでは、関心のある商品が含まれている場合、データをバックエンドに送信し、関心のある商品を含むすべてのユーザの数をリアルタイムで表示できます.
  • ドロップダウンメニュー

  • 購買情報ドロップダウンリストを実装(各id値に一致するid値の内容を表示)
  • 関連製品

  • それぞれが画像に関連する商品の画面表示を実現する=>関連画像をクリックすると、その画像の詳細ページに移動する
  • コード共有-クエリーを実装!!


    最初のプロジェクトで行ったことのないクエリーで、複数のフィルタを実装できます.グーグル無限グーグル検索でいろいろ探しました.
  • 定数データを作成しましょう
  • のバックエンドは、必要な値を伝達するために、クラスごとに定数データを最大限に細分化している.
  • まず私が押している部分を知らせてください!!そしてそのカテゴリでどの部分をクリックしましたか!!
  • const FILTER_LISTS = [
      {
        filterType: ['author', '작가'],
        idNameList: [
          { 1: 'Kathryn Rice' },
          { 2: 'Antonio Oneal' },
          { 3: 'Dalton Cuevas' },
          { 4: 'LindSay Martin' },
          { 5: 'Emily Clark' },
        ],
      },
      {
        filterType: ['theme', '테마'],
        idNameList: [
          { 1: '추상화' },
          { 2: '구상화' },
          { 3: '팝아트' },
          { 4: '입체주의' },
          { 5: '동양화' },
        ],
      },
      {
        filterType: ['year', '연도'],
        idNameList: [
          { '1970-01-01~1979-12-31': '1970년대' },
          { '1980-01-01~1989-12-31': '1980년대' },
          { '1990-01-01~1999-12-31': '1990년대' },
          { '2000-01-01~2030-12-31': '2000년대' },
        ],
      },
      {
        filterType: ['price', '가격'],
        idNameList: [
          { '0-100000': '10만원 이하' },
          { '100000-300000': '10만원 - 30만원 이하' },
          { '100000-500000': '30만원 - 50만원 이하' },
          { '500000-900000000000': '50만원 이상' },
        ],
      },
      {
        filterType: ['size', '사이즈'],
        idNameList: [{ 1: 'Small' }, { 2: 'Medium' }, { 3: 'Large' }],
      },
    ];
  • のフロントエンドとして、論理を書く練習をよくします.
  •  useEffect(() => {
        const filterQuery = makeFilterQuery(productFilters);
        navigate(`/list${filterQuery}`);
      }, [navigate, productFilters]); //완성된 쿼리스트링을 navigate훅을 사용해 페이지 전환
    
      const handleProductFilter = (e, filterTypeQuery) => {
        const isAlreadyFilter = productFilters[filterTypeQuery].includes(
          e.target.name
        ); //이미 productFilters에 카테고리에 안에 내부데이터가 있는지 확인해줌
    
        const newQuery = isAlreadyFilter
          ? productFilters[filterTypeQuery].filter(el => el !== e.target.name)
          : [...productFilters[filterTypeQuery], e.target.name];
    			//isAlreadyFilter를 가지고 productFilters에 카테고리에 안에 
    			//내부데이터가 있는지 확인해주고 걸러냄
        setproductFilters(prev => ({ ...prev, [filterTypeQuery]: newQuery }));
    			//만약에 새로운 카테고리 영역에 데이터가 들어온다면 배열에 추가 
      };
    
      const makeFilterQuery = productFilters => {
        let query = '';
        for (let filterType in productFilters) {
          const filterIds = productFilters[filterType];
    			//백엔드에 보내줄 id값
          if (filterIds.length > 0) {
            query += `&${filterType}=${filterIds.join(`&${filterType}=`)}`;
          } //쿼리생성
        }
    
        return query.replace('&', '?'); //쿼리가 &...로 시작하므로 첫번째 &를 ?로 바꿔줌
      };

    に感銘を与える


    メリット


  • さまざまなロジックを書くことができるところ:Creamサイトを分析するとき、Webはとてもおしゃれだと思います.特に、複数のボタンのこれらのロジックをどのように処理するかを考える機会がとてもいいです.また、多重フィルタリング機能を実現すると同時に、データをよりよく受信するために非常に良い論理を書くべきだと思います.

  • スムーズなコミュニケーション経験:プロジェクトを行うときは、バックエンドの姜一さんと度雲さんと一緒にコミュニケーションをとるべきです.最初の項目については、熙沢だけなので通信ができません.しかし、今回のプロジェクトでは、姜日氏も雲氏とコミュニケーションを続け、互いに自分の望むデータ方式について意見を提出し、論理を編成し、受け取ったデータを加工し、使いやすくした.

  • ライブラリについて考える:ライブラリを使用して体得した点は、ライブラリをよりよく使用するためには、JSについて深く理解する必要があります.ライブラリは便利ですが、すべての設定値が私たちが描きたいUIと異なる場合、どのようにアクセスし、どのように修正するかについて多くの情報を見つけました.基本的には、ライブラリ公式ドキュメントの読み取りが基本で、実装の過程で、基本的なJSロジックも作成してこそ、自分が望むUIに従って出力されたと感じさせることができ、これらの経験は他のライブラリを作成する過程で多くの経験になります.
  • 残念なことに。

  • 2週間:実はプロジェクトを行っている間に残念なところはありませんでした.本当に2週間かけていろいろなものを体験しました.それでも、Creamサイト自体には確かに多くの機能があり、これらの機能は2週間ですべてのプロセスを実現するのに十分ではありません.機会があれば、残りの購入プロセスについても実施したい.
  • チームでどんな役割を果たしましたか。

  • 一绪に队员たちの悩みを解决する役!今回のプロジェクトから得られることは、自分が人を助けることができる存在だと感じています.チームメンバーは、開発者としてスタートする段階だと考えています.だから、選手たちが知らない部分も分からないと思い、実力を上げることを決意しました.個人的にはこの役を担当するのが成長のチャンスだと思います.
  • フロントエンドの開発者として、より自信を持つ機会です。

  • 面白すぎます上記のコードの冒頭で、俊植先生は自分のやり方で頑張ればジャンプ台のチャンスがあるに違いないと言ったことがある.私にとって、今回の2回目の種目はジャンプ期間のようです.ただ、同期たちと一緒に考えたり、問題を解決したりする時間が本当に多くて、その過程の一瞬一瞬ごとに、私は知らないことを学ぶ機会だと思っていましたが、ある瞬間、自分が先端開発者として一歩一歩進んでいるような気がしました.