Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
b2e37bd
reset
hanseulhee Oct 10, 2023
6f8bbb0
Merge branch 'codeit-bootcamp-frontend:main' into main
hanseulhee Oct 10, 2023
e11e25f
fix: 머지 후 브랜치 삭제 github action 수정
hanseulhee Oct 10, 2023
212e864
env: workflows 폴더로 이동
hanseulhee Oct 10, 2023
4dc5dd0
Merge pull request #237 from hanseulhee/fix-github-actions
withyj-codeit Nov 6, 2023
8d022ce
Feat: 전체 기능 구현 완료
two678 Feb 25, 2025
47033c1
Modify the path of pages
two678 Feb 25, 2025
fa5c54e
Merge pull request #21 from two678/Basic-이지현-sprint1
GANGYIKIM Feb 26, 2025
229ff1c
refactor(images): 고해상도 이미지로 변경하고 파일명을 소문자로 통일, 코드 반영
two678 Feb 28, 2025
c6bd3f6
refactor(logo): 불필요한 로고 파일 정리 후 폴더명 수정, 코드 반영
two678 Feb 28, 2025
bff2f46
refactor: 언어 속성 수정, 네비게이션 버튼을 링크로 변경 및 이미지 크기 최적화
two678 Feb 28, 2025
6f1e531
refactor: div 태그를 ul/li로 변경하여 목록 구조화
two678 Feb 28, 2025
8c12e1f
fix: 폰트 우선 순위 수정하여 올바른 폰트 적용
two678 Feb 28, 2025
56ac645
style: reset.css 추가 및 home.css 스타일 초기화 적용
two678 Feb 28, 2025
a37e4c8
feat: 상단 네비게이션바 고정 위치 변경 및 클래스명 global_nav로 수정(스크롤 시에도 최상단 유지)
two678 Feb 28, 2025
1c167b3
feat: 로그인 페이지 기본 HTML 구조 추가
two678 Feb 28, 2025
78cb777
feat: 로그인 페이지 로고 추가 및 로고 클릭 시 루트 페이지로 이동 기능 추가
two678 Feb 28, 2025
2cf200a
feat: 로그인 페이지 기본 레이아웃 및 회원가입 페이지 추가
two678 Mar 5, 2025
60a5d1e
feat: 로그인 페이지 UI 디자인 및 스타일 적용
two678 Mar 5, 2025
46cfdd1
feat: signup.html 작성 및 로그인/회원가입 공통 스타일 수정
two678 Mar 5, 2025
ba3f3e1
fix: 비밀번호 아이콘 클래스명 수정 (hide_icon → pwd_icon)
two678 Mar 5, 2025
dd9f4bd
Merge pull request #56 from two678/Basic-이지현-sprint2
GANGYIKIM Mar 7, 2025
a6e66e5
fix: 로고 이미지 깨짐 현상 수정 및 파일명 변경 (logo_1.png -> logo.png)
two678 Mar 14, 2025
c9de9e2
rename: 로그인/회원가입 페이지에서 이미지 파일명 변경 및 코드 수정 (GoogleBg.png -> Google.png…
two678 Mar 14, 2025
08a33b6
feat: CSS 변수(auth.css -> variables.css) 분리 및 login, signup.html에 적용
two678 Mar 14, 2025
27fcacf
style: font-family 상속 구조 개선
two678 Mar 14, 2025
5ae67a7
fix: login.html, signup.html에 label 태그 추가하여 접근성 개선
two678 Mar 14, 2025
8a48ccc
fix: 비밀번호 보이기/숨기기 아이콘을 button 요소로 변경
two678 Mar 14, 2025
e0edb69
fix: signup.html에서 회원가입 링크를 로그인 링크로 변경
two678 Mar 14, 2025
c34cefe
fix: login.html, signup.html 에서 alt 태그 메시지 수정
two678 Mar 14, 2025
77617cd
style: index.html에서 Tablet, Mobile 사이즈에 맞게 로고와 로그인 버튼 여백 조정 (home.css)
two678 Mar 14, 2025
c9fadbe
style: 클래스 이름 하이픈 스타일로 변경 (line_break -> line-break 등)
two678 Mar 14, 2025
2780ba2
style: Tablet, Mobile 사이즈에서 메인 위쪽 페이지 글, 페이지 이동 태그,
two678 Mar 14, 2025
676d3ca
Table, Mobile 사이즈에서 아래쪽 이미지와 글 크기 조정
two678 Mar 14, 2025
81e7eda
style: Tablet, Mobile 사이즈에서 메인 컨테이너 안의 내용물(사진, 글) 사이즈 여백 조정
two678 Mar 14, 2025
d512865
feat: footer 영역 PC, Tablet, Mobile 사이즈에 맞게 레이아웃 및 스타일 조정
two678 Mar 17, 2025
3e1e609
feat: table사이즈, mobile 사이즈에서의 항상 화면 가운데에 내용이 있게
two678 Mar 17, 2025
faebdd0
feat: mobile 사이즈 내부 요소들의 너비 조정
two678 Mar 17, 2025
9c43698
feat: 랜딩페이지 메타태그 설정
two678 Mar 17, 2025
64b6958
Merge pull request #93 from two678/Basic-이지현-sprint3
GANGYIKIM Mar 19, 2025
ae18e4b
style: 로고 이미지 여백 수정
two678 Mar 22, 2025
08941ce
style: 불필요한 주석 제거
two678 Mar 22, 2025
0db0e78
fix: 화면 크기 375px 미만에서 PC 스타일이 적용되는 문제 수정
two678 Mar 22, 2025
6e4a0f0
refactor: 태그 선택자 대신 클래스 선택자로 변경
two678 Mar 22, 2025
b67a8d3
style: 불필요한 공백 제거
two678 Mar 22, 2025
fd53eba
feat: OG 및 Twitter 카드 메타태그 추가
two678 Mar 22, 2025
1ba70f4
fix: 화면 크기 375px 미만에서 PC 스타일이 적용되는 문제 수정 (home.css)
two678 Mar 22, 2025
7924034
fix: 로고 이미지 사이즈 조정
two678 Mar 22, 2025
3f85d37
refactor: CSS 색상 변수 이름 수정 추가 및 적용
two678 Mar 22, 2025
d174328
fix: body 태그 크기 조정하여 div.input-info 영역 문제 해결
two678 Mar 22, 2025
7982535
chore: 'pages' 폴더 생성 및 HTML 파일 이동
two678 Mar 22, 2025
5e11e3b
feat: 이메일 입력값 유효성 검사 및 스타일 적용
two678 Mar 22, 2025
87de18e
feat: 비밀번호 입력값 유효성 검사 및 스타일 적용
two678 Mar 22, 2025
fb035df
refactor: 입력 검증 로직 함수화로 중복 제거
two678 Mar 22, 2025
dae05fc
feat: 회원가입 페이지에 p 태그 추가
two678 Mar 22, 2025
447a93d
feat: 회원가입 페이지 입력 검증 기능 추가
two678 Mar 22, 2025
af71b4c
feat: 회원가입 확인 및 닉네임 입력 검증 기능 추가
two678 Mar 22, 2025
fd9ba81
feat: 로그인 & 회원가입 버튼이 모든 input들이 유효한 값을 입력해야
two678 Mar 22, 2025
bec57b6
feat: 비밀번호 보이기/숨기기 기능 추가 (로그인 페이지, 회원가입 페이지)
two678 Mar 22, 2025
05ba1a0
feat: 로그인시 items 페이지로 갈 때 items 페이지 인 것을 표시하기 위해 p태그 추가
two678 Mar 23, 2025
7a810f7
Merge branch 'React-이지현' of https://github.com/codeit-bootcamp-fronte…
two678 Apr 5, 2025
ac89b7c
chore: Vite 기반 React 프로젝트 초기 세팅 및 CRA 잔여 파일 및 구조 제거
two678 Apr 5, 2025
4e9f232
docs: README.md 및 마이그레이션 체크리스트 추가
two678 Apr 5, 2025
801e38e
docs: 마이그레이션 체크리스트 내용 업데이트
two678 Apr 5, 2025
b633b28
feat: 주요 페이지 컴포넌트 생성 및 라우터 설정
two678 Apr 5, 2025
11e67d4
docs: 마이그레이션 체크리스트 내용 업데이트
two678 Apr 5, 2025
81f0015
chore: assets 폴더에 이미지 및 정적 리소스 추가
two678 Apr 5, 2025
e3dcd1b
style: 전역 스타일 파일 추가 (global.css, reset.css, variable.css)
two678 Apr 5, 2025
dd39afa
feat: Homepage Header 컴포넌트 마이그레이션 - 바닐라에서 React로 변환, 반응형 로고 및 로그인 버튼 추가
two678 Apr 5, 2025
0b9875f
Feat(Home): Homepage를 Home 컴포넌트로 변경
two678 Apr 5, 2025
b176a1e
Refactor(entry): 앱 진입점 구조 개선을 위한 App 컴포넌트 도입
two678 Apr 8, 2025
9e0f0f0
Feat: HomeFooter 컴포넌트 마이그레이션 및 반응형 레이아웃 구현
two678 Apr 8, 2025
3b28c87
Feat: 홈 주요 섹션 컴포넌트 분리
two678 Apr 8, 2025
2cdae68
Feat: 홈 주요 섹션 UI 및 스타일 적용 및 폴더 구조 정리
two678 Apr 8, 2025
08f660a
Merge branch 'React-이지현' of https://github.com/codeit-bootcamp-fronte…
two678 Apr 11, 2025
ea17e88
Merge branch 'React-이지현-sprint5' of https://github.com/two678/15-Spri…
two678 Apr 11, 2025
c71ddaa
Refactor: SCSS 변수 적용 및 스타일 구조 개선
two678 Apr 11, 2025
39f0d27
Docs: 완료된 체크리스트 항목 업데이트
two678 Apr 13, 2025
958c0bd
Docs: README.md 업데이트
two678 Apr 13, 2025
492fb08
Refactor: 로그인/회원가입 페이지 마이그레이션 진행 중
two678 Apr 13, 2025
dfe5d46
Refactor: 전체적인 폴더 구조 변경 및 파일 이동
two678 May 7, 2025
fea55bf
♻️ Refactor: Home 페이지 로고 반응형 수정
two678 May 8, 2025
fbb2162
✨ Feat: 로고 사이즈 기능 추가 및 props 변경
two678 May 8, 2025
2f1c680
💄 Style: 로그인 페이지 리액트로 마이그레이션 및 이모션 적용
two678 May 8, 2025
3d0176a
♻️ Refactor: 비밀번호 페이지 마이그레이션 및 이모션 적용
two678 May 8, 2025
a66e67e
✨ Feat: 검증 로직 분리
two678 May 8, 2025
b14a3aa
✨ Feat: 베스트 상품 구현
two678 May 9, 2025
4c7fbc1
✨ Feat: 전체상품 그리드 구현
two678 May 9, 2025
b3345ce
✨ Feat: 전체 상품 컴포넌트 구현 완료
two678 May 9, 2025
343f553
✨ Feat: 페이지 네이션 구현
two678 May 9, 2025
ceeac1e
✨ Feat: 페이지네이션 항상 5개씩 보이게 설정
two678 May 9, 2025
a0ef9de
✨ Feat: 페이지네이션 props 수정
two678 May 9, 2025
4af7a85
📝 Dos: README.md 와 CHECKLIST.md 업데이트
two678 May 9, 2025
0c00b11
💄 Feat: 홈 페이지 섹션 스타일을 이모션으로 마이그레이션 및 불필요한 SCSS 파일 삭제
two678 May 9, 2025
e026a41
💄 Styles: 홈페이지 헤더 스타일 이모션으로 변경
two678 May 9, 2025
91684f3
💄 Style: 홈페이지 푸터 이모션 적용
two678 May 9, 2025
206bdcb
✨ Feat: public 폴더 생성 및 이미지 파일들 이동 (경로 수정)
two678 May 9, 2025
d76f758
💄 Style: 홈페이지 안에 내용 이모션 적용
two678 May 9, 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
41 changes: 21 additions & 20 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
83 changes: 83 additions & 0 deletions CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# ✅ Vanilla JS → React 마이그레이션 체크리스트

React로 마이그레이션하는 전 과정을 단계별로 정리한 체크리스트입니다.
진행하면서 항목을 하나씩 체크해보세요!

---

## 1️⃣ 기본 환경 설정

- [x] 기존 프로젝트 백업
- [x] Vite 기반 React 프로젝트 생성
- [x] `CHECKLIST.md`, `README.md`, 등 설정

---

## 2️⃣ 폴더 구조 구성

- [x] `components/` 폴더 생성
- [x] `pages/` 폴더 생성
- [x] `styles/` 폴더 생성
- [x] `utils/`, `constants/` 폴더 생성 (필요 시)
- [x] `App.jsx` 생성 및 루트에서 관리
- [x] `main.jsx`에서 `App.jsx` 렌더링 설정

---

## 3️⃣ 라우팅 설정

- [x] `react-router-dom` 설치
- [x] `BrowserRouter`로 라우팅 구성
- [x] `Routes` 및 `Route` 정의
- [x] 각 페이지를 JSX 컴포넌트로 생성 (Home, Login 등)

---

## 4️⃣ 공통 레이아웃 구성

- [x] `Header`, `Footer`, `Navigation` 컴포넌트 생성
- [x] 레이아웃 컴포넌트에서 `<Outlet />` 사용
- [ ] 공통 레이아웃으로 전체 구성 확인

---

## 5️⃣ 페이지 마이그레이션

- [x] `index.html` → `Home.jsx`
- [x] `login.html` → `Login.jsx`
- [x] `signup.html` → `Signup.jsx`
- [x] 기타 페이지들도 마이그레이션

---

## 6️⃣ 스타일 적용

- [x] 기존 CSS → `styles/` 폴더에 정리
- [x] 각 컴포넌트에서 필요한 CSS import
- [x] CSS 파일 구조 및 분리 전략 결정

---

## 7️⃣ 기능 로직 이전

- [x] 로그인 / 회원가입 로직 마이그레이션
- [x] API 호출 관련 코드 React에 맞게 리팩토링
- [x] 공통 함수는 `utils/`로 이동

---

## 8️⃣ 상태 관리

- [x] `useState`, `useEffect` 등 훅 사용
- [ ] 필요 시 Context API 또는 외부 상태 관리 도입 검토

---

## 9️⃣ 마무리 정리

- [x] 전체 기능 테스트 완료
- [ ] 불필요한 파일/코드 정리
- [x] README 작성 및 업데이트
- [x] 커밋 정리 및 PR 제출

---
101 changes: 49 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,67 @@
# Getting Started with Create React App
# 🛠️ Vanilla JS → React 마이그레이션 프로젝트 (판다마켓)

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
이 프로젝트는 기존에 Vanilla JavaScript로 작성된 웹 애플리케이션을 **React** 기반으로 리팩토링하는 마이그레이션 작업입니다.
유지보수성과 확장성을 높이기 위해 Vite, React, React Router 등을 도입했습니다.

## Available Scripts
---

In the project directory, you can run:
## 📦 기술 스택

### `npm start`
- React (with Vite)
- React Router DOM
- JavaScript (ES6+)
- CSS (컴포넌트별 분리)
- Git & GitHub

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
---

The page will reload when you make changes.\
You may also see any lint errors in the console.
## 📁 폴더 구조 (초기 구성)

### `npm test`
```
public/
├──icons/ # 아이콘 파일
├──images/ # 이미지 파일
└──logo/ # 로고 파일
src/
├── api/ # api 파일
├── assets/ # 이미지, 로고, 아이콘 등
├── components/ # 공통 UI 컴포넌트
├── pages/ # 라우팅 기반 페이지 컴포넌트
├── styles/ # CSS 스타일 파일 모음
├── utils/ # 유틸 함수 (API, 공통 로직 등)
├── App.jsx # 루트 컴포넌트
└── main.jsx # 진입점
```

Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
---

### `npm run build`
## 🚀 실행 방법

Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
```bash
npm install
npm run dev
```

The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
---

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
## ✅ 현재 진행 상황

### `npm run eject`
- [x] Vite 기반 프로젝트 초기 세팅
- [x] 폴더 구조 정리 및 기본 구성
- [x] 페이지별 JSX 마이그레이션 작업 중
- [x] 공통 컴포넌트 (Header, Footer) 구성 예정
- [x] 기능 로직 이전 (API 호출, localStorage 등)
- [x] 스타일 분리 및 리팩토링

**Note: this is a one-way operation. Once you `eject`, you can't go back!**
👉 자세한 진행 내용은 [`CHECKLIST.md`](./CHECKLIST.md)를 참고해주세요.

If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
---

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
## ✨ 마이그레이션 목적

You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
- 유지보수 가능한 구조로 변경
- React의 컴포넌트 기반 UI 설계 적용
- 페이지 라우팅 및 상태 관리를 보다 효율적으로 구성
- CSS 파일 구조를 개선하고 재사용성 확보

## Learn More

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).

To learn React, check out the [React documentation](https://reactjs.org/).

### Code Splitting

This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)

### Analyzing the Bundle Size

This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)

### Making a Progressive Web App

This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)

### Advanced Configuration

This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)

### Deployment

This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)

### `npm run build` fails to minify

This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
---
12 changes: 12 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export default {
presets: [
[
"@babel/preset-react",
{
runtime: "automatic",
importSource: "@emotion/react",
},
],
],
plugins: ["@emotion/babel-plugin"],
};
33 changes: 33 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'

export default [
{ ignores: ['dist'] },
{
files: ['**/*.{js,jsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...js.configs.recommended.rules,
...reactHooks.configs.recommended.rules,
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
},
]
19 changes: 19 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<title>판다마켓</title>
<meta name="description" content="일상의 모든 물건을 거래해보세요" />
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="stylesheet"
as="style"
crossorigin
href="https://cdn.jsdelivr.net/gh/orioncactus/[email protected]/dist/web/static/pretendard.min.css"
/>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
9 changes: 9 additions & 0 deletions jsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"compilerOptions": {
"jsxImportSource": "@emotion/react",
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
}
}
Loading
Loading