메인페이지에 브랜드, 카테고리 리스트는 레디스로 활용할 것을 정책으로 정했다.
먼저, Core에 레디스 캐싱을 설정한다. 그리고 캐싱으로 가져올 데이터 파일을 만든다.
그리고 나서 캐싱을 통해 리스트를 가져오는 알고리즘을 구현한다.
가져온 리스트들을 정렬한다.
HtmlCore를 연결하고 해당 데이터를 view에 출력한다.


캐싱 플로우

RedisCacheBrandAndCategoryCacheBrandAndCategoryHelper

App/Core : BrandAndCategoryHelper

public static function getSortedBrandList(){
    $brandList = self::getBrandCache();
    ...
    return $sortedBarndList;
}

public static function getBrandCache($getJson = false){
...
return $getJson == true ? $cachedData : json_decode($cachedData, true);
}

App/Html : gnb

use Core\helpers\BrandAndCategoryHelper;
...
$sortedBrandList = BrandAndCategoryHelper::getSortedBrandList();
$sortedHitBrandList = BrandAndCategoryHelper::getSortedBrandList('108,155,165,338,51,86,337,233,305,136,35,54,171,242,262,285,343,19,92,206,191,222,144,2,267,3,46,34,156,201,20,190,289,178,140,5,6,291,151');
$categoryList = BrandAndCategoryHelper::getCategoryCache();
$AtoZList = range('A', 'Z');
  ...
<div class="nav-tabbox brand-navbox active">
    <ul class="brand-list">
        <li><a class="active" href="">123</a></li>
        @foreach($AtoZList as $char)
        <li><a href="">{{ $char }}</a></li>
        @endforeach
    </ul>
    <div class="brand-listbox-area">
        <dl class="brand-listbox">
          @foreach($sortedHitBrandList as $keyChar => $brands)
          <dt class="hit-brands-{{ $keyChar }} hit-brands-group">{{ $keyChar }} Brand Name</dt>
          <dd class="hit-brands-{{ $keyChar }} hit-brands-group">
          <ul class="clearfix">
          @foreach($brands as $no => $brand)
          <li><a href="/apps/brand/{{ $no }}">{{ $brand['brand_name'] }}</a></li>
          @endforeach
          </ul>
          </dd>
          @endforeach
        </dl>
    </div>
</div>