Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
6c376de
init: 프로젝트 생성
soyyyyy May 7, 2026
2ab35fb
init: gitignore 설정
soyyyyy May 7, 2026
1731ffb
feat: path alias 설정
soyyyyy May 7, 2026
89f3896
init: 스타일 세팅
soyyyyy May 7, 2026
d081750
remove: asset 삭제
soyyyyy May 7, 2026
36c0e52
setting: react-router-dom 설치
soyyyyy May 7, 2026
abeb869
fix: env 파일 캐시 삭제
soyyyyy May 7, 2026
4864749
setting: index.html 기본 수정
soyyyyy May 7, 2026
0b880d9
setting: pnpm 재설치
soyyyyy May 7, 2026
e984d2c
fix: path alias 설정 오류 해결
soyyyyy May 7, 2026
2e20dc5
feat: 라우터 설정
soyyyyy May 7, 2026
2b69590
style: 전역 스타일 적용
soyyyyy May 7, 2026
f94f5b4
chore: 라우터 url 변경
soyyyyy May 7, 2026
b3f755c
feat: outlet 활용 + 헤더 컴포넌트 구현
soyyyyy May 7, 2026
d41d7b7
feat: 기본 페이지 생성
soyyyyy May 7, 2026
8d7bb6c
chore: react icon 설치
soyyyyy May 7, 2026
cce8e94
feat: 버튼 컴포넌트 구현
soyyyyy May 7, 2026
47e509e
feat: textField 컴포너트 구현
soyyyyy May 7, 2026
a9979c6
chore: createGlobalTheme로 변경
soyyyyy May 7, 2026
46bf1c5
style: button, textField 스타일 수정
soyyyyy May 7, 2026
8543ad7
feat: 로그인 페이지 UI 구현
soyyyyy May 7, 2026
2ed01d4
style: 버튼에 transition 적용
soyyyyy May 7, 2026
cc4169f
feat: 형식 검사 구현 (에러메시지, 형식 조건 상수화)
soyyyyy May 7, 2026
faa0784
chore: 로그인 필드에 placeholder추가
soyyyyy May 7, 2026
9b2ebb4
feat: 회원가입 step별 field 에러 검사 훅
soyyyyy May 7, 2026
88b7758
feat: 회원가입 단계별 UI 구현 (파트 드롭다운으로 변경)
soyyyyy May 7, 2026
a9b0964
chore: 기본 라우팅을 로그인으로 변경
soyyyyy May 7, 2026
fda9010
feat: api base response 타입 선언
soyyyyy May 7, 2026
a7ad86a
fix: import 파일 대소문자
soyyyyy May 7, 2026
afe54bc
feat: 회원가입 type 선언 및 api 연동
soyyyyy May 7, 2026
6a751af
feat: axiosInstance 재생성
soyyyyy May 7, 2026
f8fd5cc
refactor: 인터셉터 활용해 토큰 불러오기
soyyyyy May 7, 2026
6c8fa40
feat: 로그인 api 연동
soyyyyy May 7, 2026
f8b91cb
remove: 토큰 미사용으로 인터셉터 제거
soyyyyy May 7, 2026
19505ad
feat: userId 로컬스토리지에 저장
soyyyyy May 7, 2026
cd6f372
feat: 마이페이지 정보 조회 api연동 및 헤더에 출력
soyyyyy May 7, 2026
bdfcb02
feat: 유저 정보 조회 타입 선언
soyyyyy May 7, 2026
72c1f66
refactor: title 컴포넌트로 분리
soyyyyy May 7, 2026
2b59cc0
fix: userId number로 수정
soyyyyy May 7, 2026
7943f12
feat: 마이페이지 api 스펙 작성
soyyyyy May 7, 2026
05a44e0
fix: login 응답 타입 수정
soyyyyy May 7, 2026
a858cc9
chore: 로컬스토리지 set 타이밍 수정
soyyyyy May 7, 2026
908aa31
feat: 내정보 카드 컴포넌트 구현
soyyyyy May 7, 2026
92d5c7e
fix: baseResponse 타입 수정 및 로그인 성공시에만 로컬스토리지 저장
soyyyyy May 7, 2026
15c3d68
remove: test console 제거
soyyyyy May 7, 2026
5a0d85e
chore: main영역 최소 높이 설정
soyyyyy May 7, 2026
72ab913
feat: 마이페이지 UI 구현 및 아이디, 파트 불러오기
soyyyyy May 7, 2026
389ceea
feat: 유저 정보 textField에 미리 채워두기
soyyyyy May 7, 2026
67e5218
feat: 정보 수정 api 연동
soyyyyy May 7, 2026
d8ef20d
feat: 회원가입 훅에 initialstep 인자로 전달해서 이메일 형식 에러 메시지 출력
soyyyyy May 7, 2026
2d08b83
chore: searchpage 폴더 이동
soyyyyy May 7, 2026
25eea10
chore: myCard 컴포넌트에 전체 정보 보여주는 props추가
soyyyyy May 7, 2026
0637fd6
feat: 검색 페이지 UI 및 검색 api 연동
soyyyyy May 7, 2026
a43db5f
chore: 검색 아이디 비어있으면 버튼 비활성화
soyyyyy May 7, 2026
f1aecea
feat: 회원 검색 구현
soyyyyy May 8, 2026
7c546e3
feat: 전체 멤버 조회 구현
soyyyyy May 8, 2026
9467a88
fix: 레이아웃 문제 해결
soyyyyy May 8, 2026
044fc74
style: 마이페이지 레이아웃 조정
soyyyyy May 8, 2026
0dff125
feat: 멤버 상세 페이지 이동
soyyyyy May 8, 2026
323e565
remove: 불필요 import 제거
soyyyyy May 8, 2026
e220bd4
feat: 로그아웃
soyyyyy May 8, 2026
a3a5e66
fix: 카드 렌더링 조건 수정
soyyyyy May 8, 2026
da41719
style: button, card hover 효과 추가
soyyyyy May 8, 2026
d9dabf0
style: height 속성 제거
soyyyyy May 8, 2026
2543052
style: minHeight추가
soyyyyy May 8, 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
Binary file modified .DS_Store
Binary file not shown.
Binary file added week4/.DS_Store
Binary file not shown.
Empty file removed week4/homework/.gitkeep
Empty file.
26 changes: 26 additions & 0 deletions week4/homework/member/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# 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?

.env
73 changes: 73 additions & 0 deletions week4/homework/member/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 week4/homework/member/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 week4/homework/member/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>SOPT 회원 조회</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
36 changes: 36 additions & 0 deletions week4/homework/member/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"name": "member",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"lint": "eslint .",
"preview": "vite preview"
},
"dependencies": {
"@vanilla-extract/css": "^1.20.1",
"@vanilla-extract/recipes": "^0.5.7",
"@vanilla-extract/vite-plugin": "^5.2.2",
"axios": "^1.16.0",
"react": "^19.2.5",
"react-dom": "^19.2.5",
"react-icons": "^5.6.0",
"react-router-dom": "^7.15.0"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@types/node": "^24.12.2",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"eslint": "^10.2.1",
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-react-refresh": "^0.5.2",
"globals": "^17.5.0",
"typescript": "~6.0.2",
"typescript-eslint": "^8.58.2",
"vite": "^8.0.10"
}
}
Loading