Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
90ed413
과제 제출을 위한 빈 커밋 날리기
ds92ko Dec 1, 2025
c089430
refactor: 아이콘 컴포넌트 추출 및 적용
ds92ko Dec 2, 2025
85688a1
refactor: toast 컴포넌트 추출 및 notifications 훅&타입 분리
ds92ko Dec 2, 2025
737b337
refactor: button 컴포넌트 추출 및 적용
ds92ko Dec 2, 2025
18aa11b
refactor: input 컴포넌트 추출 및 적용
ds92ko Dec 2, 2025
6ce020e
refactor: constants 및 types 분리
ds92ko Dec 2, 2025
0166581
refactor: header 컴포넌트 추출 및 적용
ds92ko Dec 2, 2025
5b46ef5
refactor: 페이지 관리 훅 분리
ds92ko Dec 2, 2025
bda5222
refactor: Header nav를 페이지 타입별 객체로 분리
ds92ko Dec 2, 2025
c1f0630
refactor: App에서 쇼핑몰 페이지와 관리자 페이지 분리
ds92ko Dec 3, 2025
581ef0a
refactor: tabs 컴포넌트 추출 및 적용
ds92ko Dec 3, 2025
44cc1c3
refactor: tabs 훅에서 사용하지 않는 함수 제거
ds92ko Dec 3, 2025
c59c2bb
fix: addNotification 의존성 배열에 누락된 duration 추가
ds92ko Dec 3, 2025
abe6971
refactor: 관리자 페이지에서 product, coupon 섹션 분리
ds92ko Dec 3, 2025
28c5606
refactor: select 컴포넌트 추출
ds92ko Dec 3, 2025
fe4bfc2
refactor: label 컴포넌트 추출 및 적용
ds92ko Dec 3, 2025
e2c29e7
refactor: coupon form 컴포넌트 추출 및 관련 커스텀 훅 추가
ds92ko Dec 3, 2025
7400e41
refactor: select 컴포넌트를 store, admin에서 전부 사용 가능하도록 variant 추가
ds92ko Dec 3, 2025
6997638
fix: initial coupon form을 상수화
ds92ko Dec 3, 2025
441d481
refactor: format price 함수 유틸화
ds92ko Dec 3, 2025
44d2a28
refactor: product section 컴포넌트에 showProductForm, productForm을 커스텀훅으로 대체
ds92ko Dec 3, 2025
201c3ed
refactor: coupon list 컴포넌트 추출
ds92ko Dec 3, 2025
463347c
refactor: table 컴포넌트 추출 및 적용
ds92ko Dec 3, 2025
4402e26
fix: className prop 기본값 누락 수정
ds92ko Dec 3, 2025
098fa3a
refactor: DISCOUNT_VALUE_CONSTRAINTS -> COUPON_VALIDATION_RULES으로 상수명 변경
ds92ko Dec 3, 2025
6e8d84c
refactor: product list, product form 컴포넌트 추출
ds92ko Dec 3, 2025
112b772
refactor: store의 product section/list 컴포넌트 추출
ds92ko Dec 3, 2025
57ed524
refactor: cart, coupon, payment section 컴포넌트 추출
ds92ko Dec 3, 2025
ffa105d
refactor: useLocalStorage 커스텀 훅 분리
ds92ko Dec 3, 2025
96d2154
refactor: useDebounce 커스텀 훅 분리
ds92ko Dec 3, 2025
e190a7a
refactor: useProducts 커스텀 훅 분리
ds92ko Dec 3, 2025
a9c9bc8
refactor: useCoupons 커스텀 훅 분리
ds92ko Dec 3, 2025
762d778
refactor: cart 관련 로직 커스텀 훅 및 models로 분리
ds92ko Dec 4, 2025
173b6e2
refactor: models/cart 순수 함수 활용으로 컴포넌트 중복 코드 제거
ds92ko Dec 4, 2025
e7d2d67
refactor: 범용 validator로 검증 로직 통합 및 validation rules 구조 통일
ds92ko Dec 4, 2025
ba269d1
refactor: useCart hook을 전역적으로 적용하여 중복 로직 제거
ds92ko Dec 4, 2025
7f0e511
refactor: 컴포넌트의 비즈니스 로직을 순수 함수와 hook으로 분리
ds92ko Dec 4, 2025
719fcb2
refactor: 포맷팅 및 쿠폰 로직을 utils 함수로 통일
ds92ko Dec 4, 2025
c132d31
refactor: UI 로직을 순수 함수로 분리 및 성능 최적화
ds92ko Dec 4, 2025
48c714f
refactor: 인라인 로직을 함수로 분리 및 성능 최적화
ds92ko Dec 4, 2025
7fbed58
refactor: 폼 입력값 검증 로직을 utils로 분리
ds92ko Dec 4, 2025
255d51b
refactor: ProductList의 IIFE 패턴 제거 및 코드 정리
ds92ko Dec 4, 2025
0b79c76
refactor: 사용하지 않는 props 제거
ds92ko Dec 4, 2025
7b386c1
refactor: CartSection의 CartItem 컴포넌트 분리
ds92ko Dec 4, 2025
dd03c88
refactor: CartSection의 타입 import 경로 일관성 개선
ds92ko Dec 4, 2025
a54100c
refactor: App.tsx의 중복 로직 제거 및 불필요한 useMemo 제거
ds92ko Dec 4, 2025
aaf23e5
refactor: CartSection의 Props Drilling 감소 및 불필요한 useMemo 제거
ds92ko Dec 4, 2025
7ac281d
refactor: App.tsx의 useCallback 의존성 배열 최적화
ds92ko Dec 4, 2025
bc5ab76
refactor: cart.length 대신 totalItemCount 사용으로 일관성 향상
ds92ko Dec 4, 2025
1d3d233
refactor: 불필요한 useCallback 제거
ds92ko Dec 4, 2025
7ef2dfa
refactor: 불필요한 useCallback 제거 및 최적화 기준 명확화
ds92ko Dec 4, 2025
52bd130
perf: useMemo로 객체 및 배열 재생성 최적화
ds92ko Dec 4, 2025
9fe7ade
refactor: 함수형 프로그래밍 원칙 적용
ds92ko Dec 4, 2025
c578d79
refactor: 엔티티 관련 함수를 models로 완전히 이동
ds92ko Dec 4, 2025
befff7c
feat: basic 리팩토링 코드를 advanced로 복사
ds92ko Dec 4, 2025
aa14c7b
chore: zustand 설치
ds92ko Dec 4, 2025
28722b1
refactor: notifications를 Zustand 전역 상태로 변경
ds92ko Dec 4, 2025
d470131
refactor: cart 로직을 zustand persist 스토어로 전환
ds92ko Dec 4, 2025
05431ec
refactor: cart 스토어에서 불필요한 get을 set에서 state로 직접 받아오도록 수정
ds92ko Dec 4, 2025
fec2653
refactor: products 로직을 zustand persist 스토어로 전환
ds92ko Dec 4, 2025
7cf8feb
refactor: coupons 로직을 zustand persist 스토어로 전환
ds92ko Dec 4, 2025
3ef91c3
refactor: 불필요한 props drilling 제거
ds92ko Dec 4, 2025
5966d60
refactor: searchTerm을 zustand 전역 상태로 전환
ds92ko Dec 4, 2025
f1a938c
refactor: handleSearchChange에 불필요한 useCallback 제거 및 inline 함수로 변경
ds92ko Dec 4, 2025
24635da
refactor: App 컴포넌트에서 불필요한 useMemo 제거
ds92ko Dec 4, 2025
f030e43
refactor: handleSearchChange에 불필요한 useCallback 제거 및 inline 함수로 변경
ds92ko Dec 4, 2025
259ae3c
refactor: coupon-form에서 불필요한 useMemo 제거
ds92ko Dec 4, 2025
4adaacc
refactor: basic과 localStorage 구조 일치를 위한 커스텀 스토리지 추가
ds92ko Dec 4, 2025
ab60072
ci: GitHub Pages 배포 워크플로우 설정
ds92ko Dec 5, 2025
02e9322
chore: @types/node 설치
ds92ko Dec 5, 2025
12f66c6
chore: tsconfig.node.json에 types/node 설정
ds92ko Dec 5, 2025
2d0d40a
ci: 배포 설정 변경
ds92ko Dec 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Deploy to GitHub Pages

on:
push:
branches:
- main
paths:
- 'src/basic/**'
- 'src/advanced/**'
- '.github/workflows/deploy.yml'
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: 'pages'
cancel-in-progress: true

jobs:
deploy:
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: latest

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build
run: pnpm run build
env:
NODE_ENV: production
VITE_BASE_PATH: /${{ github.event.repository.name }}/

- name: Set advanced as default
run: cp dist/index.advanced.html dist/index.html

- name: Setup Pages
uses: actions/configure-pages@v4

- name: Upload artifact
uses: actions/upload-pages-artifact@v4
with:
path: ./dist

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@
},
"dependencies": {
"react": "^19.1.1",
"react-dom": "^19.1.1"
"react-dom": "^19.1.1",
"zustand": "^5.0.9"
},
"devDependencies": {
"@testing-library/jest-dom": "^6.6.4",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@types/node": "^24.10.1",
"@types/react": "^19.1.9",
"@types/react-dom": "^19.1.7",
"@typescript-eslint/eslint-plugin": "^8.38.0",
Expand Down
73 changes: 58 additions & 15 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading