Skip to content

YujunSun0/YujunSun0.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 

Repository files navigation

포트폴리오 사이트

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

⏱️ 프로젝트 기간: 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

  • 스크롤 진행 상황을 표시하는 bar입니다.

  • useEffect에서 addEventListener를 통해 스크롤 이벤트를 등록하여 현재 스크롤 위치의 percent(%) 를 구하는 방식으로 구현했습니다.


빌드 속도 최적화

  • 짧은 배포 주기로 인해 빌드 속도 개선의 필요성을 느꼈으며, 빌드 최적화를 목표로 빌드 도구를 CRA에서 Vite로 마이그레이션 하였습니다.

  • 이를 통해 빌드 시간을 1/3정도 단축시켰습니다.


트러블 슈팅

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)

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

About

포트폴리오 사이트입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published