'use client'; import { useState, useEffect, useRef } from 'react'; import ContactForm from '../components/ContactForm'; /* ─── Counter Hook ─── */ function useCounter(target: number, duration = 1400) { const [count, setCount] = useState(0); const started = useRef(false); const ref = useRef(null); useEffect(() => { const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting && !started.current) { started.current = true; const step = target / (duration / 16); let current = 0; const timer = setInterval(() => { current += step; if (current >= target) { setCount(target); clearInterval(timer); } else { setCount(Math.floor(current)); } }, 16); } }, { threshold: 0.3 } ); if (ref.current) observer.observe(ref.current); return () => observer.disconnect(); }, [target, duration]); return { count, ref }; } /* ─── Data ─── */ const portfolio = [ { title: '주식 자동 매매 프로그램', category: '핀테크 · 알고트레이딩', desc: '텔레그램 연동 주식 자동 매매 시스템. 기술적 분석 신호 기반 자동 매수/매도, 포트폴리오 관리 기능 포함.', tags: ['Python', 'Telegram API', '증권사 API', 'SQLite'], status: '직접 운영 중', statusType: 'live', accentFrom: '#011225', accentTo: '#01204a', accentColor: 'text-emerald-400', borderAccent: 'border-emerald-400/30', }, { title: '로또 번호 분석 서비스', category: '데이터 분석 · 구독 서비스', desc: '전체 로또 회차 빅데이터 분석 플랫폼. 출현 빈도, 핫/콜드 번호, 패턴 분석 및 매주 번호 조합 자동 생성.', tags: ['Python', 'FastAPI', 'PostgreSQL', 'Next.js'], status: 'NAS 서버 운영 중', statusType: 'live', accentFrom: '#1a0a00', accentTo: '#3d1a00', accentColor: 'text-amber-400', borderAccent: 'border-amber-400/30', }, { title: 'Gmail 자동화 RPA', category: 'RPA · 업무 자동화', desc: '거래처 이메일 수신 시 자동 분류, 답장 초안 작성, 담당자 알림 전송하는 Gmail 자동화 시스템.', tags: ['Python', 'Gmail API', 'Google Apps Script'], status: '납품 완료', statusType: 'done', accentFrom: '#200a0a', accentTo: '#4a1010', accentColor: 'text-red-400', borderAccent: 'border-red-400/20', }, { title: '쇼핑몰 가격 모니터링 봇', category: '웹 스크래핑 · 알림 자동화', desc: '경쟁사 쇼핑몰의 특정 상품 가격을 매일 모니터링하여 변동 시 텔레그램으로 즉시 알림.', tags: ['Python', 'Selenium', 'Telegram Bot'], status: '납품 완료', statusType: 'done', accentFrom: '#0d0a2e', accentTo: '#1a0f5c', accentColor: 'text-violet-400', borderAccent: 'border-violet-400/20', }, { title: '영업 일보 자동화 시스템', category: '엑셀 자동화 · 보고서 생성', desc: '영업 데이터 엑셀 파일을 자동으로 집계하여 일별/주별/월별 영업 일보 PDF를 생성하고 이메일 발송.', tags: ['Python', 'OpenPyXL', 'ReportLab'], status: '납품 완료', statusType: 'done', accentFrom: '#012030', accentTo: '#013d50', accentColor: 'text-cyan-400', borderAccent: 'border-cyan-400/20', }, { title: '부동산 공시지가 수집 시스템', category: '공공 데이터 · API 연동', desc: '국토교통부 공공 API를 통해 특정 지역 공시지가를 주기적으로 수집·저장하고 변동 알림 제공.', tags: ['Python', '공공데이터 API', 'PostgreSQL', 'Telegram'], status: '납품 완료', statusType: 'done', accentFrom: '#04102b', accentTo: '#0a2060', accentColor: 'text-blue-400', borderAccent: 'border-blue-400/20', }, ]; const process = [ { num: '01', title: '무료 상담', desc: '전화 또는 이메일로 요구사항 파악 (30분 이내)', sub: '비용 없음 · 부담 없음', icon: ( ), }, { num: '02', title: '견적 제안', desc: '개발 범위, 일정, 비용 상세 견적서 제공', sub: '1~3일 이내 발송', icon: ( ), }, { num: '03', title: '계약 체결', desc: '계약서 작성 및 계약금(30%) 입금 후 개발 시작', sub: '계약서 포함 · 안전 거래', icon: ( ), }, { num: '04', title: '개발 진행', desc: '주 1회 이상 진행 상황 공유 및 중간 검수', sub: '투명한 진행 보고', icon: ( ), highlight: true, }, { num: '05', title: '최종 납품', desc: '완성본 인도 + 사용 교육 + 소스코드 전달', sub: '소스코드 전체 제공', icon: ( ), }, { num: '06', title: 'AS 지원', desc: '1개월 무상 기술 지원 및 평생 유지보수 가능', sub: '1개월 무상 + 평생 AS', icon: ( ), }, ]; /* ─── Sub-components ─── */ function StatCard({ target, suffix = '', label, sublabel, pulse = false, accentClass, }: { target: number; suffix?: string; label: string; sublabel: string; pulse?: boolean; accentClass: string; }) { const { count, ref } = useCounter(target); return (
{count}{suffix}
{pulse && } {label}
{sublabel}
); } /* ─── Main Page ─── */ export default function FreelancePage() { return (
{/* ─── Hero ─── */}
현재 프로젝트 접수 가능

맞춤 개발,
처음부터 직접 만들어드립니다

검증된 코드 품질을 합리적인 가격에 경험하세요. 아이디어만 있어도 충분합니다.

{/* ─ Live Counters ─ */}
{/* developer tag */}
쟁토리
시니어 백엔드 개발자 · Python / Java / Next.js
{['Python', 'Java', 'Next.js', 'Docker'].map(t => ( {t} ))}
{/* ─── 포트폴리오 ─── */}

PORTFOLIO

직접 개발한 프로젝트

실제 운영 중인 서비스와 납품 완료 프로젝트입니다

{portfolio.map((item) => (
{/* card header */}
{/* grid texture */}
{item.category}

{item.title}

{item.statusType === 'live' ? (
운영 중
) : (
납품 완료
)}
{/* card body */}

{item.desc}

{item.tags.map((tag) => ( {tag} ))}
))}
{/* 추가 문구 */}

위 프로젝트 외에도 다양한 프로젝트 경험이 있습니다 ·{' '} 포트폴리오 전체 요청

{/* ─── 진행 프로세스 ─── */}

PROCESS

진행 프로세스

투명하고 체계적인 6단계로 진행됩니다

{/* Vertical timeline */}
{/* connecting line */}
{process.map((p) => (
{/* step circle */}
{p.icon}
{/* content */}
STEP {p.num} {p.highlight && ( 현재 진행 )}

{p.title}

{p.desc}

{p.sub}
))}
{/* ─── 기술 스택 & 강점 ─── */}
{/* Tech Stack */}

개발 가능 기술 스택

{[ { label: 'Backend', techs: ['Python', 'Java', 'Spring Boot', 'FastAPI', 'Node.js'] }, { label: 'Frontend', techs: ['Next.js', 'React', 'TypeScript', 'Tailwind CSS'] }, { label: 'Database', techs: ['PostgreSQL', 'MySQL', 'Redis', 'SQLite'] }, { label: 'Infra / API', techs: ['Docker', 'AWS', 'Telegram API', '공공 API'] }, ].map((group) => (
{group.label}
{group.techs.map((t) => ( {t} ))}
))}
{/* 신뢰 포인트 */}

신뢰할 수 있는 이유

    {[ { icon: '🏢', title: '대기업 백엔드 경력', desc: '대기업 수준의 코드 품질과 개발 프로세스 적용' }, { icon: '🖥️', title: '운영 중인 실제 서비스', desc: 'NAS 서버에서 로또·주식 시스템 직접 운영' }, { icon: '📄', title: '계약서 + 소스코드 제공', desc: '계약서 포함, 완성 후 소스코드 전체 인도' }, { icon: '🔒', title: '1개월 무상 AS 보장', desc: '납품 후 버그·문제 발생 시 무료 수정' }, { icon: '⚡', title: '24시간 내 답변', desc: '문의 후 하루 이내 답변 보장' }, ].map((item) => (
  • {item.icon}
    {item.title}
    {item.desc}
  • ))}
{/* ─── 문의 폼 ─── */}

CONTACT

프로젝트 문의

아이디어만 있어도 충분합니다. 24시간 이내 답변드립니다.

{/* 왼쪽: 간단 안내 */}

문의 전 체크리스트

    {[ '어떤 업무를 자동화/개발하고 싶은지', '현재 사용 중인 시스템 (엑셀, ERP 등)', '희망하는 완성 일정', '예산 범위 (대략적으로도 OK)', ].map((item, i) => (
  • {i + 1} {item}
  • ))}
24h
이내 답변 보장
영업일 기준 · 주말 포함
{/* 오른쪽: 폼 */}
); }