## 프로젝트 - 이름 : Clinic AD ## 기술 스택 - React 19 + TypeScript - Vite - Tailwind CSS - TanStack Query - Zustand ## 디렉토리 구조 ```bash src/ ├── app/ # 애플리케이션 진입점 및 전역 설정 (Router, Providers, 글로벌 스타일) │ └── providers/ # React Context Provider 모음 (QueryProvider 등) ├── assets/ # 정적 파일 (이미지, 폰트, SVG 아이콘 등) ├── components/ # 도메인에 종속되지 않는 공통 UI 컴포넌트 (버튼, 카드, 디자인 시스템) ├── features/ # 핵심 비즈니스 로직 및 도메인 영역 (이 구조의 핵심) │ ├── home/ # 홈(랜딩) 도메인 │ │ ├── content/ # 해당 도메인 전용 UI 텍스트·카피 (정적 콘텐츠) │ │ ├── hooks/ # 해당 도메인 전용 커스텀 훅 │ │ └── ui/ # 해당 도메인 전용 UI 컴포넌트 │ ├── channelconnect/ # 채널 연결 도메인 │ │ ├── constants/ # 채널 목록 등 상수 │ │ ├── hooks/ # 연결 플로우용 훅 │ │ ├── store/ # 연결 채널·카운트 등 상태 │ │ ├── types/ # 도메인 타입 │ │ ├── utils/ # 채널 아이콘 매핑 등 │ │ └── ui/ # 타이틀·섹션 UI │ ├── distribution/ # 콘텐츠 배포 도메인 │ │ ├── constants/ # 문구·옵션 상수 │ │ ├── hooks/ # 배포·예약 게시 훅 │ │ ├── store/ # 예약·선택 채널 등 상태 │ │ ├── types/ # 도메인 타입 │ │ └── ui/ # 채널 선택, 예약 게시, 미리보기 등 │ ├── performance/ # 성과 도메인 │ │ ├── constants/ # 지표·섹션 설정 상수 │ │ ├── hooks/ # 데이터 로딩·필터 훅 │ │ ├── store/ # 화면 전용 상태 │ │ ├── types/ # 지표·성과 타입 │ │ └── ui/ # 요약, 퍼널, 히트맵, 추천 등 │ ├── report/ # 리포트 도메인 │ │ ├── config/ # 섹션 ID·레이블 등 UI 설정값 │ │ ├── hooks/ # 해당 도메인 전용 커스텀 훅 │ │ ├── mocks/ # API 연동 전 임시 목업 데이터 │ │ ├── types/ # 해당 도메인 전용 타입 정의 │ │ └── ui/ # 해당 도메인 전용 UI 컴포넌트 │ └── plan/ # 마케팅 플랜 도메인 (report와 동일한 구조) │ ├── config/ │ ├── hooks/ │ ├── mocks/ │ ├── types/ │ └── ui/ ├── hooks/ # 전역에서 사용하는 공통 훅 (useInView 등) ├── layouts/ # 페이지 레이아웃 (GNB, SubNav, Footer 등) ├── pages/ # 라우팅과 1:1 매칭되는 페이지 진입점 (features의 컴포넌트만 조립) ├── services/ # 공통 API 클라이언트 설정 (Axios 인스턴스, 인터셉터 등) ├── store/ # 전역 상태 관리 (사용자 세션, 테마 등) ├── types/ # 여러 도메인에서 공유하는 공통 타입 정의 └── utils/ # 공통 유틸리티 함수 (숫자 포맷팅, URL 처리 등) ``` ## 시작하기 ### 설치 ```bash npm install ``` ### 실행 ```bash npm run dev ```