-
Notifications
You must be signed in to change notification settings - Fork 0
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
[DOYU's Blog] v.1.0.0 완성 #9
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Settings] 프로젝트 기본 세팅
[Header] 헤더 UI 및 라우팅 적용
[Notion] 노션 API를 활용하여 노션 페이지 DB 연동
[HOTFIX] 직전 PR(화면에 렌더링이 안 됨) 이슈 해결
[Readme] 프로젝트 관련 Readme 추가
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
DOYU's Blog v.1.0.0
-> 둘 중 한 링크로 들어가셔서 오른쪽 상단의 언어 버튼을 누르셔도 한/영 전환이 됩니다.
🧐 기술 스택
이번 프로젝트에서 SCSS를 선택한 이유 ( 👈🏼 클릭!)
런타임 비용이 든다
는 문제가 있기 때문이었습니다.DOM 노드에서 스타일이 다시 계산된다
는 한계가 있습니다.⌨️ 로컬 실행 방법
1. 환경 변수 설정
해당 레포지토리를 clone하셔서 여신 후, 노션 API와 관련하여 아래 링크를 참고하셔서 환경변수를 설정하시면 됩니다.
2. 패키지매니저로 로컬 설치 및 개발모드로 실행
그 뒤, 로컬에서 실행을 할 수 있습니다. 프로젝트는
pnpm
으로 관리됩니다.🌟 구현 기능
[목차]
next/font
next/dynamic
useRef
의 데이터 저장 로직,useLayoutEffect
)useRef
배열로 관리하며 도미노 글자 애니메이션 직접 구현- 다국적 언어 지원
1. 렌더링 방식에 따른 한/영 변환 기능
en/roadmap
에서 언어 전환 버튼을 눌렀을 때,ko
가 아니라ko/roadmap
으로 이동하도록 함.2. JEST 동적 라우팅 테스트
- 최적화
1. next.js 내장기능을 사용한 최적화
next/link
,next/dynamic
,next/font
,next/image
등을 이용한 성능 최적화[next/font]
[next/dynamic]
- 노션API
1. 노션 API를 활용한 페이지 연동
2. 미들웨어를 활용한 리다이렉션 설정
- 인터랙티브
1. 3D 카드 효과 추가
transform-style: preserve-3d
속성을 활용useLayoutEffect
를 이용하여 컴포넌트가 렌더링되기 전에 동기적으로 애니메이션 이벤트 등록 및 함수 실행requestAnimationFrame()
적용2. 타이핑 효과 애니메이션 컴포넌트 및 영/한 데이터 추가
react-typist
라이브러리를 사용했지만 최신 React 18버전 이상에서 호환되지 않는 일부 성능 문제가 발생react-simple-typist
로 라이브러리 교체 후 이상없이 작동3. useRef 배열로 관리하며 도미노 글자 애니메이션 직접 구현
useEffect
, 해당 span에 시간차로 css를 적용하는useEffect
로 도미노처럼 차례대로 쓰러지는 듯한 글자 애니메이션을 적용useEffect
안에서useRef
과 같은 훅 사용이 불가능하기 때문에useEffect
안에서 각 글자 데이터들이 map 함수에서 span 태그를 생성하는 로직을 짤 때createRef
를 사용하였지만 추후 함수 컴포넌트 방식에 맞게useRef
를 배열로 선언해준 다음useEffect
안의 map 함수에서 해당 배열에 span 태그와ref
값을 차례로 할당시키는 방법으로 리팩토링- 기타
1. 페이지 반응형 적용