Honeycam 2022-11-08 22-31-07.gif

주소
github
배포 https://numble-senior.vercel.app/
디자인
챌린지 결과 페이지 https://www.numble.it/64e5c833-3b81-426c-9fd8-5daaa5655890

주요 코드에 대한 설명

온보딩 페이지라 라우팅과 데이터 바인딩에 한정된 부분만 개발했습니다.

라우팅

최대한 공통으로 나타나는 패턴은 하나로 묶기

Untitled

다음 버튼, 페이지네이션, 타이틀 부분은 레이아웃은 똑같아서 하나의 컴포넌트를 만든 후에 내부의 컨텐츠 내용만 변경했습니다. 온보딩 애니메이션이 나오는 부분은 레이아웃이 매번 바뀌어서 페이지마다 다른 컴포넌트를 제작했습니다. 온보딩 페이지가 6페이지이므로 총 6개의 애니메이션을 구현했습니다.

//onboardingDummyData.tsx

export interface OnboadringPageProps {
  id?: number
  title: string[]
  content: string
  animate: JSX.Element
}

const onboadringDataList: onboadringPageProps[] = [
  {
    id: 1,
    title: ['편리한', '송금'],
    content: '계좌번호 입력 시 자동 은행인식',
    animate: <Onboarding1 />,
  },
  {
    id: 2,
    title: ['안전한', '익명거래'],
    content: '나만의 특별한 아이디로 실명 노출 없이 거래',
    animate: <Onboarding2 />,
  },
  {
    id: 3,
    title: ['사기신고', '이력'],
    content: '송금하는 계좌의 범죄이력 제공',
    animate: <Onboarding3 />,
  },
	//...some dummy data
]
const [regularText, boldText] = title

return(<h2 className='text-3xl pb-2'>
				{regularText}{' '}
				<span className='text-yellow-500 font-bold'>{boldText}</span>
			</h2>)

itle을 배열로 나열한 이유는 디자인상 강조되는 텍스트에 bold 값이 들어갑니다. 위와 같은 형식으로 강조된 텍스트는 따로 처리하기 위해서 배열로 쪼개놨습니다.

활용한 라이브러리와 그 이유