Skip to content

hamnnnyy/in-clude

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Include - 대안 신용평가 플랫폼

신용점수가 없어도 금융의 문을 열어드립니다. AI 기반 대안 신용평가 서비스

Include Logo

🚀 프로젝트 개요

Include는 기존 신용평가 시스템의 한계를 극복하기 위해 개발된 대안 신용평가 플랫폼입니다. 전통적인 신용정보가 없는 사용자들도 다양한 데이터를 통해 신용도를 평가받을 수 있도록 합니다.

주요 특징

  • 🎯 대안 데이터 활용: 통신비, 공과금, 구독 서비스 등 다양한 데이터로 신용도 평가
  • 🤖 AI 기반 알고리즘: 머신러닝을 활용한 정확한 신용점수 계산
  • 📱 반응형 디자인: 모바일, 태블릿, 데스크톱 모든 환경에서 최적화
  • 🔒 보안 강화: Rate Limiting, 입력값 검증, 보안 헤더 등 종합적인 보안 시스템
  • 📊 시각화: Chart.js를 활용한 직관적인 데이터 시각화
  • 🎨 현대적 UI/UX: 깔끔하고 사용자 친화적인 인터페이스

🛠️ 기술 스택

Frontend

  • Next.js 14 - React 기반 풀스택 프레임워크
  • TypeScript - 타입 안전성 보장
  • Tailwind CSS - 유틸리티 퍼스트 CSS 프레임워크
  • Chart.js - 데이터 시각화
  • Zustand - 상태 관리
  • TanStack Query - 서버 상태 관리

Backend

  • Next.js API Routes - 서버리스 API
  • NextAuth.js - 인증 시스템
  • Supabase - 데이터베이스 및 인증
  • Zod - 스키마 검증

보안

  • Rate Limiting - API 요청 제한
  • 입력값 검증 - XSS, SQL 인젝션 방지
  • 보안 헤더 - CSP, HSTS 등
  • CSRF 보호 - 크로스 사이트 요청 위조 방지

📋 주요 기능

1. 사용자 인증

  • 이메일 기반 회원가입/로그인
  • 비밀번호 강도 검증
  • 세션 관리
  • 자동 리디렉션

2. 데이터 입력 시스템

  • 기본 정보: 개인정보, 직업, 소득 등
  • 금융 정보: 계좌, 신용카드, 대출 정보
  • 대안 데이터: 통신비, 공과금, 구독 서비스
  • 행동 데이터: 온라인 활동, 디지털 결제 패턴

3. 신용점수 계산

  • 6가지 요인 분석:
    • 납부 이력 (35%)
    • 재정 안정성 (25%)
    • 신용 활용도 (20%)
    • 신용 기간 (10%)
    • 신용 다양성 (10%)
    • 행동 패턴 (5%)

4. 대시보드

  • 신용점수 및 등급 표시
  • 요인별 점수 분석
  • 시각적 차트 (게이지, 막대, 비교 차트)
  • 빠른 작업 버튼

5. 개선 방안

  • 맞춤형 신용도 개선 가이드
  • 구체적인 액션 아이템
  • 목표 설정 기능
  • 진행률 추적

6. 상세 분석

  • 요인별 상세 분석
  • 점수 트렌드 분석
  • 벤치마킹
  • 강점/약점 분석

🚀 시작하기

사전 요구사항

  • Node.js 18.0 이상
  • npm 또는 yarn
  • Supabase 계정

설치 및 실행

  1. 저장소 클론

    git clone https://github.com/yourusername/include.git
    cd include
  2. 의존성 설치

    npm install
  3. 환경 변수 설정

    cp .env.example .env.local

    .env.local 파일에 다음 변수들을 설정하세요:

    NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
    SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
    NEXTAUTH_URL=http://localhost:3000
    NEXTAUTH_SECRET=your_nextauth_secret
  4. Supabase 데이터베이스 설정

    • Supabase 프로젝트 생성
    • 데이터베이스 스키마 실행 (SQL 파일 참조)
    • RLS (Row Level Security) 정책 설정
  5. 개발 서버 실행

    npm run dev
  6. 브라우저에서 확인

    http://localhost:3000
    

