플러터 Web 폴더 구조
1. index.html
index.html
<!DOCTYPE html>
<html>
<head>
<base href="/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="A new Flutter project.">
<title>myAppTitle</title>
</head>
<body>
<script src="flutter_bootstrap.js?v=1.0.0?v=1.0.0" async></script>
</body>
</html>
역할
앱 진입점
브라우저가 HTML을 처음 읽을 때 Flutter Web 앱을 실행하는 시작점입니다.
부트스트랩 로더 연결
<script src="flutter_bootstrap.js">
: Flutter 엔진과 앱 코드를 초기화합니다.
브라우저 환경 설정
<meta>
: viewport 설정 → 모바일에서도 화면이 잘 맞도록<base href="/">
: 상대 경로 기반 URL 처리
앱 메타데이터
<title>
: 브라우저 탭 제목<meta name="description">
: 검색엔진 및 PWA 설명
2. service_worker.js
service_worker.js
역할
PWA(Progressive Web App) 지원: 오프라인 캐싱, 리소스 프리로딩, 백그라운드 업데이트 기능 제공.
Flutter에서
flutter build web --release
하면 자동으로flutter_service_worker.js
가 생성됩니다.주요 기능:
리소스 캐싱: HTML, JS, 폰트, 이미지 등을 캐시에 저장 → 네트워크 요청 최소화.
오프라인 실행: 네트워크가 끊겨도 앱이 로컬 캐시된 리소스로 실행됨.
앱 업데이트 관리: 새 빌드가 배포되면, 새로운 버전 리소스를 다운로드 후 교체.
3. flutter_bootstrap.js
flutter_bootstrap.js
역할
Flutter 엔진 초기화
CanvasKit 또는 HTML 렌더러 선택
WebAssembly 환경 준비
앱 코드 로드
main.dart.js 동적 로딩
앱 실행 시작
브라우저 환경 체크
이미지 디코더, 브레이크 이터레이터 등 브라우저 기능 확인
💡 정리: bootstrap.js
없이는 앱이 아예 실행되지 않으며, 브라우저마다 다른 초기화 과정을 담당합니다.
Last updated