Project. Admin 페이지 프론트단 제작 프로젝트 (250402)

2025. 4. 2. 10:24·프로젝트
목차
  1. HTML 문서 분석 및 흐름 설명
  2. 6. 스크립트: 데이터 로딩 및 삽입
  3. 프로젝트 진행 흐름

이 HTML 코드는 **관리자 페이지 (Admin Page)**를 만들기 위한 기본적인 구조를 보여주고 있습니다. 각 요소의 역할을 이해하고, 페이지의 흐름에 대해 단계별로 설명을 드리겠습니다.

HTML 문서 분석 및 흐름 설명

1. 문서 기본 설정

<!DOCTYPE html>
<html lang="ko">
  • <!DOCTYPE html>: HTML5 문서임을 선언합니다. 이는 브라우저가 이 문서를 HTML5 형식으로 해석하도록 만듭니다.
  • <html lang="ko">: 문서의 언어를 한국어로 설정합니다. 이는 SEO 및 접근성을 고려한 설정입니다.

2. 문서 메타데이터와 외부 리소스 연결

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-4bw+/aepP/YC94hEpVNVgiZdgIC5+VKNBQNGCHeKRQN+PtmoHDEXuppvnDJzQIu9" crossorigin="anonymous">
  <title>Admin Page</title>
</head>
 
 
  • <meta charset="UTF-8">: 문서의 문자 인코딩을 UTF-8로 설정합니다. 이는 다양한 문자와 기호를 올바르게 표현하기 위해 사용됩니다.
  • <meta name="viewport" content="width=device-width, initial-scale=1.0">: 모바일 장치에서 페이지가 올바르게 표시되도록 뷰포트를 설정합니다.
  • : Bootstrap CSS를 외부 CDN에서 불러와서 페이지 스타일을 적용합니다. Bootstrap은 인기 있는 CSS 프레임워크로, 다양한 UI 컴포넌트를 쉽게 사용할 수 있습니다.
  • <title>Admin Page</title>: 브라우저 탭에 표시될 페이지 제목을 설정합니다.

3. 본문 (Body)

<body>
  <div class="container mt-3">
    <h3 class="mt-5 mb-3">신규 등록 상품</h3>
    <form class="row row-cols-lg-auto g-3 align-items-center">
      <div class="col-12">
        <label class="visually-hidden" for="inlineFormSelectPref">Preference</label>
        <select class="form-select" id="inlineFormSelectPref" name="category_data_table">
          <!-- 셀렉트요소의 name="category_data_table"은 지우거나 변경하면 안돼요 -->
          <!-- 카테고리 셀렉트 코드를 넣어주세요 -->
        </select>
      </div>
      <div class="col-3">
        <!-- input 입력창 코드를 넣어주세요 -->
      </div>
      <div class="col-auto">
        <!-- 조회 버튼 코드를 넣어주세요 -->
      </div>
    </form>
  • <h3 class="mt-5 mb-3">신규 등록 상품</h3>: 페이지의 제목을 **"신규 등록 상품"**으로 설정합니다.
  • <form class="row row-cols-lg-auto g-3 align-items-center">: 폼을 그리드 시스템을 이용해 작성하며, 카테고리 선택, 상품명 입력, 조회 버튼을 배치합니다.
    • class="form-select": Select 박스를 생성하며, 사용자가 카테고리를 선택할 수 있도록 합니다.
    • name="category_data_table": 이 Select 박스를 통해 선택된 카테고리 정보를 서버로 전송할 때 사용되는 name 속성입니다.
  • 이 섹션에서는 상품 카테고리 선택, 상품명 입력, 조회 버튼에 대한 코드 삽입을 안내하는 주석들이 있습니다.

4. 상품 목록 테이블

    <div class="container mt-3">
      <table class="table table-sm">
        <thead>
          <!-- 열의 속성값을 나타내는 코드를 작성해주세요 (예 : 카테고리, 브랜드, 상품명, 가격) -->
        </thead>
        <tbody id="product_data_Table">
          <!-- tbody요소의 id="product_data_Table" 는 지우거나 변경하면 안돼요! -->
          <!-- 제품 데이터가 여기 추가됩니다. -->
        </tbody>
      </table>
    </div>
  • 상품 목록을 보여주는 테이블입니다.
    • <thead>에는 테이블의 열 제목을 삽입해야 합니다. 예를 들어, 카테고리, 브랜드, 상품명, 가격 등과 같은 열을 추가할 수 있습니다.
    • <tbody id="product_data_Table">: 이 부분은 자바스크립트로 데이터를 동적으로 삽입하는 구역입니다. id="product_data_Table"는 자바스크립트에서 이 부분을 선택하여 데이터를 채우기 위해 사용됩니다.