📁 프로젝트 구조

include/
├── app/                    # Next.js App Router
│   ├── api/               # API 라우트
│   │   ├── auth/         # 인증 관련 API
│   │   ├── user/         # 사용자 데이터 API
│   │   └── credit/       # 신용점수 계산 API
│   ├── dashboard/        # 대시보드 페이지
│   ├── input/           # 데이터 입력 페이지
│   ├── login/           # 로그인 페이지
│   ├── register/        # 회원가입 페이지
│   ├── recommendations/ # 개선 방안 페이지
│   ├── analysis/        # 상세 분석 페이지
│   └── globals.css      # 전역 스타일
├── components/          # React 컴포넌트
│   ├── charts/         # 차트 컴포넌트
│   ├── input/          # 입력 폼 컴포넌트
│   ├── providers/      # Context Provider
│   └── ui/            # UI 컴포넌트
├── lib/                # 유틸리티 함수
│   ├── auth.ts        # NextAuth 설정
│   ├── security.ts    # 보안 유틸리티
│   ├── rate-limit.ts  # Rate Limiting
│   └── Supabase.ts    # Supabase 클라이언트
├── store/             # Zustand 스토어
├── types/             # TypeScript 타입 정의
└── middleware.ts      # Next.js 미들웨어

🔧 API 문서

인증 API

POST /api/auth/register

회원가입

{
    "displayName": "홍길동",
    "email": "test@example.com",
    "password": "Test123!",
    "confirmPassword": "Test123!",
    "phone": "010-1234-5678"
}

POST /api/auth/[...nextauth]

NextAuth.js 인증 엔드포인트

사용자 데이터 API

POST /api/user/data

사용자 데이터 저장

{
    "birthYear": 1990,
    "gender": "male",
    "occupation": "개발자",
    "educationLevel": "bachelor",
    "annualIncome": 50000000
    // ... 기타 필드들
}

신용점수 API

POST /api/credit/calculate

신용점수 계산

GET /api/credit/score

최신 신용점수 조회

🧪 테스트

테스트 실행

npm run test

테스트 가이드

자세한 테스트 시나리오는 TEST_GUIDE.md를 참조하세요.

🔒 보안

보안 기능

  • Rate Limiting (API별 요청 제한)
  • 입력값 검증 및 Sanitization
  • XSS 및 SQL 인젝션 방지
  • CSRF 보호
  • 보안 헤더 설정

보안 가이드

자세한 보안 설정은 SECURITY_GUIDE.md를 참조하세요.

🚀 배포

Vercel 배포

  1. Vercel 계정 연결

    npm i -g vercel
    vercel login
  2. 프로젝트 배포

    vercel
  3. 환경 변수 설정

    • Vercel 대시보드에서 환경 변수 설정
    • 프로덕션 환경 변수 업데이트

환경 변수 설정

NEXT_PUBLIC_SUPABASE_URL=your_production_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_production_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_production_supabase_service_role_key
NEXTAUTH_URL=https://yourdomain.com
NEXTAUTH_SECRET=your_production_nextauth_secret

📊 성능 최적화

구현된 최적화

  • 이미지 최적화: Next.js Image 컴포넌트 사용
  • 코드 스플리팅: 페이지별 자동 코드 분할
  • 캐싱: TanStack Query를 활용한 서버 상태 캐싱
  • 번들 최적화: 불필요한 코드 제거

성능 모니터링

  • Core Web Vitals 측정
  • Lighthouse 점수 모니터링
  • 번들 크기 분석

🤝 기여하기

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

📞 연락처

프로젝트 링크: https://github.com/yourusername/include

🙏 감사의 말

  • Next.js - 풀스택 React 프레임워크
  • Supabase - 오픈소스 Firebase 대안
  • Tailwind CSS - 유틸리티 퍼스트 CSS 프레임워크
  • Chart.js - 데이터 시각화 라이브러리

Include - 신용점수가 없어도 금융의 문을 열어드립니다. 🚀

About

신용점수가 없어도 금융의 문을 열어드립니다. AI 기반 대안 신용평가 서비스

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors