<!DOCTYPE html>
<html lang="ko">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="Cache-Control" content="no-cache">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- TITLE -->
  <title>Error | 비상교재</title>

  <!-- SEO -->
  <meta name="description"
        content="비상교재 공식 홈페이지"/>

  <!-- Open Graph -->
  <meta property="og:type" content="website"/>

  <meta property="og:title"
        content="Error | 비상교재"/>

  <meta property="og:description"
        content="비상교재 공식 홈페이지"/>

  <meta property="og:image"
        content="https://cdn.visang.com/assets/img/og_default_large_image.jpg"/>


  <meta property="og:url" />

  <meta property="og:site_name" content="비상교재"/>

  <!-- CSRF -->
  
    <meta name="_csrf" content="cYQ33BwBhhr15iLBkQ5YSt4mGbOveMWKrAzXaL65CuCuJsffROFVuS8zvnjYhEfx9CNsKekTNIuZGqOnz2rnW9yBOtiZEPbp"/>
    <meta name="_csrf_header" content="X-XSRF-TOKEN"/>
  

  <!-- CSS -->
  <link rel="stylesheet" href="/assets/css/jquery-ui.css">
  <link rel="stylesheet" href="/assets/css/style.css">
  <link rel="stylesheet" href="/assets/css/custom-style.css">
  <link rel="stylesheet" href="/assets/css/swiper.min.css">
  <link rel="stylesheet" href="/assets/css/tippy.css">

  <!-- Google tag (gtag.js) -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=AW-834265721"></script>
  <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-834265721'); gtag('config', 'G-09JVQ3YSDW'); </script>

  <!-- NAVER 공통 SCRIPT -->
  <script type="text/javascript" src="https://wcs.naver.net/wcslog.js"></script>
  <script type="text/javascript">
    if (!wcs_add) var wcs_add={};

    const h = window.location.hostname;

    if (h === 'book.visang.com') {
      wcs_add["wa"] = "s_10c7926fdbb";

      if(window.wcs) {
        wcs.inflow("book.visang.com");
      }
    } else if (h === 'm.book.visang.com') {
      wcs_add["wa"] = "s_57736267a489";

      if(window.wcs) {
        wcs.inflow("m.book.visang.com");
      }
    }

    wcs_do();
  </script>

  <!-- 카카오 픽셀 -->
  <script type="text/javascript" charset="UTF-8" src="https://t1.daumcdn.net/kas/static/kp.js"></script>
  <script type="text/javascript">
    kakaoPixel('8339807428640814735').pageView();
  </script>
</head>

<body>
  

  <a href="#ly-content" class="skip-link">본문 바로가기</a>

  <script>
    /*<![CDATA[*/
    let isLoggedIn = false;
    const loginId = null;

    window.__CDN__ = null;
    window.__VISANG_STORE_URL__ = null;
    /*]]>*/

    function toCdnUrl(path) {
      // 1. null / blank → 기본 이미지
      if (!path || typeof path !== 'string' || !path.trim()) {
        return window.__CDN__ + '/assets/img/common/no-image.png';
      }

      // 2. 로그인 페이지 등 비이미지 경로 차단
      if (path.endsWith('/login')) {
        return window.__CDN__ + '/assets/img/common/no-image.png';
      }

      // 3. 절대 URL이면 그대로
      if (path.startsWith('http://') || path.startsWith('https://')) {
        return path;
      }

      // 4. 슬래시 보정
      if (!path.startsWith('/')) {
        path = '/' + path;
      }

      return window.__CDN__ + path;
    }


    window.CSRF = {
      token: document.querySelector('meta[name="_csrf"]')?.content,
      header: document.querySelector('meta[name="_csrf_header"]')?.content
    };
  </script>

  <script>
    window.onload = function () {
      if (!loginId) {
        return
      }

      const key = 'whatap_user_id_22';

      if (localStorage.getItem(key) !== String(loginId)) {
        localStorage.setItem(key, String(loginId));
      }
    }
  </script>

  
  
  <header id="ly-header" class="header">
    <h2 class="sr-only">주요메뉴</h2>
    <div class="unb">
      <div class="ly-inner">
        <nav class="familysite">
          <a href="/main">비상교재</a>
          <a href="/main/teacher">학원선생님</a>
          <a href="null/default.asp" target="_blank">비상서점</a>
          <a href="" target="_blank">비상교과서</a>
          <a href="https://www.visang.com/" target="_blank">비상교육</a>
        </nav>
        <nav class="utility">
          <a href="/login">로그인</a>
          <a href="/account/sign-up">회원가입</a>
          
          
          <a href="/support/news">고객센터</a>
        </nav>
      </div>
    </div>
    <div class="gnb">
      <div class="ly-inner">
        <div class="home">
          <a href="/main/teacher"
             class="home-link"
             aria-label="비상교재 메인">
          </a>
          <button type="button" class="vs-site-dropdown"
                  data-toggle="collapse"
                  aria-controls="vsSiteGroup"
                  aria-expanded="false">
            <span class="dropdown-text"></span>
            <!-- 로그인 후 -->
<!--            <span class="dropdown-text"-->
<!--                  th:if="${currentMember != null}"-->
<!--                  th:text="${currentMember.noTypeMember == 3 ? '학원선생님' : '교재'}">-->
<!--            </span>-->
          </button>
          <div class="collapse" id="vsSiteGroup">
            <div class="vs-site-group">
              <a href="/main"
                 class="vs-site-link">
                비상교재
              </a>
              
              <a href="/main/teacher"
                 class="vs-site-link">
                학원선생님
              </a>
              
              <a href="null/default.asp"
                 class="vs-site-link">
                비상서점
              </a>
            </div>
          </div>
        </div>
        <nav class="gnb-menu d-none d-lg-block">
          <ul class="gnb-menu-list">
            <li class="gnb-menu-item">
              <a href="/books/ES"
                 class="gnb-menu-link">
                초등
              </a>
            </li>
            <li class="gnb-menu-item">
              <a href="/books/MS"
                 class="gnb-menu-link">
                중학
              </a>
            </li>
            <li class="gnb-menu-item">
              <a href="/books/HS"
                 class="gnb-menu-link">
                고등
              </a>
            </li>
            <li class="gnb-menu-item">
              <a href="/resources"
                 class="gnb-menu-link">
                자료실
              </a>
              
              <!-- ✅ 학원선생님(noTypeMember == 3)만 자료실 서브메뉴 표시 -->
              
            </li>
            <li class="gnb-menu-item">
              <a href="/review"
                 class="gnb-menu-link">
                리뷰
              </a>
            </li>
            <li class="gnb-menu-item">
              <a href="/events"
                 class="gnb-menu-link">
                이벤트
              </a>
              <div class="sub-menu-wrap collapse" id="eventsSubmenu">
                <ul class="sub-menu">
                  <li class="sub-menu-item">
                    <a href="/events?ongoingBit=1" class="sub-menu-link">진행중인 이벤트</a>
                  </li>
                  <li class="sub-menu-item">
                    <a href="/events/attendance" class="sub-menu-link">출석체크</a>
                  </li>
                  <li class="sub-menu-item">
                    <a href="/events/visang-talk" class="sub-menu-link">비상한Talk</a>
                  </li>
                  <li class="sub-menu-item">
                    <a href="/points" class="sub-menu-link">V포인트</a>
                  </li>
                </ul>
              </div>
            </li>
          </ul>
        </nav>
        <div class="util">
          <button type="button" class="util-item btn-search" aria-label="검색"></button>
          <a href="null/Mypage/pay_basket_new.asp" target="_blank"
             class="util-item btn-shopping"
             title="비상서점 이동">
            <span class="sr-only">장바구니</span>
            
          </a>
          <a href="/mypage" class="util-item btn-mypage" aria-label="마이페이지 메뉴" aria-controls="mypageMenu"
             aria-expanded="false"></a>
          <div class="collapse mypage-menu" id="mypageMenu">
            <nav>
              <a href="/mypage/mybook" class="mypage-menu-link">나의 교재&middot;자료</a>
              <a href="/mypage/recent" class="mypage-menu-link">최근 본 교재</a>
              <a href="/mypage/order" class="mypage-menu-link">주문/배송 조회</a>
              <a href="/mypage/review" class="mypage-menu-link">리뷰 작성 내역</a>
              <a href="/mypage/inquiry" class="mypage-menu-link">문의내역</a>
              <a href="/mypage/events" class="mypage-menu-link">참여 이벤트</a>
              <a href="/mypage/vpoint" class="mypage-menu-link">포인트 내역</a>
              <a href="/mypage/profile/edit" class="mypage-menu-link">회원정보 수정</a>
            </nav>
          </div>
          <button type="button" class="btn-allmenu" aria-label="전체메뉴">
            <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" class="hamburger-icon">
              <rect class="top" x="11" y="6.5" width="10" height="3" rx="1.5" fill="#ffffff"/>
              <rect class="middle" x="7" y="14.5" width="18" height="3" rx="1.5" fill="#ffffff"/>
              <rect class="bottom" x="11" y="22.5" width="10" height="3" rx="1.5" fill="#ffffff"/>
            </svg>
          </button>
        </div>
      </div>
    </div>
    
    <!-- 통합검색 레이어 -->
    <div class="total-search-layer">
      <div class="inner">
        <div class="content">
          <h2 class="sr-only">통합검색</h2>
          <button type="button" class="close-layer" aria-label="검색레이어 닫기"></button>
          <div class="total-search-content">
            <div class="search-input">
              <form id="totalSearchForm" action="/search" method="get" class="form-input search flex-fill">
                <input type="text"
                       id="total-search-input"
                       name="keyword"
                       class="input"
                       placeholder="궁금한 내용을 검색해 보세요."
                       autocomplete="off"
                       title="검색어"/>
                <button type="button" class="input-reset" aria-label="입력값 초기화"></button>
              </form>
              <button type="button" id="total-search-btn" class="btn btn-primary md fs-0">검색</button>
            </div>
            
            <div class="suggestions">
              <h2 class="sub-title">추천검색</h2>
              <ul class="keywords-group">
                
              </ul>
            </div>
          </div>
        </div>
      </div>
    </div>
  </header>
  
  <!-- 사이트맵 -->
  <div class="sitemap">
    <div class="sitemap-layer">
      <div class="sitemap-content">
        <button class="sitemap-close" aria-label="사이트맵 닫기"></button>
        <h2 class="sr-only">사이트맵</h2>
        <div class="tab-menu-wrap mx-0">
          <ul class="tab-menu sitemap-tabmenu" role="tablist">
            <li class="tab-item">
              <button type="button" class="tab-btn is-active" id="tabAllMenu" role="tab" aria-controls="tabAllMenu-pane"
                      aria-selected="true">MENU
              </button>
            </li>
            <li class="tab-item">
              <button type="button" class="tab-btn" id="tabAllBrand" role="tab" aria-controls="tabAllBrand-pane"
                      aria-selected="false">BRAND
              </button>
            </li>
          </ul>
        </div>
        <div class="tab-content">
          <div class="tab-pane show" id="tabAllMenu-pane" role="tabpanel" aria-labelledby="tabAllMenu" tabindex="0">
            <h3 class="sr-only">전체메뉴</h3>
            <nav class="vs-allmenu">
              <ul class="vs-allmenu-list">
                <li class="vs-allmenu-item">
                  <span class="vs-allmenu-title">교재</span>
                  <ul class="vs-submenu-list">
                    <li><a href="/books/ES" class="vs-allmenu-link">초등교재</a></li>
                    <li><a href="/books/MS" class="vs-allmenu-link">중학교재</a></li>
                    <li><a href="/books/HS" class="vs-allmenu-link">고등교재</a></li>
                    <li><a href="/books/new/all" class="vs-allmenu-link">새로 나올 책</a></li>
                  </ul>
                </li>
                <li class="vs-allmenu-item">
                  <span class="vs-allmenu-title">자료실</span>
                  <ul class="vs-submenu-list">
                    <li><a href="/resources?edu=296" class="vs-allmenu-link">초등 자료실</a></li>
                    <li><a href="/resources?edu=297" class="vs-allmenu-link">중학 자료실</a></li>
                    <li><a href="/resources?edu=298" class="vs-allmenu-link">고등 자료실</a></li>
                    <li></li>
                  </ul>
                </li>
                <li class="vs-allmenu-item">
                  <span class="vs-allmenu-title">이벤트</span>
                  <ul class="vs-submenu-list">
                    <li><a href="/events?ongoingBit=1" class="vs-allmenu-link">진행중인 이벤트</a></li>
