아파트 실거래가를 쉽게 조회할 수 있는 웹 서비스입니다.
- 전국 아파트 실거래가 조회
- 지역별 필터링
- 아파트별 상세 정보
- 면적별 거래 내역
- 월세 정보 조회
- Frontend: Next.js 15, React, TypeScript
- UI: Tailwind CSS, ShadCN UI
- Database: MySQL 8.0 (Apppass)
- Deployment: Vercel
# 의존성 설치
npm install
# 개발 서버 실행
npm run dev
# 프로덕션 빌드
npm run build.env.local 파일을 생성하고 다음 변수들을 설정하세요:
# MySQL 설정
MYSQL_HOST=your_mysql_host_here
MYSQL_PORT=3306
MYSQL_USER=your_mysql_user_here
MYSQL_PASSWORD=your_mysql_password_here
MYSQL_DATABASE=your_database_name_here
# API Keys
SERVICE_KEY=your_service_key_here
# Google Analytics (선택사항)
NEXT_PUBLIC_GA_TRACKING_ID=your_ga_tracking_id
# 사이트 URL (프로덕션 환경)
NEXT_PUBLIC_BASE_URL=https://aptdeal.kr
# Google Search Console
NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION=google147b28c0e8d03660- 실제 데이터베이스 정보는
.env.local파일에만 저장하세요 .env.local파일은 절대 git에 커밋하지 마세요- 프로덕션 환경에서는 Vercel 대시보드에서 환경 변수를 설정하세요
npm run mysql:testnpm run mysql:setup데이터 적재는 별도 스크립트를 통해 진행됩니다.
프로젝트에는 자동으로 생성되는 sitemap.xml이 포함되어 있습니다:
- 정적 페이지: 메인 페이지, 지역별 조회 페이지
- 동적 페이지: 아파트별 상세 페이지, 면적별 페이지
- 자동 업데이트: 빌드 시 데이터베이스에서 최신 아파트 목록을 가져와 sitemap 생성
검색 엔진 크롤링을 위한 robots.txt가 자동으로 생성됩니다:
User-Agent: *
Allow: /
Disallow: /api/
Disallow: /_next/
Disallow: /admin/
Disallow: /private/
Sitemap: https://aptdeal.kr/sitemap.xml
- Google Search Console에 접속
- 속성 추가 → 도메인 또는 URL 접두어 선택
- 소유권 확인:
- HTML 파일 업로드
- HTML 태그 추가
- DNS 레코드 추가
- Sitemap 제출:
https://aptdeal.kr/sitemap.xml제출
- URL 검사 및 색인 생성 요청
- 메타 태그: 각 페이지에 적절한 title, description 설정
- 구조화된 데이터: JSON-LD 스키마 마크업 추가
- 이미지 최적화: Next.js Image 컴포넌트 사용
- 성능 최적화: 코드 스플리팅, 지연 로딩 적용
src/
├── app/ # Next.js App Router
│ ├── layout.tsx # 루트 레이아웃
│ ├── page.tsx # 메인 페이지
│ ├── region/ # 지역별 조회
│ ├── sitemap.ts # Sitemap 생성
│ └── robots.ts # Robots.txt 생성
├── components/ # 재사용 가능한 컴포넌트
│ ├── ui/ # ShadCN UI 컴포넌트
│ └── Sidebar.tsx # 사이드바 컴포넌트
├── lib/ # 유틸리티 함수
│ ├── mysql.ts # MySQL 연결
│ └── gtag.ts # Google Analytics
└── types/ # TypeScript 타입 정의
-
Vercel CLI 설치:
npm i -g vercel
-
배포:
vercel
-
환경 변수 설정:
- Vercel 대시보드에서 환경 변수 설정
NEXT_PUBLIC_BASE_URL을 프로덕션 URL로 설정
-
커스텀 도메인 추가:
- Vercel 대시보드 → Settings → Domains
aptdeal.kr도메인 추가
-
DNS 설정:
- A 레코드:
@→ Vercel IP - CNAME 레코드:
www→aptdeal.kr
- A 레코드:
MIT License
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request