YujunSun0

포트폴리오 사이트

✏️ 개인 프로젝트 - 포트폴리오 웹사이트

⏱️ 프로젝트 기간: 2024.03.18 ~ 2024.03.25

배포 링크

한 페이지에서 편리한 정보 조회가 가능하도록 제작했으며, 반응형 웹으로 제작되어 모든 환경에서 볼 수 있습니다.


기술 스택

|HTML5|CSS3|TypeScript|React|Styled-Components|Vite| |:—:|:—:|:—:|:—:|:—:|:—:| |html5|css3|ts|reactjs|sc|vite|


주요 구현 기능

동적 요소 감지 및 내비게이션 하이라이팅

데스크탑 모바일
2024-03-285 22 08-ezgif com-video-to-gif-converter 2024-03-285 28 11-ezgif com-video-to-gif-converter


Situation (상황): 웹사이트 사용자들이 스크롤을 통해 콘텐츠를 탐색하는 과정에서, 원활한 내비게이션과 현재 위치 파악의 어려움을 겪고 있었습니다.

Task (과제): 사용자의 편의성을 높이기 위해, 클릭 한 번으로 원하는 섹션으로 쉽게 이동할 수 있고, 현재 위치를 실시간으로 파악할 수 있는 기능을 개발해야 했습니다.

Action (행동): React-RouterHashLink를 활용해 클릭 시 해당 섹션으로 이동하는 기능을 구현했습니다. 또한, intersectionObserver API를 사용하여 스크롤 위치에 따라 URL hash를 업데이트하고, 연결된 내비게이션 링크에 스타일을 적용해 시각적으로 강조하는 기능을 추가했습니다.

Result (결과): 이러한 기능들을 통해 사용자 경험을 크게 향상시켰으며, 웹사이트 내비게이션의 효율성과 사용자 만족도가 증가했습니다.


스크롤 progress bar

2024-03-286 33 51-ezgif com-video-to-gif-converter

빌드 속도 최적화

트러블 슈팅

progress bar 컴포넌트에서 추가한 스크롤 이벤트가 발생할 때 마다 폰트가 깜빡이는 현상

2024-03-213 09 53-ezgif com-video-to-gif-converter

원인

styled-components에서 font-familyGlobalStyle에 저장해 둔 것이였으며, 새로운 스타일이 render 되면 폰트를 재요청 하기 때문에 깜빡임 현상이 발생 한 것이였습니다.

해결 방법

GlobalStyle에 저장해 둔 font-family 속성을 css 파일로 옮겨주어 해결했습니다. (src 폴더의 index.tsx에서 해당 css 파일을 import)

해당 문제의 해결 과정을 블로그에 작성했습니다.