architecture
도메인 아키텍처
2-프로젝트 모델과 도메인 매핑 규칙
도메인 아키텍처
2-프로젝트 모델
Modfolio 생태계에서 각 브랜드는 두 개의 독립 프로젝트로 분리됩니다.
| 구분 | 도메인 | 역할 | 프레임워크 |
|---|---|---|---|
| 앱 | domain.com |
핵심 기능 (인증, 대시보드 등) | SvelteKit, SolidStart 등 |
| 랜딩 | www.domain.com |
마케팅, 문서, SEO | Astro |
이 분리는 성능과 관심사 분리를 위한 설계입니다. 앱은 동적 SSR이 필요하고, 랜딩은 정적 생성이 효율적이기 때문입니다.
naviaca.com → SvelteKit 5 (앱)
www.naviaca.com → Astro (랜딩)
gistcore.com → SolidStart (앱)
www.gistcore.com → Astro (랜딩)
entryMode
naked 도메인(domain.com)에 접속했을 때의 동작을 entryMode로 결정합니다.
app-first
domain.com/ 접속 시 앱 홈을 직접 표시합니다. 사용자가 즉시 핵심 기능에 접근합니다.
GET domain.com/
→ 200 OK (앱 홈 화면)
GET www.domain.com/
→ 200 OK (마케팅 랜딩 페이지)
이 모드는 이미 사용자 기반이 확보된 앱에 적합합니다. 로그인한 사용자가 대시보드에 바로 진입하는 패턴입니다.
landing-first
domain.com/ 접속 시 www.domain.com으로 302 리다이렉트합니다. 신규 방문자가 먼저 랜딩 페이지를 보게 됩니다.
GET domain.com/
→ 302 Location: https://www.domain.com/home
GET www.domain.com/
→ 200 OK (마케팅 랜딩 페이지)
초기 마케팅 단계의 앱이나 SEO가 중요한 서비스에 적합합니다.
app.domain.com패턴은 폐기되었습니다. naked 도메인은 항상 앱을 가리킵니다.
인프라 앱 예외
인프라 앱(*.modfolio.io)은 2-프로젝트 모델을 적용하지 않습니다. 단일 서브도메인으로 운영됩니다.
| 앱 | 도메인 | 비고 |
|---|---|---|
| modfolio-connect | login.modfolio.io |
SSO 전용 |
| modfolio-admin | admin.modfolio.io |
내부 관리자 |
| modfolio-dev | dev.modfolio.io |
개발자 도구 |
| modfolio-on | on.modfolio.io |
커뮤니티 |
| modfolio-press | press.modfolio.io |
퍼블리싱 |
| modfolio-docs | docs.modfolio.io |
문서 (이 사이트) |
인프라 앱은 외부 마케팅이 불필요하므로 별도 랜딩 사이트를 두지 않습니다.
도메인 맵
브랜드 앱 (2-프로젝트 모델 적용)
| 앱 | 앱 URL | 랜딩 URL | entryMode |
|---|---|---|---|
| Naviaca | naviaca.com |
www.naviaca.com |
app-first |
| GistCore | gistcore.com |
www.gistcore.com |
app-first |
| Fortiscribe | fortiscribe.com |
www.fortiscribe.com |
landing-first |
| KeepNBuild | keepnbuild.com |
www.keepnbuild.com |
landing-first |
| Worthee | worthee.io |
www.worthee.io |
landing-first |
| Amberstella | amberstella.com |
www.amberstella.com |
landing-first |
| Munseo | munseo.com |
www.munseo.com |
landing-first |
| Sincheong | sincheong.com |
www.sincheong.com |
landing-first |
| Umbracast | umbracast.com |
www.umbracast.com |
landing-first |
그룹 포털
Works, LS, Axiom, Studio 각 그룹은 독립 포털 도메인을 보유합니다.
DNS 설정 패턴
모든 도메인은 Cloudflare DNS를 통해 CF Pages에 연결됩니다.
앱 도메인 (naked)
# naviaca.com → CF Pages 프로젝트 "naviaca"
naviaca.com. CNAME naviaca.pages.dev. (proxied)
랜딩 도메인 (www)
# www.naviaca.com → CF Pages 프로젝트 "naviaca-landing"
www.naviaca.com. CNAME naviaca-landing.pages.dev. (proxied)
인프라 서브도메인
# login.modfolio.io → CF Pages 프로젝트 "modfolio-connect"
login.modfolio.io. CNAME modfolio-connect.pages.dev. (proxied)
모든 CNAME 레코드는 Cloudflare 프록시(오렌지 클라우드)를 활성화합니다. 이를 통해 SSL 자동 발급, DDoS 보호, 캐시가 적용됩니다.
CF Pages 프로젝트 명명 규칙
| 유형 | Pages 프로젝트명 | 예시 |
|---|---|---|
| 브랜드 앱 | {앱이름} |
naviaca |
| 브랜드 랜딩 | {앱이름}-landing |
naviaca-landing |
| 인프라 앱 | modfolio-{기능} |
modfolio-connect |
배포 설정 상세는 배포 가이드를 참조하세요.
다음 단계
- 생태계 개요 — 전체 앱 목록과 원칙
- 기술 스택 매트릭스 — 프레임워크 × DB 조합 상세