<!--                    <li><a href="/events?ongoingBit=0" class="vs-allmenu-link">종료된 이벤트</a></li>-->
                    <li><a href="/events/attendance" class="vs-allmenu-link">출석체크</a></li>
                    <li><a href="/events/visang-talk" class="vs-allmenu-link">비상한Talk</a></li>
                    <li><a href="/points" class="vs-allmenu-link">V포인트</a></li>
                  </ul>
                </li>
                <li class="vs-allmenu-item">
                  <span class="vs-allmenu-title">고객센터</span>
                  <ul class="vs-submenu-list">
                    <li><a href="/support/news" class="vs-allmenu-link">비상소식</a></li>
                    <li>
                      <a href="#none" class="vs-allmenu-link"
                         data-auth-target="/support/inquiry" data-auth-text="1:1문의는 로그인이 필요한 서비스예요" data-auth-subtext="로그인할까요?">1:1 문의하기</a>
                    </li>
                    <li><a href="/support/faq" class="vs-allmenu-link">FAQ</a></li>
                    <li><a href="/support/locations" class="vs-allmenu-link">지사안내</a></li>
                  </ul>
                </li>
                <li class="vs-allmenu-item">
                  <span class="vs-allmenu-title">마이페이지</span>
                  <ul class="vs-submenu-list">
                    <li><a href="/mypage/mybook" class="vs-allmenu-link">나의 교재&middot;자료</a></li>
                    <li><a href="/mypage/recent" class="vs-allmenu-link">최근 본 교재</a></li>
                    <li><a href="/mypage/order" class="vs-allmenu-link">주문/배송 조회</a></li>
                    <li><a href="/mypage/review" class="vs-allmenu-link">리뷰 작성 내역</a></li>
                    <li><a href="/mypage/inquiry" class="vs-allmenu-link">문의 내역</a></li>
                    <li><a href="/mypage/events" class="vs-allmenu-link">참여 이벤트</a></li>
                    <li><a href="/mypage/vpoint" class="vs-allmenu-link">V포인트 내역</a></li>
                    <li><a href="/mypage/profile/edit" class="vs-allmenu-link">회원정보 수정</a></li>
                  </ul>
                </li>
              </ul>
            </nav>
            <div class="etc-link-group">
              <ul>
                <li class="etc-link-item">
                  <a href="/review" class="etc-link">
                    <em>✍🏻 리뷰</em>
                    <span>솔직한 후기가 궁금해요!</span>
                  </a>
                </li>
                <li class="etc-link-item">
                  <a href="/points" class="etc-link">
                    <em>💎 V포인트</em>
                    <span>차곡차곡 쌓이는 V포인트</span>
                  </a>
                </li>
                <li class="etc-link-item">
                  <a href="/app" class="etc-link">
                    <em>🌟 앱 소개</em>
                    <span>비상의 앱을 만나보세요!</span>
                  </a>
                </li>
                <li class="etc-link-item">
                  <a href="https://cafe.naver.com/visangmomntalk" target="_blank" rel="noopener noreferrer" class="etc-link">
                    <em>💬 맘앤톡카페</em>
                    <span>소통하는 맘앤톡</span>
                  </a>
                </li>
              </ul>
            </div>
            <div class="bottom">
              <a href="https://www.visang.com/" target="_blank" rel="noopener noreferrer" class="bottom-link">
                <span class="img">
                  <img src="/assets/img/common/logo-visang.svg" alt="visang"/>
                </span>
                <em class="text">(주)비상교육</em>
                <span class="sub-text">창의적 상상과 혁신으로 새로운 교육 문화를 만들어가요!</span>
              </a>
              <!--
              <a href="https://book.visang.com/Info/gongburyeok.aspx#lineup" target="_blank" rel="noopener noreferrer"
              -->
              <a href="/brand/wanjagonbu" target="_blank" rel="noopener noreferrer"              
                 class="bottom-link wanja">
                <span class="img">
                  <img src="/assets/img/brand/wanjagongburyeok.png" alt="완자공부력"/>
                </span>
                <em class="text">완자공부력 시리즈</em>
                <span class="sub-text">공부의 힘! 공부력이 달라지는 순간</span>
              </a>
            </div>
          </div>
          <div class="tab-pane" id="tabAllBrand-pane" role="tabpanel" aria-labelledby="tabAllBrand" tabindex="0">
            <div class="vs-brand" data-custom-scroll>
              <div class="brand-row primary">
                <div class="brand-row-head">
                  <h3 class="title">
                    비상의 대표 브랜드<br/>
                    이야기를 들어보세요
                  </h3>
                  <a href="/brand/gaenyeomyuhyeong" class="go-brandstory">브랜드 스토리</a>
                </div>
                <div class="brand-row-body">
                  <ul class="brand-list primary">
                    <li>
                      <a href="/brand/gaenyeomyuhyeong" class="vs-brand-logo big" target="_blank">
                        <img src="/assets/img/brand/gaenyeomyuhyeong.png" alt="개념+유형"/>
                      </a>
                    </li>
                    <li>
                      <a href="/brand/hankkeut" class="vs-brand-logo big" target="_blank">
                        <img src="/assets/img/brand/hankkeut.png" alt="한끝"/>
                      </a>
                    </li>
                    <li>
                      <a href="/brand/o2" class="vs-brand-logo big" target="_blank">
                        <img src="/assets/img/brand/o2.png" alt="오투"/>
                      </a>
                    </li>
                    <li>
                      <a href="/brand/wanja" class="vs-brand-logo big" target="_blank">
                        <img src="/assets/img/brand/wanja.png" alt="완벽한 자율학습서 완자"/>
                      </a>
                    </li>
                    <li>
                      <a href="/brand/wanjagonbu" class="vs-brand-logo big" target="_blank">
                        <img src="/assets/img/brand/wanjagongburyeok.png" alt="완자공부력"/>
                      </a>
                    </li>
                    <li>
                      <a href="/brand/readersbank" class="vs-brand-logo big" target="_blank">
                        <img src="/assets/img/brand/readersbank.png" alt="Reader's Bank"/>
                      </a>
                    </li>
                  </ul>
                </div>
              </div>
              <div class="brand-row">
                <div class="brand-row-head">
                  <h3 class="title">비상 브랜드 한눈에 보기</h3>
                </div>
                <div class="brand-row-body">
                  <ul class="brand-list">
                    
                    <!-- 1 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=개념플러스유형" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/gaenyeomyuhyeong.png" alt="개념+유형"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 2 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=개념플러스연산" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/gaenyeomyeomsan.png" alt="개념+연산"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 3 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=한끝" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/hankkeut.png" alt="한끝"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 4 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=오투" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/o2.png" alt="오투"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 5 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=완자" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/wanja.png" alt="완자"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 6 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=완자 공부력" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/wanjagongburyeok.png" alt="완자공부력"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 7 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=완자 기출PICK" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/wanjagichulpik.png" alt="완자 기출PICK"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 8 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=Full수록" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/fullsurok.png" alt="Full수록"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 9 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=개념루트" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/ganyeomroot.png" alt="개념루트"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 10 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=유형만렙" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/yuhyeongmallaep.png" alt="유형만렙"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 11 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=만렙" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/mallep.png" alt="만렙(내신만점 유형서)"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 12 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=수학의 신" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/suhaguisin.png" alt="수학의 신"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 13 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=교과서 개념잡기" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/gaenyeomjapgi.png" alt="교과서 개념잡기"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 14 삭제 -->
                    <!--
                    <li>
                      <span class="vs-brand-logo">
                        <img th:src="@{/assets/img/brand/yuhyeongjapgi.png}" alt="교과서 유형잡기"/>
                      </span>
                    </li>
                    -->
                    
                    <!-- 15 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=초등 수능독해" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/suneungdokae1.png" alt="초등 수능독해"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 16 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=중학 수능독해" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/suneungdokae2.png" alt="중등 수능독해"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 17 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=알찬" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/alchangichul.png" alt="알찬 기출문제집"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 18 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=수학만" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/suhangmangichul.png" alt="수학만 기출문제집"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 19 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=리더스뱅크" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/readersbank.png" alt="Reader's Bank"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 20 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=마법같은 블록구문" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/beullokgumun.png" alt="마법같은 블록구문"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 21 삭제 -->
                    <!--
                    <li>
                      <span class="vs-brand-logo">
                        <img th:src="@{/assets/img/brand/beullokgumun-2.png}" alt="악마의 문법책을 찟어라"/>
                      </span>
                    </li>
                    -->
                    
                    <!-- 22 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=TAPA" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/tapa.png" alt="TAPA"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 23 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=Grammar In" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/grammarin.png" alt="Grammar In"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 24 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=I See Grammar" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/iseegrammar.png" alt="I see grammar"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 25 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=중학영어 듣기모의고사" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/deutgimouigosa.png" alt="중학영어 듣기모의고사"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 26 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=완자 VOCA PICK" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/wanjavocapick.png" alt="완자 VOCA PICK"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 27 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=자습서" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/jaseupseo.png" alt="자습서"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 28 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=자습서&평가문제집" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/pyeonggamunjejip.png" alt="평가문제집"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 29 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=내공의 힘" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/naegonguihim.png" alt="내공의힘"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 30 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=최고득점 수학" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/choegodeukjeomsuhak.png" alt="최고득점수학"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 31 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=지금필수" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/jigeumpilsu.png" alt="지금필수"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 32 -->
                    <li>
                      <a href="https://book.visang.com/search?keyword=단기특강" target="_blank">
      <span class="vs-brand-logo">
        <img src="/assets/img/brand/dangiteukgang.png" alt="단기특강"/>
      </span>
                      </a>
                    </li>
                    
                    <!-- 33 삭제 -->
                    <!--
                    <li>
                      <span class="vs-brand-logo">
                        <img th:src="@{/assets/img/brand/readingspark.png}" alt="Reading Spark"/>
                      </span>
                    </li>
                    -->
                    
                    <!-- 34 삭제 -->
                    <!--
                    <li>
                      <span class="vs-brand-logo">
                        <img th:src="@{/assets/img/brand/allthat.png}" alt="All that 중학영어"/>
                      </span>
                    </li>
                    -->
                  
                  </ul>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  
  <script>
    document.addEventListener('DOMContentLoaded', () => {
      const currentPath = window.location.pathname;
      
      if (currentPath === "/main") {
        document.cookie = "selectedSite=" + encodeURIComponent("교재") + "; Path=/; SameSite=Lax";
      } else if (currentPath === "/main/teacher") {
        document.cookie = "selectedSite=" + encodeURIComponent("학원선생님") + "; Path=/; SameSite=Lax";
      }
      
      // 장바구니 로그인 체크
      const btnShopping = document.querySelector('.btn-shopping');
      if (btnShopping) {
        btnShopping.addEventListener('click', (e) => {
          if (!isLoggedIn) {
            e.preventDefault();
            
            Modal.alert({
              modalType: 'confirm',
              message: {text: `로그인이 필요한 서비스예요`, subText: "로그인할까요?"},
              confirmText: '예',
              cancelText: '아니요',
              onConfirm: () => {
                window.location.href = window.__VISANG_STORE_URL__ + '/Mypage/pay_basket_new.asp';
              },
              onCancel: () => {
              }
            });
          }
        });
      }
    });
    
    // 검색창
    document.addEventListener("DOMContentLoaded", () => {
      const input = document.querySelector(".total-search-layer .search-input .input");
      const resetBtn = document.querySelector(".total-search-layer .input-reset");
      const searchBtn = document.querySelector(".total-search-layer .btn-primary");
      
      resetBtn.style.display = "none";
      
      const maxLen = 20;
      const minLen = 2;
      let notified = false;
      
      /** 입력 중: 리셋 버튼 표시 / 글자수 제한 검증 */
      input.addEventListener("input", () => {
        const value = input.value.trim();
        
        // 리셋 버튼 표시/숨김
        if (value.length > 0) {
          resetBtn.style.display = "block";
        } else {
          resetBtn.style.display = "none";
        }
        
        // 최대 길이 제한 (validateInputMax 로직 동일)
        if (value.length > maxLen) {
          input.value = value.substring(0, maxLen);
          
          if (!notified) {
            notified = true;
            if (typeof Modal !== "undefined" && Modal.alert) {
              Modal.alert({
                modalType: "alert",
                message: {text: `검색어는 최대 ${maxLen}자까지<br> 입력 가능해요.`, subText: ""},
                confirmText: "확인",
                onConfirm: () => {
                  notified = false;
                }
              });
            } else {
              alert(`검색어는 최대 ${maxLen}자까지<br> 입력 가능해요.`);
              notified = false;
            }
          }
        } else {
          notified = false;
        }
      });
      
      /** 리셋 버튼 클릭 시 초기화 */
      resetBtn.addEventListener("click", () => {
        input.value = "";
        input.focus();
        resetBtn.style.display = "none";
      });
      
      /** 최소 글자수 검증 (validateInputMin 로직 동일) */
      function validateMin(inputEl) {
        const value = inputEl.value.trim();
        if (value.length === 0) {
          if (typeof Modal !== "undefined" && Modal.alert) {
            Modal.alert({
              modalType: "alert",
              message: {text: "검색어를 입력해 주세요.", subText: ""},
              confirmText: "확인",
              onConfirm: () => inputEl.focus()
            });
          } else {
            alert("검색어를 입력해 주세요.");
            inputEl.focus();
          }
          return false;
        }
        
        if (value.length < minLen) {
          if (typeof Modal !== "undefined" && Modal.alert) {
            Modal.alert({
              modalType: "alert",
              message: {text: `검색어는 최소 ${minLen}자 이상 입력해 주세요.`, subText: ""},
              confirmText: "확인",
              onConfirm: () => inputEl.focus()
            });
          } else {
            alert(`검색어는 최소 ${minLen}자 이상 입력해 주세요.`);
            inputEl.focus();
          }
          return false;
        }
        
        return true;
      }
      
      /** 검색 실행 */
      function doSearch() {
        if (!validateMin(input)) return;
        
        const keyword = input.value.trim();
        if (keyword.length > 0) {
          const encoded = encodeURIComponent(keyword);
          window.location.href = `/search?keyword=${encoded}`;
        }
      }
      
      /** Enter 키 입력 시 검색 실행 */
      input.addEventListener("keydown", (e) => {
        if (e.key === "Enter") {
          e.preventDefault();
          doSearch();
        }
      });
      
      /** 검색 버튼 클릭 시 검색 실행 */
      searchBtn.addEventListener("click", (e) => {
        e.preventDefault();
        doSearch();
      });
    });
  </script>



  <main id="ly-content">
