또다시 프로젝트가 시작되었다.
이번 과제는 (주)에스앤피랩 기업의 과제를 수행하는 것이다.
요구사항 분석 및 기능 정의, 보일러플레이트 작성, 디렉토리 컴포넌트 구조 및 라우터 설정, 역할 분담
크게는 2개의 기능을 구현해야한다.
1. 회원가입과 같은 로그인 폼을 받기
- 로그인 폼 중 어렵다 생각 된 점 : 이부분에서 필터링을 하는 부분이 약간 까다로울 것이라 판단되었다.
먼저 목표는 이번주 목요일 금요일 까지 1번의 기능을 구현을 하고, 월요일부터 2번의 기능을 다같이 다시 역할분담하여 진행하기로 계획하였다.
asset
┗ region.json
database
┗ database.json
src
┣ components
┃ ┗ Form.tsx
┣ pages
┃ ┣ Admin.tsx
┃ ┣ Agreement.tsx
┃ ┣ ApplicationForm.tsx
┃ ┗ Landing.tsx
┣ router
┃ ┗ Router.tsx
┣ styles
┃ ┗ globalStyles.tsx
┣ App.tsx
┣ index.tsx
┣ react-app-env.d.ts
┗ setupTests.ts
db 같은 경우 지역구의 api와 관련된 부분은 asset의 region으로 만들어줬고,
입력받은 user를 기록하는 곳은 database에서 관리하기로 하였다.
일단은 보일러플레이트에서는 Form하나만 만들고 각자 기능에따라 추가하기로 하였다.
페이지같은경우 크게 ApplicationForm 컴포넌트와 Admin컴포넌트이고, Agreement 컴포넌트는 이용약관 동의에 관한 페이지를 따로 분리해줬고 Landing페이지는 가입 시작 전과 종료시 가게 될 아무 기능이 없는 페이지로 구성되었다.
라우터를 분리해줌으로 App 컴포넌트에서 router만 불러주고 router에서 나눠줌으로 조금 더 컴포넌트를 직관적으로 분리하였다.
정규식을 이용하여도 되지만, react-hook-form이라는 라이브러리를 이용해도 되겠다는 생각이 들었다.
먼저 두개를 다 시도해보고 차이점과 우리 프로젝트에 더 잘 맞는것을 비교해봐야겠다.