5. 페이지 네이션

    <!-- 페이지 네이션 코드를 넣어주세요 -->
  </div>
  • 페이지네이션 코드가 여기에 추가될 예정입니다. 예를 들어, 페이지가 여러 개로 나눠져 있을 때 각 페이지를 전환할 수 있는 버튼을 제공할 수 있습니다. 일반적으로 Bootstrap의 Pagination 컴포넌트를 사용하여 구현할 수 있습니다.

6. 스크립트: 데이터 로딩 및 삽입

  <script>
    // 크롤링한 데이터를 아래와 같은 형태의 객체 배열로 가정합니다.
    const product_data = [
      { category: "상의", brand: 'Supreme', product: '슈프림 박스로고 후드티', price: '390,000' },
      { category: "하의", brand: 'DIESEL', product: '디젤 트랙 팬츠', price: '188,000' },
      { category: "신발", brand: 'Nike', product: '에어포스 1', price: '137,000' },
      { category: "패션잡화", brand: 'Music&Goods', product: '빵빵이 키링', price: '29,000' },
    ];

    const product_data_Table = document.getElementById('product_data_Table');

    // 초기 데이터 로딩
    product_data.forEach((item) => {
      const row = product_data_Table.insertRow();
      row.insertCell(0).innerHTML = item.category;
      row.insertCell(1).innerHTML = item.brand;
      row.insertCell(2).innerHTML = item.product;
      row.insertCell(3).innerHTML = item.price;
    });
  </script>
  • 자바스크립트 코드입니다. 이 코드는 데이터를 배열 형태로 정의하고, 이를 HTML 테이블에 동적으로 삽입합니다.
    • const product_data = [...]: 상품 정보를 배열로 정의합니다. 각 객체는 상품의 카테고리, 브랜드, 상품명, 가격 정보를 담고 있습니다.
    • const product_data_Table = document.getElementById('product_data_Table');: 이 구문은 HTML에서 id="product_data_Table"인 테이블 바디 요소를 자바스크립트로 선택합니다.
    • product_data.forEach((item) => {...});: 배열 product_data를 순회하면서 각 상품 데이터를 테이블에 **행(row)**으로 삽입합니다.
      • row.insertCell(0).innerHTML = item.category;: 첫 번째 셀에 상품의 카테고리 값을 삽입합니다.
      • 나머지 셀에도 브랜드, 상품명, 가격 정보를 순차적으로 삽입합니다.

7. Bootstrap JS 추가

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
  • Bootstrap JS는 페이지에 동적인 요소 (모달, 드롭다운 등)를 추가하기 위해 필요합니다. 이 스크립트는 Bootstrap의 JavaScript 기능을 활용하는데 사용됩니다.

프로젝트 진행 흐름

  1. 상품 카테고리 셀렉트 박스:
    • 카테고리 정보를 드롭다운 메뉴로 제공하고, 사용자가 선택한 카테고리를 서버에 전송하거나 다른 작업을 진행하도록 할 수 있습니다.
  2. 상품 목록 테이블:
    • product_data 배열에 있는 데이터를 기반으로 상품 목록 테이블을 동적으로 생성합니다.
    • 데이터를 서버에서 가져오는 방식으로 변경하면, 백엔드와 연동하여 실시간으로 데이터를 표시할 수 있습니다.
  3. 페이지 네이션:
    • 제품이 많을 경우 페이지 네이션을 추가하여, 한 페이지에 표시할 제품 수를 제한하고, 페이지를 넘겨가며 확인할 수 있게 만듭니다.
  4. 사용자 인터페이스 개선:
    • 필터링, 검색 기능 등을 추가하여 관리자가 특정 제품을 쉽게 찾을 수 있도록 UI를 개선할 수 있습니다.

'프로젝트' 카테고리의 다른 글

16강 미니 프로젝트(사진 공유 웹사이트)_1 (AWS)  (0) 2025.04.11
Project. Admin 페이지 프론트단 제작 프로젝트 (250402)  (0) 2025.04.02
Mini Project : Mini Project. 회원가입폼만들기 (Javascript :2일차 과제)  (0) 2025.04.01
Mini Project : Mini Project. 사용자 정보 입력받기 (Javascript :1일차 과제)  (0) 2025.04.01
Mini Project : Mini Project. 사용자 정보 입력받기 (Javascript :1일차 과제)+@  (0) 2025.03.31
  1. HTML 문서 분석 및 흐름 설명
  2. 6. 스크립트: 데이터 로딩 및 삽입
  3. 프로젝트 진행 흐름
'프로젝트' 카테고리의 다른 글
  • 16강 미니 프로젝트(사진 공유 웹사이트)_1 (AWS)
  • Project. Admin 페이지 프론트단 제작 프로젝트 (250402)
  • Mini Project : Mini Project. 회원가입폼만들기 (Javascript :2일차 과제)
  • Mini Project : Mini Project. 사용자 정보 입력받기 (Javascript :1일차 과제)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (582) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (10)
      • 특강 (26)
      • 기술블로그 (196) N
      • AI 분석 (3)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (58)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Project. Admin 페이지 프론트단 제작 프로젝트 (250402)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.