제4장. AI 생성 프론트엔드최적화
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
웹 애플리케이션에서 속도와 반응성은 사용자 만족도의 핵심 요소입니다. AI로 생성된 프론트엔드 코드를 다룰 때는 성능 엔지니어링이 신중한 작업이 됩니다. 이 장에서는 LLM의 도움을 받아 생성된 애플리케이션이 웹 성능과 품질에 대한 높은 기준을 충족하도록 보장하는 방법을 살펴봅니다. 핵심 웹 지표(CWV)를 프레임워크로 활용하여 성능의 주요 측면을 이해하고, AI 생성 React 코드의 일반적인 함정을 식별하며, 문제 진단 및 해결을 위한 실용적인 예시를 살펴보겠습니다. 또한 Chrome DevTools(이제 AI 'Ask Gemini' 어시스턴트로 강화됨)부터 Google Lighthouse에이르기까지 현대적인 도구가 이 최적화 과정을 어떻게 지원할 수 있는지 살펴볼 것입니다. 목표는 개발자인 여러분이 AI 생성된 기본 코드를 정교하게 조정된 사용자 중심 웹 애플리케이션으로 전환할 수 있도록 지원하는 것입니다.
CWV와 AI 생성 코드
가 2장에서 다룬 바와 같이, Google의 CWV(최대 콘텐츠 페인트(LCP), 상호작용 후 다음 페인트(INP), 누적 레이아웃 이동(CLS))는 성능 측면에서 사용자 경험을 측정하는 프레임워크를 제공합니다. 이 지표들은 사용자가 가장 중요하게 느끼는 부분에 집중합니다: 빠르게 로드되나요? 반응성이 좋은가요? 안정적인가요?
AI 생성 코드를 다룰 때 이 지표들은 특별한 중요성을 띱니다. AI 생성 앱은 종종 CWV에 직접적인 영향을 미치는 성능 문제를 의도치 않게 유발합니다:
- LCP 문제점
-
AI는 이미지 압축을 하지 않거나, 너무 많은 데이터를 미리 로드하거나, 중요한 CSS 및 JavaScript의 우선 순위를 지정하지 못하는 등 로딩 성능을 저하시키는 선택을 무의식적으로 할 수 있습니다.
- INP 문제
-
메인 스레드에서 무거운 작업을 수행하는 AI 생성 코드는 앱을 응답하지 않게 만들 수 있습니다. 예를 들어, AI가 느린 JavaScript 루프나 스레드를 차단하는 큰 JSON 파서를 작성하는 것이 흔한 문제입니다. 이로 인해 사용자가 버튼을 클릭해도 1초 동안 아무 반응이 없습니다. 빠른 상호작용을 보장하려면 긴 작업을 분할하거나, 무거운 계산에 웹 워커를 사용하거나, 중요하지 않은 작업을 연기하는 전략이 필요한데, 이는 일반적으로 사람의 개입이 필요합니다.
- CLS 문제
-
AI 생성 코드는 레이아웃 이동을 방지하는 세부 사항을 종종 간과합니다. 예를 들어, AI가 너비와 높이를 지정하지 않거나 자리 표시자 공간을 포함하지 않은
<img>태그를 삽입할 수 있습니다. 이는 이미지가 로드될 때 갑자기 텍스트를 밀어내는 결과를 초래합니다. 또는 데이터를 가져와 기존 콘텐츠 위에 항목 목록을 삽입하여 모든 요소가 재배치되게 할 수도 있습니다.
AI 생성 앱을 검토할 때는 즉시 다음과 같은 질문을 던져야 합니다: 이 코드가 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access