================================================================================
BizCard.kr 프로젝트 진행 현황
================================================================================
최종 업데이트: 2025-10-26 23:30
전체 진행률: 약 55% 완료
MVP 기준: 85% 완료
================================================================================
[✅ 완료된 작업]
================================================================================
1. 서버 환경 구축
✅ 리눅스 계정 생성 (bizcard)
✅ 디렉토리 구조 생성 (public_html, private, logs, scripts, backups)
✅ Apache 가상호스트 설정 (HTTP/HTTPS)
✅ SSL 인증서 발급 (Let's Encrypt)
✅ 보안 설정 (private 디렉토리 차단, DB 크리덴셜 분리)
✅ 로그 관리 시스템 구축 (자동 로테이션, 6개월 보관)
✅ 백업 시스템 추가 (매일 새벽 3시)
2. 데이터베이스 설계 및 구축
✅ 9개 테이블 생성:
- users (사용자 정보)
- cards (명함 정보)
- card_social_links (SNS 링크)
- card_careers (경력사항) ← 신규 추가
- templates (명함 템플릿)
- card_views (조회 통계)
- card_saves (저장 기록)
- user_sessions (로그인 세션)
✅ 기본 템플릿 5개 삽입
✅ 인덱스 최적화
✅ 외래키 관계 설정
3. 프론트엔드 개발
✅ 랜딩 페이지 (index.php)
- 히어로 섹션 (하늘색 그라데이션 디자인)
- 기능 소개 섹션
- 사용 방법 3단계
- CTA 섹션
- 푸터
- URL 확인 기능
✅ 반응형 디자인 (모바일/태블릿/데스크톱)
✅ 애니메이션 효과 (스크롤 시 페이드인)
✅ 공통 CSS 스타일시트 (/assets/css/style.css)
✅ JavaScript 인터랙션
4. 사용자 인증 시스템
✅ 회원가입 페이지 (register.php)
- 이메일, 사용자명, 이름, 비밀번호 입력
- 실시간 유효성 검사
- 중복 체크 (이메일, 사용자명)
- 비밀번호 표시/숨김 기능
- CSRF 토큰 보안
✅ 로그인 페이지 (login.php)
- 이메일/비밀번호 로그인
- Remember Me (로그인 상태 유지)
- 세션 관리
- 계정 상태 확인
✅ 로그아웃 기능 (logout.php)
- 세션 파괴
- 쿠키 삭제
5. 사용자 대시보드
✅ 대시보드 페이지 (dashboard.php)
- 환영 메시지
- 통계 카드 3개 (총 명함 수, 조회수, 저장수)
- 명함 목록 표시
- 빈 상태 UI (명함 없을 때)
- 명함 생성/수정/삭제 버튼
- 세션 메시지 표시 (성공/에러)
✅ 공통 네비게이션 (includes/nav.php)
- 대시보드, 내 정보 링크
- 사용자 드롭다운 메뉴
- 로그아웃 링크
6. 명함 생성 기능 (card-create.php)
✅ 템플릿 선택 (5개 템플릿)
✅ 기본 정보 입력 (이름, 회사, 직책, 부서)
✅ 연락처 정보
- 전화번호 (숫자만 입력)
- 휴대폰 (숫자만 입력)
- 이메일
- 웹사이트 (https:// 자동 추가)
- 주소 (Daum 주소 API)
- 상세주소
✅ 이미지 업로드
- 프로필 사진 (미리보기)
- 회사 로고 (미리보기)
- 파일 검증 (형식, 크기)
✅ 자기소개 (최대 500자)
✅ SNS 링크 추가/삭제
- 플랫폼 선택 (Facebook, Instagram, Twitter, LinkedIn, YouTube, GitHub, Blog, 기타)
- URL 입력
- 동적 추가/삭제
✅ 경력사항 추가/삭제
- 시작일/종료일 (Bootstrap Datepicker)
- 재직중 버튼
- 회사명, 직책, 업무 설명
- 최근 근무지부터 입력 (순서 유지)
✅ 공개/비공개 설정
✅ QR코드 자동 생성
7. 명함 수정 기능 (card-edit.php)
✅ 모든 기본 정보 수정
✅ 이미지 수정 (기존 이미지 미리보기)
✅ SNS 링크 수정
- 기존 링크 불러오기
- 추가/삭제
✅ 경력사항 수정
- 기존 경력 불러오기
- 날짜 선택기 적용
- 추가/삭제
✅ 수정 완료 후 1초 대기 → 대시보드 이동
8. 명함 삭제 기능 (card-delete.php)
✅ 삭제 확인 페이지
- 명함 미리보기
- 경고 메시지
- 삭제될 데이터 목록 표시
✅ 관련 데이터 전체 삭제
- SNS 링크
- 경력사항
- 조회 기록
- 저장 기록
✅ 이미지 파일 삭제 (프로필, 로고, QR코드)
✅ 명함 상태 변경 (deleted)
✅ 트랜잭션 처리
9. 명함 보기 페이지 (card-view.php)
✅ 실제 명함 스타일 디자인
- 프로필 이미지/플레이스홀더
- QR코드 표시
- 이름, 직책, 부서
- 회사명
- 연락처 (전화, 휴대폰, 이메일)
✅ 상세 정보 섹션
- 소개
- 회사 정보 (로고, 주소, 지도 링크)
- 경력사항 (회사명 / 직책 형태)
- SNS 링크 (아이콘 + 단축 URL)
✅ 액션 버튼
- 연락처 저장 (vCard 다운로드)
- 공유하기 (Web Share API / URL 복사)
✅ SEO 최적화
- Meta Description
- Keywords
- Open Graph (Facebook, LinkedIn)
- Twitter Card
- Canonical URL
✅ 카카오맵 연동 (기본 주소만 검색)
✅ 공통 CSS 적용
✅ 반응형 디자인
10. 짧은 URL 라우팅
✅ .htaccess 설정
✅ bizcard.kr/username → card-view.php?id=XX
✅ URL 유효성 검사
11. QR코드 생성
✅ phpqrcode 라이브러리 적용
✅ 명함 생성 시 자동 생성
✅ /uploads/qrcodes/ 디렉토리 저장
12. vCard 다운로드
✅ vcard-download.php
✅ iOS/Android 호환
✅ 연락처 정보 포함
13. 통계 및 분석
✅ 명함 조회 기록 저장 (card_views)
✅ IP 주소, User Agent, Referer 저장
✅ 디바이스 타입 분석 (데스크톱/모바일/태블릿)
✅ 24시간 중복 조회 방지
✅ 조회수 카운트 (cards.view_count)
✅ 저장 횟수 카운트 (cards.save_count)
14. 보안 구현
✅ CSRF 토큰 검증
✅ XSS 방지 (htmlspecialchars)
✅ SQL Injection 방지 (PDO prepared statements)
✅ 파일 업로드 보안 (확장자, 크기 검증)
✅ 세션 보안 (httponly, secure 쿠키)
✅ 비밀번호 해싱 (password_hash)
✅ private 디렉토리 웹 접근 차단
15. 외부 라이브러리 적용
✅ Bootstrap 5.3.0
✅ Bootstrap Icons 1.11.0
✅ jQuery 3.7.1
✅ Bootstrap Datepicker 1.10.0
✅ Daum 주소 API
✅ phpqrcode
================================================================================
[❌ 미완료 작업]
================================================================================
1. 명함 템플릿 디자인 (우선순위: 높음)
❌ 템플릿별 CSS 디자인 5개
- 심플 화이트
- 모던 블루
- 미니멀 그레이
- 컬러풀 그라데이션
- 클래식 비즈니스
❌ 템플릿 미리보기 기능
❌ 커스터마이징 옵션 (배경색, 글자색)
2. 사용자 프로필 (우선순위: 중간)
❌ 프로필 수정 페이지 (profile.php)
❌ 비밀번호 변경 기능
❌ 프로필 이미지 업로드
❌ 계정 삭제 기능
3. 통계 대시보드 상세 (우선순위: 중간)
❌ 일별/주별/월별 통계 차트
❌ 통계 상세 페이지
❌ 디바이스별 분석 그래프
❌ 리퍼러 분석 그래프
4. 비밀번호 찾기 (우선순위: 낮음)
❌ 비밀번호 찾기 페이지 (forgot-password.php)
❌ 이메일 발송 기능
❌ 비밀번호 재설정 페이지
❌ 재설정 토큰 관리
5. 요금제 및 결제 (우선순위: 낮음)
❌ 요금제 페이지
❌ 결제 연동 (아임포트, 토스페이먼츠)
❌ 구독 관리
❌ 플랜 업그레이드/다운그레이드
6. 관리자 페이지 (우선순위: 낮음)
❌ 관리자 로그인
❌ 사용자 관리
❌ 명함 관리
❌ 템플릿 관리
❌ 통계 대시보드
7. 추가 기능 (우선순위: 낮음)
❌ 명함 검색 기능
❌ 인기 명함 순위
❌ 명함 즐겨찾기
❌ 명함 댓글/평가
❌ 다국어 지원 (영어)
❌ PWA (Progressive Web App)
❌ 푸시 알림
8. SEO 및 마케팅 (우선순위: 중간)
❌ 사이트맵 자동 생성
❌ robots.txt 설정
❌ 구글 애널리틱스 연동
❌ 블로그/FAQ 페이지
================================================================================
[핵심 기능 완성도]
================================================================================
✅ 회원가입/로그인/로그아웃 - 100%
✅ 대시보드 - 100%
✅ 명함 생성 - 100%
✅ 명함 수정 - 100%
✅ 명함 삭제 - 100%
✅ 명함 보기 - 100%
✅ QR코드 생성 - 100%
✅ vCard 다운로드 - 100%
✅ 짧은 URL - 100%
✅ 공유 기능 - 100%
✅ SNS 링크 관리 - 100%
✅ 경력사항 관리 - 100%
✅ 조회수/저장수 통계 - 100%
❌ 템플릿 디자인 - 0% (DB만 준비)
❌ 사용자 프로필 수정 - 0%
❌ 통계 상세 페이지 - 0%
================================================================================
[다음 우선순위 작업]
================================================================================
1. 템플릿 디자인 다양화 (높음)
- 5가지 스타일 CSS 작성
- card-view.php에 템플릿별 스타일 적용
2. 사용자 프로필 수정 페이지 (중간)
- 이름, 이메일 수정
- 비밀번호 변경
- 계정 삭제
3. 통계 대시보드 상세 (중간)
- Chart.js 적용
- 일별/주별/월별 그래프
4. SEO 최적화 (중간)
- 사이트맵 생성
- robots.txt
- 구글 애널리틱스
================================================================================
[파일 구조]
================================================================================
/home/bizcard/public_html/
├── index.php (랜딩 페이지)
├── register.php (회원가입)
├── login.php (로그인)
├── logout.php (로그아웃)
├── dashboard.php (대시보드)
├── card-create.php (명함 생성)
├── card-edit.php (명함 수정)
├── card-delete.php (명함 삭제)
├── card-view.php (명함 보기)
├── vcard-download.php (vCard 다운로드)
├── .htaccess (URL 라우팅)
├── config/
│ ├── config.php (메인 설정)
│ └── db_config.php → /home/bizcard/private/config/db_config.php
├── includes/
│ ├── nav.php (공통 네비게이션)
│ └── qrcode_helper.php (QR코드 생성 헬퍼)
├── assets/
│ └── css/
│ └── style.css (공통 스타일시트)
├── uploads/
│ ├── profiles/ (프로필 이미지)
│ ├── logos/ (회사 로고)
│ └── qrcodes/ (QR코드)
└── vendor/
└── phpqrcode/ (QR코드 라이브러리)
/home/bizcard/private/
└── config/
└── db_config.php (DB 크리덴셜)
================================================================================