<!--    <section class="sec-content">-->
<!--      <div th:replace="~{fragments/noDataResult :: noDataResult(-->
<!--          null,-->
<!--          ${errorTitle},-->
<!--          ${errorDetail},-->
<!--          null,-->
<!--          null,-->
<!--          null,-->
<!--          'Home',-->
<!--          '/',-->
<!--          null,-->
<!--          null-->
<!--        )}"></div>-->
<!--      <p style="color: red" th:text="${errorMessage}"></p>-->
<!--    </section>-->
    <section class="sec-content">
      <div class="result-error">
        <p class="text"><span class="c-primary">500</span> Internal Server Error</p>
        <p class="sub-text">
          일시적인 오류가 발생했습니다.<br>
          잠시 후 다시 시도해 주세요.
        </p>
        <div class="btn-wrap">
          <a href="javascript:history.back()" class="btn btn-tertiary md">이전으로</a>
          <a href="/main" class="btn btn-primary md">메인으로</a>
        </div>
      </div>
    </section>
  </main>

  
  <footer id="ly-footer">
    <h2 class="sr-only">바닥글</h2>

    <div class="ly-inner">
      <div class="top-area">
        <nav class="link-group">
          <a href="https://www.visang.com/pageLoad?page_id=kr/main" target="_blank" class="link">회사소개</a>
          <a href="/terms" class="link">이용약관</a>
          <a href="/privacy" class="link">개인정보처리방침</a>
          <a href="/location" class="link">오시는 길</a>
          <a href="/app" class="link" target="_blank">앱 소개</a>
        </nav>
        <div class="family-site">
          <div class="dropdown">
            <button type="button" class="dropdown-toggle" data-toggle="collapse" aria-expanded="false"
                    aria-controls="familySite-list">
              Family site
              <svg class="dropdown-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"
                   fill="none" aria-hidden="true">
                <rect width="20" height="20" rx="10" fill="#222222"/>
                <path d="M13.1574 9.99976H7" stroke="white" stroke-width="1.5" stroke-linecap="round"/>
                <path class="bar" d="M10.0791 6.92096V13.0784" stroke="white" stroke-width="1.5"
                      stroke-linecap="round"/>
              </svg>
            </button>
            <div id="familySite-list" class="dropdown-menu-wrap collapse">
              <ul class="dropdown-menu" data-custom-scroll>
                <li><a href="https://www.visang.com/pageLoad?page_id=kr/main" target="_blank" class="heading">(주)비상교육</a></li>
                <li><h4 class="heading">출판교육 서비스</h4></li>
                <li><a href="" target="_blank" class="dropdown-item">비상교과서</a></li>
                <li><a href="/main" target="_blank" class="dropdown-item">비상교재</a></li>
                <li><a href="null/default.asp" target="_blank" class="dropdown-item">비상서점</a></li>
                <li><a href="https://vivasam.com/" target="_blank" class="dropdown-item">비바샘</a></li>
                <li><a href="https://t.vivasam.com/" target="_blank" class="dropdown-item">비바샘 원격교육연수원</a></li>
                <li><h4 class="heading">에듀플랫폼</h4></li>
                <li><a href="https://www.only1.co.kr/" target="_blank" class="dropdown-item">온리원</a></li>
                <li><a href="https://kids.only1.co.kr/" target="_blank" class="dropdown-item">온리원 키즈</a></li>
                <li><a href="https://www.allviaedu.com/en" target="_blank" class="dropdown-item">올비아</a></li>
                <li><a href="https://www.mastertopik.com/" target="_blank" class="dropdown-item">마스터토픽</a></li>
                <li><a href="https://www.masterkorean.vn/" target="_blank" class="dropdown-item">마스터코리안</a></li>
                <li><h4 class="heading">교육기관</h4></li>
                <li><a href="https://www.englisheye.co.kr/" target="_blank" class="dropdown-item">잉글리시아이</a></li>
                <li><a href="https://www.visangelif.com/" target="_blank" class="dropdown-item">엘리프어학원</a></li>
                <li><a href="https://www.ebsnurisam.com/main" target="_blank" class="dropdown-item">EBS누리샘</a></li>
                <li><a href="https://tikitoki.ebsnurisam.com/" target="_blank" class="dropdown-item">티키토키</a></li>
                <li><a href="https://brand.soohakplus.com/intro/default.aspx" target="_blank" class="dropdown-item">수학플러스러닝</a>
                </li>
                <li><h4 class="heading">인쇄시설</h4></li>
                <li><a href="http://www.terabooks.co.kr/" target="_blank" class="dropdown-item">테라북스</a></li>
              </ul>
            </div>
          </div>
        </div>
      </div>

      <hr class="divider"/>
      
      <div class="mid-area">
        <div class="footer-logo"><img src="/assets/img/common/logo-visang.svg" alt="Above Imagination"/></div>
        <div class="swiper footer-swiper">
          <div class="swiper-wrapper">
            <div class="swiper-slide">
              <img src="/assets/img/footer/footer-slide-01.png" alt="Times와 Statista가 공동 선정하는 2025년 세계 최고 에듀테크 기업">
            </div>
            <div class="swiper-slide">
              <img src="/assets/img/footer/footer-slide-02.png" alt="제27회 대한민국디자인대상 대통령 표창 수상">
            </div>
          </div>
        </div>
      </div>

      <div class="d-flex fd-column fd-md-row-reverse jc-between mt-md-40">
        <div class="sns-group fs-0">
          <a href="https://www.instagram.com/visang.friends/" target="_blank" class="sns sns-instagram"
             aria-label="인스타그램"> </a>
          <a href="https://cafe.naver.com/visangmomntalk" target="_blank" class="sns sns-cafe" aria-label="맘앤톡 카페"> </a>
        </div>

        <address>
          <span class="company">(주)비상교육</span>
          <dl>
            <div>
              <dt>대표자명</dt>
              <dd>양태회</dd>
            </div>
            <div>
              <dt>사업자등록번호</dt>
              <dd>211-87-07735</dd>
            </div>
            <div>
              <dt>통신판매업 신고번호</dt>
              <dd>제 2024-경기과천-0098 <a href="https://www.ftc.go.kr/bizCommPop.do?wrkr_no=1198522853" target="_blank">정보조회</a></dd>
            </div>
            <div>
              <dt>신고기관</dt>
              <dd>경기도 과천시청</dd>
            </div>
            <div>
              <dt>TEL</dt>
              <dd>1544-0554</dd>
            </div>
            <div>
              <dt>FAX</dt>
              <dd>(02)6970-6148</dd>
            </div>
            <div>
              <dt>대표메일</dt>
              <dd>
                <a href="mailto:webmaster@visang.com">webmaster@visang.com</a>
              </dd>
            </div>
            <div>
              <dt>주소</dt>
              <dd>경기도 과천시 과천대로2길 54 그라운드브이 14층</dd>
            </div>
          </dl>
        </address>
      </div>
      <p class="copyright">COPYRIGHT© (주)비상교육 ALL RIGHTS RESERVED.</p>
    </div>
  </footer>
  <!-- 기본 JS -->
  
    <script src="/assets/js/vendor/jquery-3.7.1.min.js"></script>
    <script src="/assets/js/vendor/jquery-ui.min.js"></script>
    <script src="/assets/js/vendor/jquery.cookie.js"></script>
    <script src="/assets/js/vendor/lottie.min.js"></script>
    <script src="/assets/js/vendor/popper.min.js"></script>
    <script src="/assets/js/vendor/swiper.min.js"></script>
    <script src="/assets/js/vendor/tippy-bundle.umd.min.js"></script>

    <script src="/assets/js/vendor/sortable.min.js"></script>
    <script src="/assets/js/vendor/jstree.min.js"></script>
    <script src="/assets/js/vendor/axios.min.js"></script>

    <script src="/assets/js/minimy-lottie.js"></script>
    <script src="/assets/js/common-ui.js"></script>
    <script src="/assets/js/custom-ui.js"></script>
    <script src="/assets/js/front.js"></script>
    <script src="/assets/js/fetcher.js"></script>
    <script src="/assets/js/share.js"></script>
    <script src="/assets/js/webview-bridge.js"></script>
    <script src="/assets/js/webview-function.js"></script>
    <script src="/assets/js/archive.js"></script>
  
  
  <script>
    document.addEventListener("DOMContentLoaded", function () {
      const footerSwiperEl = document.querySelector(".footer-swiper");
      if (!footerSwiperEl) return;
      
      new Swiper(".footer-swiper", {
        loop: true,
        effect: "fade",
        speed: 600,
        autoplay: {
          delay: 2500,
          disableOnInteraction: false
        },
        slidesPerView: 1,
        spaceBetween: 20,
      });
    });
  </script>
  
  <script>
    /*<![CDATA[*/
    const alertMessage = null;
    const alertErrorMessage = null;
    const redirectUrl = null;

    // 우선순위: ALERT_ERROR_MSG > alertMessage
    const messageToShow = alertErrorMessage || alertMessage;

    if (messageToShow) {
      Modal.alert({
        modalType: "alert",
        message: {
          text: alertErrorMessage ? "오류" : messageToShow,
          subText: alertErrorMessage ? alertErrorMessage : "",
        },
        confirmText: "확인",
        onConfirm: () => {
          if (!alertErrorMessage && redirectUrl) {
            window.location.href = redirectUrl;
          }
        },
      });
    }
    /*]]>*/
  </script>
  <script src="https://t1.kakaocdn.net/kakao_js_sdk/2.5.0/kakao.min.js"></script>
  <script>
    const KAKAO_JS_KEY = null;
    Kakao.init(KAKAO_JS_KEY);
  </script>

  
  
  
  
  
  
  
  
  <div class="floating">
    <div class="minimy">
      <div id="minimy-character"></div>
      <button type="button" class="minimy-toggle pc" aria-label="미니마이 열기">Mini MY</button>
      <button type="button" class="minimy-toggle mo" data-toggle="modal" data-target="#minimyModal"
              aria-label="미니마이 모달 열기">Mini MY
      </button>
    </div>
    <!-- 브랜드 스토리 -->
    <div class="brands">
      <em class="brands-title">Brand Story</em>
      <div class="brands-swiper">
        <div class="swiper-wrapper">
          <div class="swiper-slide">
            <a href="/brand/gaenyeomyuhyeong" class="go-brand" target="_blank">
              <div class="logo-img">
                <img src="/assets/img/brand/gaenyeomyuhyeong.png" alt="개념+유형"/>
              </div>
              <span class="desc"
              >개념과 유형<br/>
                  한 권에 담다</span
              >
            </a>
          </div>
          <div class="swiper-slide">
            <a href="/brand/hankkeut" class="go-brand" target="_blank">
              <div class="logo-img">
                <img src="/assets/img/brand/hankkeut.png" alt="한끝"/>
              </div>
              <span class="desc"
              >내신만점<br/>
                  한 권으로 끝!</span
              >
            </a>
          </div>
          <div class="swiper-slide">
            <a href="/brand/o2" class="go-brand" target="_blank">
              <div class="logo-img">
                <img src="/assets/img/brand/o2.png" alt="오투"/>
              </div>
              <span class="desc"
              >1등에는<br/>
                  이유가 있다!</span
              >
            </a>
          </div>
          <div class="swiper-slide">
            <a href="/brand/wanja" class="go-brand" target="_blank">
              <div class="logo-img">
                <img src="/assets/img/brand/wanja.png" alt="완자"/>
              </div>
              <span class="desc"
              >핵심은 쏙쏙!<br/>
                  자신감은 쑥쑥!</span
              >
            </a>
          </div>
          <div class="swiper-slide">
            <a href="/brand/wanjagonbu" class="go-brand" target="_blank">
              <div class="logo-img">
                <img src="/assets/img/brand/wanjagongburyeok.png" alt="완자공부력"/>
              </div>
              <span class="desc"
              >스스로<br/>
                  공부하는 힘!</span
              >
            </a>
          </div>
          <div class="swiper-slide">
            <a href="/brand/readersbank" class="go-brand" target="_blank">
              <div class="logo-img">
                <img src="/assets/img/brand/readersbank.png" alt="리더스뱅크"/>
              </div>
              <span class="desc"
              >깊이 있는<br/>
                  독해력 완성</span
              >
            </a>
          </div>
        </div>
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
        <div class="swiper-control">
          <button aria-pressed="false" aria-label="일시정지"></button>
        </div>
      </div>
<!--      <button type="button" class="brands-close" aria-label="Brand Story 닫기"></button>-->
    </div>
    
    <div class="floating-area mo">
      <a href="/support/news/detail/176011" target="_blank">
        <img class="img" src="/assets/img/floating_type1.png" alt="결손단원 보완 자료 제공 바로가기">
      </a>
      <button class="close-btn">
        <img class="close-btn" src="/assets/img/floating_type1_btnx.png" alt="결손단원 보완 자료 제공 플로팅 닫기">
      </button>
    </div>
    
    <!-- [데스크탑용] 미니마이 (로그인 시 'logged-in' 클래스 추가) -->
    <aside class="minimy-panel" aria-expanded="false">
      <div class="minimy-content">
        <button type="button" class="minimy-close" aria-label="미니마이 닫기"></button>
        <h2 class="title">Mini MY</h2>
        <!-- Case. 로그인 전 -->
        <div class="logout">
          <div class="greeting">
            로그인 후<br class="d-sm-none d-md-block"/>
            편하게 이용해보세요!
          </div>
          <div class="btns">
            <a href="/login" class="btn btn-login">로그인</a>
            <a href="/account/iam" class="btn btn-join">회원가입</a>
          </div>
        </div>
        
        <!-- Case. 로그인 후 -->
        
        
        <!-- 최근 본 교재 -->
        <div class="minimy-books">
          <h2 class="books-title">최근 본 교재
