Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
6f6a74e
chore: 전역 ignore에 env 추가
soyyyyy Jun 1, 2026
63f350a
init: 프로젝트 세팅
soyyyyy Jun 1, 2026
cbb867f
chore: 절대 경로 설정
soyyyyy Jun 1, 2026
f8bc4f9
chore: 라우터 설정
soyyyyy Jun 1, 2026
fbef0eb
style: 전역 스타일 설정
soyyyyy Jun 1, 2026
cdb5a21
chore: app에 라우터 설정 추가
soyyyyy Jun 1, 2026
f1d954e
chore: index.html 수정
soyyyyy Jun 1, 2026
ce4a349
style: 컬러 토큰 수정
soyyyyy Jun 1, 2026
b2b3941
feat: 영화 목록 카드 컴포넌트 구현
soyyyyy Jun 1, 2026
cf46317
chore: tanstack query 설정
soyyyyy Jun 1, 2026
e155708
chore: axios Instance 설정 및 엔드포인트 상수화
soyyyyy Jun 1, 2026
ee4dc6e
style: 기본 스타일 제거
soyyyyy Jun 1, 2026
b478bd4
style: grid 스타일 수정
soyyyyy Jun 1, 2026
92a39fa
chore: 공통 에러 처리 추가
soyyyyy Jun 1, 2026
bb3bb70
chore: http 메서드 추상화
soyyyyy Jun 1, 2026
9010d8b
fix: 이미지 없을 때 처리
soyyyyy Jun 1, 2026
14d3efb
fix: cors 에러
soyyyyy Jun 1, 2026
7cbd0d6
feat: tmdb 이미지 url 변경 유틸 함수
soyyyyy Jun 1, 2026
7c56cd0
chore: 쿼리키 상수화
soyyyyy Jun 1, 2026
59ce5b9
feat: 영화 목록 api 연결
soyyyyy Jun 1, 2026
84efa19
feat: 상세페이지 이동 추가
soyyyyy Jun 1, 2026
e20d4f8
style: 배경색 변경
soyyyyy Jun 1, 2026
8f4293f
chore: react icon 설치
soyyyyy Jun 1, 2026
38ea2da
chore: 상세페이지 목데이터
soyyyyy Jun 1, 2026
45a2ae1
feat: 버튼 컴포넌트 구현
soyyyyy Jun 1, 2026
da977d2
feat: 통계 카드 컴포넌트 구현
soyyyyy Jun 1, 2026
a6b0cd5
style: 헤더 공통 스타일 분리
soyyyyy Jun 1, 2026
0d48747
feat: 별점 남기기 섹션 컴포넌트 구현
soyyyyy Jun 1, 2026
78f85f9
feat: 기본정보 섹션 컴포넌트 구현
soyyyyy Jun 1, 2026
2751711
style: 중복 스타일 제거
soyyyyy Jun 1, 2026
afc7fee
feat: 상세페이지 UI 구현
soyyyyy Jun 1, 2026
135782a
chore: input 타입 number로 수정
soyyyyy Jun 1, 2026
fba981f
feat: 상세페이지 api 연동
soyyyyy Jun 1, 2026
ca51013
feat: 드롭다운 컴포넌트
soyyyyy Jun 2, 2026
2538649
feat: 필터링 구현
soyyyyy Jun 2, 2026
ed78886
feat: session id 발급 및 저장
soyyyyy Jun 2, 2026
fee051b
chore: instance에서 id 가져오는 함수 이름 변경
soyyyyy Jun 2, 2026
2dbf7c7
fix: instance에서 params에 아이디 붙이지 않도록
soyyyyy Jun 2, 2026
0b267e8
feat: 영화 상세 정보 및 별점 가져오기 api
soyyyyy Jun 2, 2026
7ff3310
feat: 별점 저장 api
soyyyyy Jun 2, 2026
3d51a7a
feat: 평점 가져오기 api
soyyyyy Jun 2, 2026
8c5adfa
refactor: errormessage 상수화
soyyyyy Jun 2, 2026
08488c8
feat: 별점 삭제 api 연동
soyyyyy Jun 2, 2026
b9b60f8
fix: 삭제 api 에러 해결
soyyyyy Jun 2, 2026
ede9c69
remove: 불필요 파일 제거
soyyyyy Jun 2, 2026
aa07558
refactor: 언어 공통으로 처리
soyyyyy Jun 2, 2026
ec6b03d
feat: 무한 스크롤 구현
soyyyyy Jun 2, 2026
be56b16
chore: styles 폴더 shared 안으로 이동
soyyyyy Jun 2, 2026
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
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
**/images/
**/images/
.env
24 changes: 24 additions & 0 deletions week6/homework/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 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?
73 changes: 73 additions & 0 deletions week6/homework/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)

## React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

```js
export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
// Other configs...

// Remove tseslint.configs.recommended and replace with this
tseslint.configs.recommendedTypeChecked,
// Alternatively, use this for stricter rules
tseslint.configs.strictTypeChecked,
// Optionally, add this for stylistic rules
tseslint.configs.stylisticTypeChecked,

// Other configs...
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
])
```

You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:

```js
// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
// Other configs...
// Enable lint rules for React
reactX.configs['recommended-typescript'],
// Enable lint rules for React DOM
reactDom.configs.recommended,
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
])
```
22 changes: 22 additions & 0 deletions week6/homework/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'

export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
js.configs.recommended,
tseslint.configs.recommended,
reactHooks.configs.flat.recommended,
reactRefresh.configs.vite,
],
languageOptions: {
globals: globals.browser,
},
},
])
13 changes: 13 additions & 0 deletions week6/homework/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>6주차 과제</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
38 changes: 38 additions & 0 deletions week6/homework/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"name": "homework",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"lint": "eslint .",
"preview": "vite preview"
},
"dependencies": {
"@tailwindcss/vite": "^4.3.0",
"@tanstack/react-query": "^5.100.14",
"axios": "^1.16.1",
"react": "^19.2.6",
"react-dom": "^19.2.6",
"react-icons": "^5.6.0",
"react-router": "^7.16.0",
"react-router-dom": "^7.16.0"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@tanstack/react-query-devtools": "^5.100.14",
"@types/node": "^24.12.3",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"eslint": "^10.3.0",
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-react-refresh": "^0.5.2",
"globals": "^17.6.0",
"tailwindcss": "^4.3.0",
"typescript": "~6.0.2",
"typescript-eslint": "^8.59.2",
"vite": "^8.0.12"
}
}
Loading