Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[페이먼츠 미션 Step 2] 가브리엘(윤주현) 미션 제출합니다. #254

Merged
merged 185 commits into from
May 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
185 commits
Select commit Hold shift + click to select a range
9f99ee3
chore: CRA typescript 설치
gabrielyoon7 Apr 18, 2023
a4d1321
chore: 불필요한 파일 제거
gabrielyoon7 Apr 18, 2023
e89a926
chore: eslint & prettier 설치
gabrielyoon7 Apr 18, 2023
9e6732c
chore: storybook 설정
gabrielyoon7 Apr 18, 2023
ecfc679
docs: 요구사항 작성
gabrielyoon7 Apr 18, 2023
c670612
chore: 폴더 구조 구축
gabrielyoon7 Apr 18, 2023
ddac76c
chore: eslint-typescript 추가 및 설정 수정
gabrielyoon7 Apr 18, 2023
db877ff
fix: prop-types dependencies 위치 수정
gabrielyoon7 Apr 19, 2023
5e4fcc5
chore: ruies 수정
gabrielyoon7 Apr 19, 2023
b1c1737
chore: 불필요한 파일 제거
gabrielyoon7 Apr 19, 2023
7d04d05
chore: react-docgen-typescript-plugin 설치
gabrielyoon7 Apr 19, 2023
6376747
chore: styled-component 설치
gabrielyoon7 Apr 19, 2023
cd1685e
chore: eslint 룰 추가
gabrielyoon7 Apr 19, 2023
538b93b
docs: 참고 컨벤션 추가
gabrielyoon7 Apr 19, 2023
7be3e34
feat: 카드 컴포넌트 스타일 적용
gabrielyoon7 Apr 19, 2023
dfcb942
feat: 카드번호 가리는 기능 구현
gabrielyoon7 Apr 19, 2023
bf36cf1
feat: 신용 카드 완성
gabrielyoon7 Apr 19, 2023
d891968
feat: 인풋 컴포넌트 구현 FullWidthInput 생성
gabrielyoon7 Apr 19, 2023
306609f
test: 인풋 테스트 구현
gabrielyoon7 Apr 19, 2023
49a0dea
chore: react-router-dom 설치
gabrielyoon7 Apr 19, 2023
735b909
feat: page 뼈대 작성
gabrielyoon7 Apr 19, 2023
af6f162
feat: 전역 스타일 시트 적용
gabrielyoon7 Apr 19, 2023
aae43b4
feat: 전역 스타일 추가
gabrielyoon7 Apr 19, 2023
5872530
feat: 홈 스타일 적용
gabrielyoon7 Apr 19, 2023
899d6b6
feat: 카드 등록 페이지 스타일 적용
gabrielyoon7 Apr 19, 2023
ecbec3d
feat: 폼 데이터 입력을 상태로 관리하는 기능 추가
gabrielyoon7 Apr 19, 2023
4759f5a
feat: 폼을 입력하기 전에 버튼 비활성화 기능 구현
gabrielyoon7 Apr 19, 2023
1e24cae
fix: 카드 컴포넌트의 간격 오류 수정
gabrielyoon7 Apr 19, 2023
fd315c6
chore: eslint 룰 추가
gabrielyoon7 Apr 19, 2023
1170b91
feat: placeholder 구현
gabrielyoon7 Apr 19, 2023
d4a41a4
feat: 카드번호 input 창 보안 처리(숨기기) 구현
gabrielyoon7 Apr 20, 2023
013e0a7
chore: gh-pages 설치 및 설정
gabrielyoon7 Apr 20, 2023
ad99e45
fix: 입력창 투명도 수정
gabrielyoon7 Apr 20, 2023
9160a00
feat: 카드 만료일이 4자리를 초과하지 못하는 기능 구현
gabrielyoon7 Apr 20, 2023
79b26a6
feat: 카드 소유자 이름을 30자 이상 입력하지 못하도록 구현
gabrielyoon7 Apr 20, 2023
d4ebfec
feat: 입력 폼 디자인 및 검사 개선
gabrielyoon7 Apr 20, 2023
981a756
feat: CSS 개선 (커서 추가 등)
gabrielyoon7 Apr 20, 2023
9211a16
feat: 등록버튼을 누르는 경우 신용카드 객체 생성 후, 홈으로 이동하는 기능 구현
gabrielyoon7 Apr 20, 2023
e6170b5
feat: 로컬 스토리지 저장 및 추가된 카드 목록 그리기 구현
gabrielyoon7 Apr 20, 2023
31bcb04
chore: gh-pages 배포 시 접근 오류 수정
gabrielyoon7 Apr 20, 2023
d417697
fix: 배포 시 발생하는 버그 수정
gabrielyoon7 Apr 20, 2023
9d98df5
fix: 배포 시 발생하는 버그 수정
gabrielyoon7 Apr 20, 2023
2a147f0
docs: 요구사항 문서 최신화
gabrielyoon7 Apr 20, 2023
365d38a
chore: 불필요한 파일 제거
gabrielyoon7 Apr 20, 2023
5db65a0
fix: hidden input 디자인 버그 수정
gabrielyoon7 Apr 20, 2023
ca9b6d1
refactor: 도메인 함수 분리
gabrielyoon7 Apr 20, 2023
b3185d4
refactor: 도메인 함수 분리
gabrielyoon7 Apr 20, 2023
765ccfe
refactor: 카드 등록 페이지 컴포넌트 분리
gabrielyoon7 Apr 20, 2023
d17a47d
refactor: 카드 등록 페이지 컴포넌트 분리
gabrielyoon7 Apr 20, 2023
5e0e77a
refactor: 카드 등록 페이지 컴포넌트 분리
gabrielyoon7 Apr 20, 2023
ba77103
refactor: 카드 등록 페이지 컴포넌트 분리
gabrielyoon7 Apr 20, 2023
512889b
style: 컴포넌트 속성 정리
gabrielyoon7 Apr 20, 2023
deddffc
refactor: 카드 등록 페이지 컴포넌트 분리
gabrielyoon7 Apr 20, 2023
b5d2639
refactor: 카드 등록 페이지 컴포넌트 분리
gabrielyoon7 Apr 20, 2023
84d8418
fix: 스토리북 경로 버그 수정
gabrielyoon7 Apr 20, 2023
9b9d45f
docs: 리드미 수정
gabrielyoon7 Apr 20, 2023
dd98725
Update README.md
gabrielyoon7 Apr 20, 2023
05c5ca5
feat: CVC 안내 문구 추가
gabrielyoon7 Apr 20, 2023
56221f6
feat: 유효성 검사 구현
gabrielyoon7 Apr 20, 2023
63b075a
feat: 카드번호 유효선 검사 기능 구현
gabrielyoon7 Apr 20, 2023
ea81e55
feat: 카드 번호 에러 표시
gabrielyoon7 Apr 20, 2023
5546929
feat: 만료일 유효성 검사 구현
gabrielyoon7 Apr 20, 2023
b9f8f79
feat: 만료일 유효성 검사 구현
gabrielyoon7 Apr 20, 2023
f355a9b
feat: CVC/CVV 유효성 검사 구현
gabrielyoon7 Apr 20, 2023
3e1c588
feat: 비밀번호 유효성 검사 구현
gabrielyoon7 Apr 20, 2023
4b376dc
refactor: 불필요한 코드 제거
gabrielyoon7 Apr 20, 2023
72dfe8d
refactor: 파일 구조 개선
gabrielyoon7 Apr 23, 2023
4bb6e71
refactor: 파일 구조 개선
gabrielyoon7 Apr 23, 2023
ae09100
chore: github page 자동 배포 설정 추가
gabrielyoon7 Apr 23, 2023
1d68f10
fix: github page 자동 배포 설정 수정
gabrielyoon7 Apr 23, 2023
f11ad24
fix: github page 자동 배포 설정 수정
gabrielyoon7 Apr 23, 2023
cdaf1b9
fix: github page 자동 배포 설정 수정
gabrielyoon7 Apr 23, 2023
8bbe2b0
fix: github page 자동 배포 설정 수정
gabrielyoon7 Apr 23, 2023
e7dd962
fix: 오탈자 수정
gabrielyoon7 Apr 23, 2023
2e3934c
fix: 오탈자 수정
gabrielyoon7 Apr 23, 2023
aefa603
refactor: 혼동을 주는 네이밍 개선
gabrielyoon7 Apr 23, 2023
5696b53
refactor: 삼항연산자에 따른 css 속성 결정 개선
gabrielyoon7 Apr 23, 2023
dff32dd
fix: 오탈자 수정
gabrielyoon7 Apr 23, 2023
de80d7f
refactor: InputProps 개선
gabrielyoon7 Apr 23, 2023
200f003
refactor: 카드 번호 암호화 로직 개선
gabrielyoon7 Apr 23, 2023
c74fece
refactor: 입력 에러 검사 로직 개선
gabrielyoon7 Apr 23, 2023
fbd185c
refactor: 입력 에러 검사 로직 개선
gabrielyoon7 Apr 23, 2023
c4d5148
fix: 오탈자 수정
gabrielyoon7 Apr 23, 2023
d917df4
refactor: 입력 에러 검사 로직 개선
gabrielyoon7 Apr 23, 2023
eaa35ed
refactor: name 속성을 이용한 input 컴포넌트 구분
gabrielyoon7 Apr 23, 2023
baf39e3
refactor: 검사 로직을 함수화
gabrielyoon7 Apr 23, 2023
cf9fc77
refactor: 잘못된 컴포넌트 명 개선
gabrielyoon7 Apr 24, 2023
d1b1439
refactor: 카드 등록 에러 검사 로직 개선
gabrielyoon7 Apr 24, 2023
09b0b17
chore: devDependencies 이전
gabrielyoon7 Apr 24, 2023
c4e8892
refactor: input을 관리하는 상태 통합
gabrielyoon7 Apr 24, 2023
7bf2887
refactor: 카드 만료일 표시/저장 로직 개선
gabrielyoon7 Apr 24, 2023
9019c78
fix: 만료일 유효성 검사 복구
gabrielyoon7 Apr 24, 2023
f7c7608
refactor: 검증 로직 모듈화
gabrielyoon7 Apr 24, 2023
b4e4d81
fix: 비밀번호에 문자가 들어가던 현상 수정
gabrielyoon7 Apr 24, 2023
84a68ab
refactor: 카드리스트 관리용 커스텀 훅 도입
gabrielyoon7 Apr 24, 2023
ad8a69f
refactor: 좀 더 안전한 name 타입으로 개선
gabrielyoon7 Apr 24, 2023
4dc354a
refactor: 불필요한 주석 제거 등
gabrielyoon7 Apr 24, 2023
b03b310
refactor: 표시용 input 태그를 p 태그로 변경
gabrielyoon7 Apr 24, 2023
e9e65be
style: 코드 스타일 개선
gabrielyoon7 Apr 24, 2023
98c5627
feat: input에 포커스될 때 테두리 색이 변하는 기능 구현
gabrielyoon7 Apr 24, 2023
cb4f487
fix: form에 맞는 버튼 속성으로 변경
gabrielyoon7 Apr 24, 2023
1a5fe3d
fix: 카드 입력 시 불필요한 드래그 및 중간 수정이 가능하던 문제를 수정
gabrielyoon7 Apr 24, 2023
50949ca
chore: git page 자동 배포 설정 수정
gabrielyoon7 Apr 25, 2023
422ffeb
feat: 카드 등록 페이지 진입 시 카드사 선택 모달이 자동으로 뜨도록 구현
gabrielyoon7 Apr 25, 2023
d95ad17
chore: 카드 이미지 추가
gabrielyoon7 Apr 25, 2023
d53a34d
feat: 카드 등록창 진입 시 모달이 뜨는 기능 구현
gabrielyoon7 Apr 25, 2023
4c2f035
feat: 원하는 컨텐츠를 모달에 넣는 기능 구현
gabrielyoon7 Apr 26, 2023
1f3d0a0
refactor: 모달을 컨텍스트가 아닌 상태가 관리하도록 기능 변경
gabrielyoon7 Apr 26, 2023
e653a9b
refactor: 불필요한 코드 제거
gabrielyoon7 Apr 26, 2023
fb98935
feat: 카드 선택창 추가
gabrielyoon7 Apr 26, 2023
69e997e
feat: 신용카드의 모형에 카드사가 표시되는 기능 구현
gabrielyoon7 Apr 26, 2023
f540744
feat: 카드사 선택하는 기능 구현
gabrielyoon7 Apr 26, 2023
f2c52e2
feat: 카드 사에 따라 카드 테마를 적용하는 기능 구현
gabrielyoon7 Apr 27, 2023
3d7192b
refactor: 신규 카드 객체를 컨텍스트로 관리 하도록 개선
gabrielyoon7 Apr 27, 2023
a3837ef
refactor: 유효성 검증 파일 이동
gabrielyoon7 Apr 27, 2023
6ee5440
refactor: 모달 스타일 코드 위치 변경
gabrielyoon7 Apr 27, 2023
1c1db11
refactor: 타입 개선
gabrielyoon7 Apr 27, 2023
5d3194e
refactor: 타입 개선
gabrielyoon7 Apr 27, 2023
3447d5a
refactor: 파일명 개선
gabrielyoon7 Apr 27, 2023
fd2f768
refactor: useCreditCard 구현
gabrielyoon7 Apr 27, 2023
eb9cf9d
refactor: useCreditCard -> useCreditCardForm으로 파일명 변경
gabrielyoon7 Apr 27, 2023
5deb1ac
refactor: useCreditCardForm의 상태명 변경
gabrielyoon7 Apr 27, 2023
c893699
fix: 신용카드 미리보기의 유효기간에서 /가 빠지는 문제 해결
gabrielyoon7 Apr 27, 2023
31ac881
fix: 카드 등록 후, 다시 페이지에 진입하면 기존 값이 남아있는 문제 해결
gabrielyoon7 Apr 27, 2023
012245d
refactor: 다음/완료 버튼 컴포넌트화
gabrielyoon7 Apr 27, 2023
320f57d
feat: 카드 등록 완료 페이지 추가
gabrielyoon7 Apr 27, 2023
5449ed3
feat: 카드 등록 이후, 빈 카드 컴포넌트가 출력되는 기능 구현
gabrielyoon7 Apr 27, 2023
04a67d0
feat: 카드 번호를 사용하여 별칭 수정 칸에 어떤 카드를 입력할지 불러오는 기능 구현
gabrielyoon7 Apr 27, 2023
8bdee3e
chore: hook testing library 설치
gabrielyoon7 Apr 28, 2023
e8a59f9
fix: 잘못된 파일 이름 수정
gabrielyoon7 Apr 28, 2023
62279ea
fix: 잘못된 파일 이름 수정
gabrielyoon7 Apr 28, 2023
6554b47
test: 커스텀 훅 테스트 코드 추가
gabrielyoon7 Apr 28, 2023
1b1e70e
feat: 마지막 등록 카드가 새 페이지에 연동이 되지 않는 문제 수정
gabrielyoon7 Apr 28, 2023
2599008
refactor: 공통 레이아웃 컴포넌트화
gabrielyoon7 Apr 28, 2023
d2ad049
feat: FlexBox를 활용한 컴포넌트 정렬 기능 구현
gabrielyoon7 Apr 28, 2023
e52425e
refactor: Box 컴포넌트 분리
gabrielyoon7 Apr 28, 2023
3673af0
refactor: Box 컴포넌트가 간격 조절을 할 수 있는 기능 구현
gabrielyoon7 Apr 28, 2023
f5a1d67
feat: FlexBox 방향 추가 및 불필요한 컴포넌트 제거
gabrielyoon7 Apr 28, 2023
b685870
feat: 별명 입력 값을 상태로 관리하는 기능 구현
gabrielyoon7 Apr 28, 2023
dbb3fa1
feat: 닉네임 인풋 창 디자인 개선
gabrielyoon7 Apr 28, 2023
7bbccf1
feat: 닉네임을 저장하는 기능 구현
gabrielyoon7 Apr 28, 2023
5d57658
feat: 카드 별명 출력하는 기능 구현
gabrielyoon7 Apr 28, 2023
ce51fbf
refactor: useSyncExternalStore를 활용한 신용카드 목록 전역 상태 관리 구현
gabrielyoon7 Apr 28, 2023
ad55356
feat: useSyncExternalStore에서 다뤄진 데이터가 로컬스토리지와 연동되도록 개선
gabrielyoon7 Apr 28, 2023
94eec67
fix: 카드 색상이 원색으로 출력되는 문제 해결
gabrielyoon7 Apr 28, 2023
668e2d7
style: 오탈자 수정
gabrielyoon7 Apr 28, 2023
c43f558
refactor: 비밀번호 구조를 nested 객체에서 배열로 변경
gabrielyoon7 Apr 28, 2023
e499087
fix: 비밀번호 수정이 안되는 버그 수정
gabrielyoon7 Apr 28, 2023
c82d47b
fix: 카드 추가 등록 시 비밀번호가 초기화 되지 않는 문제 수정
gabrielyoon7 Apr 28, 2023
50f69f5
fix: 신용카드 등록 검사 로직이 제대로 동작하지 않는 문제 수정
gabrielyoon7 Apr 28, 2023
5932f27
style: 불필요한 출력 코드 제거 및 간격 조정
gabrielyoon7 Apr 28, 2023
f4edcd0
docs: 요구사항 문서 최신화
gabrielyoon7 Apr 28, 2023
4e6a282
Update README.md
gabrielyoon7 Apr 28, 2023
992be73
docs: 2단계 요구사항 최신화
gabrielyoon7 Apr 28, 2023
5f58a43
Merge branch 'gabrielyoon7' into step2
gabrielyoon7 Apr 28, 2023
9e05514
fix: merge 오류 수정
gabrielyoon7 Apr 28, 2023
b58ec8b
refactor: Box 제거
gabrielyoon7 May 1, 2023
cabd406
refactor: Box 제거
gabrielyoon7 May 1, 2023
59d5dc9
chore: eslint 설정 수정
gabrielyoon7 May 1, 2023
951d428
refactor: Box 제거
gabrielyoon7 May 1, 2023
ec4b493
fix: Box 제거로 인해 생긴 간격 버그 수정
gabrielyoon7 May 1, 2023
c66661a
refactor: Box 컴포넌트 완전 제거
gabrielyoon7 May 1, 2023
c206b31
refactor: import React from 'react' 제거
gabrielyoon7 May 1, 2023
8cf4598
refactor: 버튼의 기본 속성으로 HTMLAttribute<HTMLButtonElement> 추가
gabrielyoon7 May 1, 2023
df450fc
refactor: ControlButton 구조 개선
gabrielyoon7 May 1, 2023
c727fe6
refactor: border-width 표기법 개선
gabrielyoon7 May 1, 2023
226b2eb
refactor: 타입 호출명 통일
gabrielyoon7 May 1, 2023
267ac6a
refactor: 타입 호출명 개선
gabrielyoon7 May 1, 2023
7d61b5f
refactor: CreditCardRegisterDone 구조 개선
gabrielyoon7 May 1, 2023
458ce95
refactor: CreditCardRegisterDone 구조 개선
gabrielyoon7 May 1, 2023
8bf63a1
refactor: 불필요한 export 제거
gabrielyoon7 May 1, 2023
f4c2599
chore: prettier 설치
gabrielyoon7 May 1, 2023
8e1bb3d
chore: prettier 옵션 수정
gabrielyoon7 May 1, 2023
c1d3341
style: prettier 전체 적용
gabrielyoon7 May 1, 2023
ffe8595
fix: 자동 배포 오류 수정 시도
gabrielyoon7 May 1, 2023
3a17fb2
style: eslint 적용
gabrielyoon7 May 1, 2023
8099fce
refactor: PropsWithChildren 제거
gabrielyoon7 May 1, 2023
74bc39a
refactor: 모달 백드롭 닫는 코드 단순화
gabrielyoon7 May 1, 2023
503194f
fix: 잘못된 오류 검촐 로직 개선
gabrielyoon7 May 1, 2023
ccd61ad
refactor: useCreditCardForm 구조 개선
gabrielyoon7 May 1, 2023
c0b8b09
refactor: 폼의 비즈니스 로직을 useCreditCardForm으로 이전
gabrielyoon7 May 1, 2023
5aefdfd
feat: 카드사 변경 버튼 구현
gabrielyoon7 May 1, 2023
7ec7f52
refactor: useSyncExternalStore 제거
gabrielyoon7 May 2, 2023
3ee19c0
style: prettier 적용
gabrielyoon7 May 2, 2023
a39a50a
fix: prettier로 인해 배포가 제대로 되지 않는 문제 수정
gabrielyoon7 May 2, 2023
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
1 change: 1 addition & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
"@typescript-eslint/comma-dangle": "off",
"react/jsx-props-no-spreading": "off",
"import/no-extraneous-dependencies": [0, { "devDependencies": true }],
"import/prefer-default-export": ["off"],
"react/require-default-props": "off"
},
"overrides": [
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Deploy

on:
push:
branches: ['step1']
branches: ['step2']

jobs:
deploy:
Expand All @@ -28,7 +28,7 @@ jobs:
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- run: npm ci
- run: npm ci --legacy-peer-deps
if: steps.cache.outputs.cache-hit != 'true'

- run: npm run build
Expand Down
4 changes: 2 additions & 2 deletions .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
"semi": true,
"useTabs": false,
"tabWidth": 2,
"trailingComma": "all",
"trailingComma": "es5",
"printWidth": 80,
"arrowParens": "always",
"orderedImports": true,
"bracketSpacing": true,
"jsxBracketSameLine": false
}
}
20 changes: 10 additions & 10 deletions .storybook/main.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
module.exports = {
stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
staticDirs: ["../public"],
stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
staticDirs: ['../public'],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-interactions",
"@storybook/preset-create-react-app",
'@storybook/addon-links',
'@storybook/addon-essentials',
'@storybook/addon-interactions',
'@storybook/preset-create-react-app',
],
framework: "@storybook/react",
framework: '@storybook/react',
core: {
builder: "@storybook/builder-webpack5",
builder: '@storybook/builder-webpack5',
},
features: {
interactionsDebugger: true,
},
typescript: {
reactDocgen: "react-docgen-typescript-plugin"
}
reactDocgen: 'react-docgen-typescript-plugin',
},
};
2 changes: 1 addition & 1 deletion .storybook/preview.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export const parameters = {
actions: { argTypesRegex: "^on[A-Z].*" },
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
matchers: {
color: /(background|color)$/i,
Expand Down
35 changes: 30 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@

## FE 5기 레벨2 React 모바일 페이먼츠 애플리케이션

<img width="1704" alt="image" src="https://user-images.githubusercontent.com/69189073/233289234-b1d09ba3-58ea-4f64-9080-f846c5cbea67.png">
<img width="1313" alt="스크린샷 2023-04-29 00 50 23" src="https://user-images.githubusercontent.com/69189073/235194743-75373f7e-08af-4113-87ad-1416f60cf7a1.png">

<img width="856" alt="image" src="https://user-images.githubusercontent.com/69189073/233289025-58cbef02-efaa-4e25-b46e-3196cf751582.png">
<img width="1313" alt="스크린샷 2023-04-29 00 45 13" src="https://user-images.githubusercontent.com/69189073/235193888-d9377aac-4847-46bf-945b-92120012cf45.png">

<img width="1313" alt="스크린샷 2023-04-29 00 47 28" src="https://user-images.githubusercontent.com/69189073/235194129-a0a66fed-8716-4ecf-b09c-8baebbe65e03.png">

<img width="1313" alt="스크린샷 2023-04-29 00 48 05" src="https://user-images.githubusercontent.com/69189073/235194311-0e32c104-c983-49bb-82ba-c1344d9f1477.png">

<br>

Expand Down Expand Up @@ -48,11 +51,10 @@

<br>
<br>

### 🎯 기능 목록

<br>

# 1단계 요구사항

### 📝 필수 요구 사항

- 카드 등록을 위한 form을 CDD로 구현한다.
Expand All @@ -74,6 +76,29 @@
- 각 스토리에 명확한 이름을 지정하고, 스토리 이름을 통해 컴포넌트의 사용 사례를 쉽게 이해할 수 있도록 한다.
- 변동 가능한 값에 대해 사용자가 직접 조작해볼 수 있게 하여 컴포넌트를 더욱 쉽게 이해할 수 있도록 한다.

# 2단계 요구사항

🚀 Getting Started
Component-Driven Development 에 따라 UI를 구성하고 재사용 가능한 Component를 작성합니다.

✔️ 모바일 타겟의 웹 앱을 구현하며 사용하기 편리한 모바일 UI/UX에 대해 고민해봅니다.

✔️ 다른 라이브러리나 프레임워크 없이 오로지 React만으로 상태를 관리하고 컴포넌트를 설계합니다.

✔️ React Hooks API를 활용합니다.

✔️ 재사용 가능한 Component를 직접 작성하고 사용합니다.

✔️ Controlled & Uncontrolled Components에 입각하여 Form을 핸들링합니다.

- 카드 등록 과정에서 발생할 수 있는 여러 스토리를 고려하여 구현한다.

- 주요 컴포넌트에 대한 Storybook 상호 작용 테스트

- Controlled & Uncontrolled Components에 입각하여 Form 핸들링

- Context API를 활용해 전역 상태 관리 및 계층 재구성

<br>

---
Expand Down
24 changes: 20 additions & 4 deletions docs/REQUIREMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,13 @@
- [x] 최대 30자까지 허용한다.
- [x] 영어 대문자만 가능하다.
- [x] 영어 소문자로 입력할 경우 대문자로 자동 변환한다.
- [ ] 보안 코드를 입력받는다.
- [ ] 숫자만 허용한다.
- [x] 보안 코드를 입력받는다.
- [x] 숫자만 허용한다.
- [x] 숫자 3자리를 입력한다.
- [x] 모두 숨긴다.
- [x] ?를 클릭할 경우 안내 메시지를 보여준다.
- [ ] 카드 비밀번호를 입력받는다.
- [ ] 숫자만 허용한다.
- [x] 카드 비밀번호를 입력받는다.
- [x] 숫자만 허용한다.
- [x] 4자리 중 앞 두 자리를 입력받는다.
- [x] 카드 비밀번호는 숨긴다.
- [x] 카드 번호, 이름, 만료일 작성하면 카드에 실시간으로 반영된다.
Expand All @@ -54,6 +54,22 @@
- [x] 등록된 카드를 등록 순으로 보여준다.
- [x] 새로운 카드 등록 버튼을 누르면 등록하기 페이지로 이동한다.

# 2단계 요구사항

🚀 Getting Started
Component-Driven Development 에 따라 UI를 구성하고 재사용 가능한 Component를 작성합니다.

✔️ 모바일 타겟의 웹 앱을 구현하며 사용하기 편리한 모바일 UI/UX에 대해 고민해봅니다.
✔️ 다른 라이브러리나 프레임워크 없이 오로지 React만으로 상태를 관리하고 컴포넌트를 설계합니다.
✔️ React Hooks API를 활용합니다.
✔️ 재사용 가능한 Component를 직접 작성하고 사용합니다.
✔️ Controlled & Uncontrolled Components에 입각하여 Form을 핸들링합니다.

- 카드 등록 과정에서 발생할 수 있는 여러 스토리를 고려하여 구현한다.
- 주요 컴포넌트에 대한 Storybook 상호 작용 테스트
- Controlled & Uncontrolled Components에 입각하여 Form 핸들링
- Context API를 활용해 전역 상태 관리 및 계층 재구성

## 스타일 컴포넌트 참고 컨벤션

- 최상위 레이아웃 설정 컴포넌트는 `Layout` 으로 끝나게끔 짓습니다
Expand Down
Loading