2026-04-24 크라우니처치 — 코드분할 + 성도층 Phase 3 + 말씀 365개
개요
church.crowny.org P2 작업 완료: React.lazy 코드분할, 성도층(Phase 3) 교인 전용 5개 페이지, 말씀 365개 확장.
1. 코드 분할 (React.lazy)
결과
- 메인 번들: 1,044KB → 52KB (95% 감소, gzip 16KB)
- 500KB 경고 제거 — Vite 경고 없음
- 40+ 개별 청크 — 페이지별 lazy loading
구조
App.tsx— 모든 페이지 import를React.lazy(() => import(...))으로 전환<Suspense fallback={<PageLoader />}>로 로딩 UI 추가vite.config.ts—manualChunks함수형으로 변경 (content-data, church-data 분리)
청크 분류
index(52KB) — 앱 쉘 + 라우터 + 인증react-vendor(192KB) — React/ReactDOMchurch-data(342KB) — 141개 교회 후보 + 리졸버 + 패턴content-data(146KB) — 말씀 386개 + 묵상 357개 + FAQ 30개 + 간증 30개- 페이지별 청크 (2~55KB 각각)
2. 성도층 Phase 3 — 교인 전용 페이지 5개
라우팅
/#/ctc/my-church— 나의 교회 (대시보드, 자산, 출석, 바로가기)/#/ctc/my-offerings— 나의 헌금 (월별/유형별 필터, 합계 3종)/#/ctc/my-prayers— 나의 기도제목 (추가/응답/카테고리 6종)/#/ctc/my-groups— 나의 소그룹 (그룹목록, 다가오는 모임)/#/ctc/my-profile— 프로필 (계정정보, 교회정보, 지갑, 로그아웃)
파일
src/pages/my/MyChurchPage.tsx(136줄)src/pages/my/MyOfferingsPage.tsx(154줄)src/pages/my/MyPrayersPage.tsx(185줄)src/pages/my/MyGroupsPage.tsx(142줄)src/pages/my/MyProfilePage.tsx(162줄)
특징
- 로그인 필요 — 미로그인 시 로그인 프롬프트 표시
- 샘플 데이터 내장 (서버 연동 시 자동 대체)
- 헌금 유형: 십일조/감사헌금/선교헌금/건축헌금/구제헌금/절기헌금
- 기도 카테고리: 개인/가정/교회/선교/나라/건강
- 소그룹 분류: 말씀/양육/봉사/교제/선교
- 크라우니 자산(CRN/FNC/CRM) 표시
라우터 변경
src/lib/router.ts— ChurchPage 타입에my-church|my-offerings|my-prayers|my-groups|my-profile추가src/components/portal/ChurchLayout.tsx— 네비에 "나의 교회" 추가
3. 말씀 365개 확장
결과
- 말씀: 60개 → 386개 (6.4배, 1년+ 매일 다른 말씀 보장)
- 묵상: 60개 → 357개 (6배)
- 구약+신약 66권 전체 커버
파일
src/lib/daily-verses-extra.ts(신규) — 추가 298 말씀 + 297 묵상src/lib/daily-content.ts— import + ALL_VERSES/ALL_MEDITATIONS 합산 배열
4. 한선씨 동반
성도층
hanseon/성도층.한선— 교인/헌금/기도/소그룹 CRUD + 셀코어 룰 (1.66MB TOAU)- 학습 3건: 성도층_교인관리, 성도층_헌금조회, 성도층_기도응답
말씀365
hanseon/말씀365.한선— 날짜해시 + 말씀검색 + 오늘의말씀 함수 (309KB TOAU)- 학습 1건: 일일큐레이션_말씀해시
빌드
tsc --noEmit통과npm run build성공 (500KB 경고 없음)- 한선씨 4건 컴파일 성공
잔여 이슈
- 성도층 데이터가 아직 샘플 — 서버 API 연동 시 실제 데이터 표시
- church-data 청크 342KB — 교회 후보 141개 데이터가 크므로 향후 서버 사이드 로딩 고려
- 성도층 네비에 로그인 여부에 따른 가시성 분기 가능