<!--            <em class="c-primary">4</em>-->
            <a href="/mypage/recent" class="text-btn go-page" aria-label="더보기">더보기</a></h2>
          
          
          <div class="result-nodata">
            <p class="text">최근 본 교재가 없어요</p>
          </div>
        </div>
      </div>
    </aside>
  </div>
  
  <!-- [모바일용] 미니마이  -->
  <div class="modal fade" id="minimyModal" tabindex="-1" aria-labelledby="minimyModalLabel">
    <div class="modal-dialog minimy-modal">
      <div class="modal-content minimy-content">
        <button type="button" class="modal-close" data-dismiss="modal" aria-label="미니마이 모달 닫기"></button>
        <div class="modal-header">
          <h1 class="modal-title" id="minimyModalLabel">Mini MY</h1>
        </div>
        <div class="modal-body">
          <div>
            <!-- Case. 로그인 전 -->
            <div class="logout">
              <div class="greeting">
                로그인 후<br class="d-sm-none d-md-block"/>
                편하게 이용해보세요!
              </div>
              <div class="btns">
                <a href="/login" class="btn btn-login">로그인</a>
                <a href="/account/iam" class="btn btn-join">회원가입</a>
              </div>
            </div>
            
            <!-- Case. 로그인 후 -->
            
            
            <!-- 최근 본 교재 -->
            <div class="minimy-books">
              <h2 class="books-title">최근 본 교재
