-
Notifications
You must be signed in to change notification settings - Fork 6
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
fix-fe: Lighthouse LCP 이슈 해결 #730
Conversation
1727339870.203839 |
1727339878.696509 |
opacity: 0; | ||
opacity: 0.01; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
0.01로 바꾸면 어떤 이점이 있는걸까용?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LCP 측정 기준에 따르면, 아래와 같은 경우에는 LCP 측정 대상에서 제외되어요.
- 전체 표시 영역을 덮는 이미지/배경이미지
opacity: 0
인 요소들
현재 랜딩페이지로 접속했을 때 처음 드러나는 모든 요소들은 opacity
가 0
인 상태로 최초에 그려진 뒤, 애니메이션을 통해 드러나는 형태로 되어있어요. 이것이 Lighthouse에서 LCP가 잡히지 않는 원인이었어요.
위 코드는 애니메이션 시작점의 opacity
를 0
대신 0.01
로 잡는 코드에요. 이렇게 하면 실제 애니메이션 효과에는 거의 영향을 미치지 않으면서, Lighthouse의 LCP 측정에도 방해되지 않게 됩니다. 요 문서에서 힌트를 잡아 적용한 부분이에요 :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1 대신 0.99로 설정함으로서 성능향상 할 수 있단는 걸 월하 테코톡에서 들은 것 같아서 성능 이점이 있나? 생각했에요 ㅎㅎ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아하 그 부분은 따로 고려하지 않았던 부분입니다 ㅎㅎ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
@@ -92,19 +92,19 @@ const Catchphrase = styled.h1` | |||
white-space: pre-wrap; | |||
} | |||
|
|||
span:nth-child(1) { | |||
span:nth-of-type(1) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nth-of-type
은 정확히 span인 자식요소의 순서를 의미하는군요! 배워갑니다~
@@ -21,7 +21,7 @@ const bounce = keyframes` | |||
|
|||
const fadeIn = keyframes` | |||
0% { | |||
opacity: 0; | |||
opacity: 0.01; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
정말 상상도 못한..😅
랜딩페이지 일부 이미지에 누락된 alt 속성까지 추가해서 머지 진행합니다. |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Seongjin Hong <[email protected]> Co-authored-by: Seongjin Hong <[email protected]>
Original issue description
목적
현재 크루루의 랜딩 페이지에서 Lighthouse 퍼포먼스 측정시 LCP가 잡히지 않는 문제가 있습니다.
관련하여 LCP 측정 기준에 관한 공식 문서를 참고한 결과, 아래와 같은 경우에는 LCP 측정 대상에서 제외된다는 점을 확인했어요.
opacity: 0
인 요소들현재 랜딩페이지의 요소들은 모두
opacity
가0
인 상태로 최초에 그려진 뒤, 애니메이션을 통해 드러나는 형태로 되어있어요. 이것이 Lighthouse에서 LCP가 잡히지 않는 원인으로 추정됩니다.웹사이트 기능 자체에는 문제가 없으나, 로딩 성능 개선 전후 비교에 필요한 측정을 가능하도록 하기 위해 이 문제를 해결하고자 합니다.
작업 세부사항
opacity
스타일 속성 수정참고 사항
FIX_LANDING_01
목적
수정 내용
opacity
관련 애니메이션 코드 수정el:nth-child()
를el:nth-of-type()
로 수정 (LCP와 별개로 emotion 경고 메시지 대응)수정 전 Lighthouse 화면
수정 후 Lighthouse 화면 (localhost 기준)
관련 이슈