Files
sori.studio/docs/map.md

5.5 KiB

파일-화면 매핑

현재 문서는 구현 예정 파일 기준 매핑이다. 실제 파일이 생성되면 경로와 화면 연결을 즉시 갱신한다.

레이아웃

파일 화면
layouts/default.vue 메인, 목록, 태그 페이지
layouts/post.vue 개별 게시물
layouts/admin.vue 관리자 전체
layouts/page.vue 고정 페이지 전체 화면

사이트 컴포넌트

파일 화면 위치
components/site/SiteHeader.vue 모든 공개 페이지 상단
components/site/LeftSidebar.vue 메인 화면 왼쪽
components/site/RightSidebar.vue 메인 화면 오른쪽
components/site/MainColumn.vue 메인 화면 중앙
components/site/PostCard.vue 목록의 게시물 카드
components/site/TagHeader.vue 태그 페이지 헤더

관리자 컴포넌트

파일 화면 위치
components/admin/AdminPostForm.vue 관리자 글 작성/수정 폼
components/admin/AdminBlockEditor.vue 관리자 글 블록형 에디터
components/admin/AdminTagForm.vue 관리자 태그 생성/수정 폼

콘텐츠 컴포넌트

파일 화면 위치
components/content/ContentRenderer.vue 게시물/페이지 본문
components/content/ContentMarkdownRenderer.vue 마크다운 문자열 기반 본문 렌더링
components/content/ProseHeading.vue h1~h6 제목
components/content/ProseImage.vue 본문 내 이미지
components/content/ProseList.vue 목록
components/content/ProseBlockquote.vue 인용구
components/content/ProseButton.vue 버튼
components/content/ProseCallout.vue Callout 카드
components/content/ProseToggle.vue Toggle 카드
components/content/ProseVideo.vue 비디오
components/content/ProseAudio.vue 오디오
components/content/ProseFile.vue 파일
components/content/ProseProduct.vue 상품 카드
components/content/ProseHeaderCard.vue 헤더 카드
components/content/ProseEmbed.vue YouTube, Twitter 임베드

관리자 페이지

파일 화면
pages/admin/index.vue 대시보드
pages/admin/login.vue 관리자 로그인
pages/admin/posts/index.vue 글 목록
pages/admin/posts/new.vue 글 작성
pages/admin/posts/[id].vue 글 수정
pages/admin/pages/index.vue 페이지 목록
pages/admin/tags/index.vue 태그 관리
pages/admin/tags/new.vue 태그 생성
pages/admin/tags/[id].vue 태그 수정
pages/admin/settings/index.vue 사이트 설정

공개 페이지

파일 화면
pages/index.vue
pages/posts/[slug].vue 블로그 글 상세
pages/tags/[slug].vue 태그별 글 목록
pages/pages/[slug].vue 고정 페이지 상세

서버 API

파일 기능
server/api/posts.get.js 게시물 목록 샘플 API
server/api/posts/[slug].get.js 게시물 상세 샘플 API
server/api/pages.get.js 고정 페이지 목록 샘플 API
server/api/pages/[slug].get.js 고정 페이지 상세 샘플 API
server/api/tags.get.js 태그 목록 샘플 API
server/routes/admin/api/auth/login.post.js 관리자 로그인 API
server/routes/admin/api/auth/logout.post.js 관리자 로그아웃 API
server/routes/admin/api/auth/me.get.js 관리자 세션 조회 API
server/routes/admin/api/posts.get.js 관리자 게시물 목록 API
server/routes/admin/api/posts.post.js 관리자 게시물 생성 API
server/routes/admin/api/posts/[id].get.js 관리자 게시물 상세 API
server/routes/admin/api/posts/[id].put.js 관리자 게시물 수정 API
server/routes/admin/api/posts/[id].delete.js 관리자 게시물 삭제 API
server/routes/admin/api/tags.get.js 관리자 태그 목록 API
server/routes/admin/api/tags.post.js 관리자 태그 생성 API
server/routes/admin/api/tags/[id].get.js 관리자 태그 상세 API
server/routes/admin/api/tags/[id].put.js 관리자 태그 수정 API
server/routes/admin/api/tags/[id].delete.js 관리자 태그 삭제 API
server/utils/content-schema.js Zod 콘텐츠 스키마
server/utils/sample-content.js 샘플 콘텐츠 저장소
server/utils/admin-auth.js 관리자 세션 쿠키 인증 유틸리티
server/utils/admin-post-input.js 관리자 게시물 입력값 검증 스키마
server/utils/admin-tag-input.js 관리자 태그 입력값 검증 스키마
server/repositories/postgres-client.js PostgreSQL 클라이언트
server/repositories/content-repository.js 콘텐츠 조회 저장소

데이터베이스

파일 기능
db/migrations/001_initial_schema.sql PostgreSQL 초기 테이블 스키마
db/migrations/002_seed_development.sql 개발용 샘플 데이터
db/migrations/003_add_tag_display_fields.sql 태그 표시 순서와 색상 필드 추가

설정/배포

파일 기능
package.json Nuxt 실행 스크립트와 의존성
nuxt.config.js Nuxt 앱 설정
tailwind.config.js Tailwind 테마 설정
assets/css/main.css 전역 스타일
composables/useMenuState.js 좌측 메뉴 열림 상태 관리
middleware/admin-auth.global.js 관리자 페이지 접근 인증
scripts/migrate-development-db.js 로컬 개발 DB 마이그레이션 실행
.env.example 환경 변수 예시
Dockerfile NAS 운영 이미지 빌드
docker-compose.yml NAS 컨테이너 실행 초안