<!--                <em class="c-primary">4</em>-->
                <a href="/mypage/recent" class="text-btn go-page" aria-label="더보기">더보기</a></h2>
              
              
              <!-- Case. 최근 본 교재 無 -->
              <div class="result-nodata">
                <p class="text">최근 본 교재가 없어요</p>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  
  <script>
    $(function () {
      if (!isLoggedIn) {
        renderRecentViewBooks()
      }
      
      // 회원이면 동기화
      if (isLoggedIn) {
        const recentViewBooks = JSON.parse(localStorage.getItem('anonymousRecentViewBooks')) || [];
        
        if (recentViewBooks.length === 0) {
          swiperReset()
          
          return
        }
        
        let bookIds = recentViewBooks.map(book => book.bookId)
        
        apiFetch(`/mypage/api/recent-book/sync`, {
          method: 'POST',
          body: {bookIds: bookIds}
        })
          .then(response => {
            if (!response.success) {
              return
            }
            
            localStorage.removeItem('anonymousRecentViewBooks')
            
            const recentBooks = response.data.recentBooks.books
            let books = []
            
            for (const book of recentBooks) {
              books.push({
                bookId: book.bookId,
                title: book.title,
                urlThumbnail: book.urlThumbnail
              })
            }
            
            localStorage.setItem('anonymousRecentViewBooks', JSON.stringify(books))
            
            renderRecentViewBooks()
            
            localStorage.removeItem('anonymousRecentViewBooks')
            
            $('.minimy-books .c-primary').text(response.data.recentBooks.count)
          })
      }
    })
    
    $(document).on('click', '.minimy-books .thumbnail-book', function () {
      window.location.href = '/books/info/' + $(this).closest('.swiper-slide').data('book-id')
    })
    
    $(document).on('click', '.minimy-books .delete-item', function (e) {
      e.stopPropagation()
      const bookId = $(this).closest('.swiper-slide').data('book-id')
      deleteRecentViewBook(bookId)
    })
    
    /**
     * 비회원 최근 본 교재 저장
     */
    const addRecentViewBook = (
      bookId,
      title,
      urlThumbnail
    ) => {
      // 회원이면 저장하지 않음
      if (isLoggedIn) {
        return
      }
      
      // localstorage에 recentViewBooks 배열이 없으면 초기화
      let recentViewBooks = JSON.parse(localStorage.getItem('anonymousRecentViewBooks')) || [];
      
      // 최대 10개까지 최신순으로 저장
      recentViewBooks.push({
        bookId,
        title,
        urlThumbnail,
        viewedAt: new Date().getTime(),
      })
      
      // 중복이 있으면 viewedAT을 기준으로 오래된 것을 제거
      recentViewBooks = recentViewBooks.sort((a, b) => b.viewedAt - a.viewedAt);
      
      recentViewBooks = recentViewBooks.filter((book, index, self) =>
        index === self.findIndex((b) => b.bookId === book.bookId)
      );
      
      // 최신순으로 정렬
      recentViewBooks.sort((a, b) => b.viewedAt - a.viewedAt);
      
      localStorage.setItem('anonymousRecentViewBooks', JSON.stringify(recentViewBooks));
      
      // 페이지 렌더
      renderRecentViewBooks()
    }
    
    /**
     * 비회원 최근 본 교재 렌더링
     */
    const renderRecentViewBooks = () => {
      const $minimyBooks = $('.minimy-books')
      
      const recentViewBooks = JSON.parse(localStorage.getItem('anonymousRecentViewBooks')) || [];
      
      if (recentViewBooks.length === 0) {
        $minimyBooks.find('.swiper').remove()
        $('.minimy-books .result-nodata').css('display', 'block')
        return
      }
      
      $('.minimy-books .c-primary').text(recentViewBooks.length)
      
      $minimyBooks.find('.swiper').remove() // 기존 슬라이더 제거
      
      $minimyBooks.each(function () {
        $(this).append('<div class="swiper"><div class="swiper-wrapper"></div><div class="slider-pagination"></div></div>')
        const $swiper = $(this).find('.swiper-wrapper')
        
        for (let i = 0; i < recentViewBooks.length && i < 10; i++) {
          const book = recentViewBooks[i]
          $swiper.append(`
                <div class="swiper-slide" data-book-id="${book.bookId}">
                    <div class="thumbnail-book" style="cursor: pointer">
                        <div class="img">
                          <img src="${toCdnUrl(book.urlThumbnail)}" alt="${book.title}"/>
                        </div>
                    </div>
                    <button type="button" class="delete-item" aria-label="삭제"></button>
                </div>
            `)
        }
      })
      
      $('.minimy-books .result-nodata').css('display', 'none')
      
      swiperReset()
    }
    
    const deleteRecentViewBook = (bookId) => {
      // 회원은 api 호출
      if (isLoggedIn) {
        apiFetch(`/mypage/api/recent-book/delete?bookId=${bookId}`, {
          method: 'POST'
        })
          .then(response => {
            if (!response.success) {
              return
            }
            
            localStorage.removeItem('anonymousRecentViewBooks')
            
            const recentBooks = response.data.recentBooks.books
            let books = []
            
            for (const book of recentBooks) {
              books.push({
                bookId: book.bookId,
                title: book.title,
                urlThumbnail: book.urlThumbnail
              })
            }
            
            localStorage.setItem('anonymousRecentViewBooks', JSON.stringify(books))
            
            renderRecentViewBooks()
            
            localStorage.removeItem('anonymousRecentViewBooks')
            
            $('.minimy-books .c-primary').text(response.data.recentBooks.count)
          })
      }
      // 비회원은 localStorage에서 삭제
      else {
        let recentViewBooks = JSON.parse(localStorage.getItem('anonymousRecentViewBooks')) || [];
        
        recentViewBooks = recentViewBooks.filter(book => book.bookId !== bookId);
        
        localStorage.setItem('anonymousRecentViewBooks', JSON.stringify(recentViewBooks));
        
        // 페이지 렌더
        renderRecentViewBooks()
      }
    }
    
    function swiperReset() {
      vsSwiper('.minimy-books .swiper', {
        slidesPerView: 3,
        slidesPerGroup: 3,
        spaceBetween: 10,
        slideActiveClass: "is-active",
        breakpoints: {
          768: {
            slidesPerView: 2,
            slidesPerGroup: 2,
          },
        },
      })
    }
  </script>


  <aside></aside>

  <div class="go-to-top for-desktop">
    <button type="button" class="top-btn top-btn-pc" aria-label="페이지 상단 이동"></button>
  </div>

  
</body>
</html>