Skip to content
@DogDogPaw

DogDogPaw

멍멍Paw

로고

한 마리의 유기견도 잊히지 않도록
DID를 통해 유기견의 존재를 기록하고 입양과 후원을 연결하는 웹 플랫폼


목차


프로젝트 소개

배경

반려동물 산업이 성장하는 이면에는 여전히 매년 10만 마리 이상의 유기견이 발생하고, 그중 약 2만여 마리(18.5%)가 안락사 되는 현실이 있습니다.

문제점

  • 신원 미등록: 유기동물은 고유한 식별번호 없이 '기록되지 않은 존재'로 남음
  • 높은 입양 진입장벽: 제한적인 정보와 불편한 입양 절차
  • 보호소 재정 부족: 수용 한계와 관리 비용 문제로 인한 안락사

솔루션

멍멍Paw는 DID(Decentralized Identifier) 기술블록체인을 활용하여:

  1. 유기견 비문을 통한 고유 신원 부여
  2. 실시간 채팅과 입양 후기로 입양 접근성 향상
  3. 자체 화폐(뼈다귀)를 통한 충전식 후원 시스템

주요 기능

1. DID 기반 신원 관리

  • 비문(코 지문) 인식을 통한 고유 DID 생성
  • 블록체인에 영구 기록되는 투명한 신원 시스템
  • Self-Sovereign Identity 방식의 VC/VP 관리

2. 입양 플랫폼

  • 실시간 채팅을 통한 입양 상담
  • 스토리 기능으로 유기견 일상 공유
  • 블록체인 기반 투명한 소유권 이전

3. 후원 시스템

  • 자체 화폐 '뼈다귀' (1뼈다귀 = 1,000원)
  • 토스 페이먼츠 연동 간편 결제
  • 후원자 내역 익명 공개

4. 입양 후기 & 스토리

  • 입양 완료 후 입양 후기 경험 공유
  • 일상 콘텐츠를 통한 유대감 형성
  • 커뮤니티 기반 소통

홈 화면

메인

시연 영상

1️회원가입 및 로그인

회원가입 및 로그인

2️둘러보기 및 후원

둘러보기 및 후원

3️반려동물 등록 및 채팅, 입양

반려동물 등록 및 입양


기술 스택

Frontend

React Next.js TypeScript TailwindCSS

Backend

Spring Boot NestJS Go FastAPI

Blockchain & DID

Hyperledger Besu MetaMask Solidity

Database

MySQL PostgreSQL Redis

AI/ML

TensorFlow Python

Infrastructure

Kubernetes Docker NCP


시스템 아키텍처

최종 아키텍처

아키텍처 특징

  • 마이크로서비스 아키텍처: 각 도메인별 독립적인 서비스 구성
  • gRPC 통신: 서비스 간 고성능 통신으로 응답 속도 향상
  • 프라이빗 블록체인: 3-node QBFT 합의 알고리즘 기반 Hyperledger Besu
  • CI/CD 자동화: NCP SourcePipeline 기반 자동 빌드 및 배포

주요 컴포넌트

1. Ingress Controller (NCP Kubernetes)

  • dogdogpaw Ingress: 프론트엔드(/) 및 API Gateway(/api) 라우팅
  • besu Ingress: 블록체인 노드 RPC 로드밸런싱

2. API Gateway (NestJS)

  • 모든 클라이언트 요청의 단일 진입점
  • JWT 토큰 관리 및 DID 검증
  • gRPC ↔ HTTP 프로토콜 변환
  • 서비스 간 라우팅 및 인증/인가

3. Service Layer

서비스 기술 스택 역할
Domain Service Spring Boot 입양, 후원, 채팅 등 핵심 비즈니스 로직
VC Service NestJS DID/VC 발급, 검증 및 관리
Indexer Service Golang 블록체인 이벤트 수집 및 동기화
ML Service FastAPI 비문 특징벡터 추출 및 유사도 판별
Faucet Service NestJS 테스트 토큰 발급

4. Blockchain Network

  • Hyperledger Besu: 프라이빗 네트워크
  • 합의 알고리즘: QBFT (Byzantine Fault Tolerant)
  • 노드 구성: 3-node 클러스터
  • 스마트 컨트랙트:
    • PetDID Contract: 반려동물 DID 관리
    • Guardian Contract: 보호자-반려동물 관계 관리

5. Database

  • MySQL: 도메인 데이터 (입양, 후원, 채팅 등)
  • PostgreSQL: DID/VC 데이터, 블록체인 이벤트
  • Redis: JWT 토큰, 캐시, Pub/Sub 메시지큐

주요 플로우

1. 회원가입 플로우

회원가입 프로세스:

  1. MetaMask 지갑 연결 및 주소 획득
  2. 이메일 인증
  3. 개인정보 입력 후 MetaMask 서명
  4. 개인정보 해시 + 지갑주소 블록체인 등록
  5. 사용자 DID 생성 완료

2. 로그인 플로우

로그인 프로세스:

  1. MetaMask 지갑 연결
  2. 지갑 주소로 사용자 조회
  3. VP(Verifiable Presentation) 생성 요청
  4. MetaMask 서명 후 VP 발급 (JWT 형식)
  5. JWT 토큰 저장 (1 VP = 1 Session)

3. 펫 등록 플로우

펫 등록 프로세스:

  1. 로그인 상태 확인 (JWT 토큰)
  2. 펫 기본 정보 입력
  3. 비문 사진 촬영 및 업로드
  4. AI 모델로 특징벡터 추출 (Siamese Network)
  5. 기존 비문 중복 체크
  6. 특징벡터 해시로 DID 생성
  7. MetaMask 서명 후 VC 발급
  8. 블록체인에 트랜잭션 기록
  9. Indexer가 이벤트 수집 및 DB 동기화

4. 펫 이전 (입양) 플로우

입양 프로세스:

sequenceDiagram
    actor Adopter as 입양자
    actor Adoptee as 피입양자
    participant Frontend
    participant Gateway as API Gateway
    participant Spring as Domain Service
    participant Chat as Chat Service
    participant ML as ML Service
    participant VC as VC Service
    participant Blockchain
    
    Note over Adopter,Spring: 1단계: 입양 공고 및 상담
    Adoptee->>Frontend: 입양 공고 작성
    Frontend->>Spring: 공고 저장
    
    Adopter->>Frontend: 입양 공고 조회
    Adopter->>Frontend: "입양 상담하기" 클릭
    Frontend->>Spring: 채팅방 생성 요청
    Spring-->>Chat: 1:1 채팅방 생성
    
    Adopter<<->>Adoptee: 실시간 채팅 상담
    
    Note over Adopter,Blockchain: 2단계: 입양자 서명
    Adopter->>Frontend: "입양 신청하기" 클릭
    Frontend->>Gateway: 입양 신청 요청
    Gateway->>Adopter: 서명 요청 (MetaMask)
    Adopter->>Gateway: 서명 완료
    Gateway->>Spring: 입양 신청 상태 저장
    Spring-->>Adoptee: 알림 전송
    
    Note over Adopter,Blockchain: 3단계: 비문 검증
    Adoptee->>Frontend: 입양 절차 시작
    Frontend->>Adoptee: 비문 사진 촬영 요청
    Adoptee->>Frontend: 비문 사진 업로드
    
    Frontend->>Gateway: 비문 검증 요청
    Gateway->>ML: 특징벡터 추출
    ML-->>Gateway: 특징벡터 반환
    
    Gateway->>Spring: 기존 비문과 유사도 비교
    Spring->>Spring: 유사도 계산
    
    alt 유사도 >= 85%
        Spring-->>Gateway: 검증 성공
        
        Note over Adopter,Blockchain: 4단계: 소유권 이전
        Gateway->>Adoptee: 서명 요청 (MetaMask)
        Adoptee->>Gateway: 서명 완료
        
        Gateway->>VC: VC 업데이트 요청
        VC->>Blockchain: Guardian 변경 트랜잭션<br/>(Adoptee → Adopter)
        Blockchain-->>VC: 트랜잭션 완료
        
        VC-->>Gateway: VC 이전 완료
        Gateway->>Spring: 입양 완료 상태 저장
        Spring-->>Frontend: 입양 완료
        
        Frontend->>Chat: 입양 완료 알림 전송
        Frontend-->>Adopter: 입양 완료 메시지
        Frontend-->>Adoptee: 입양 완료 메시지
        
    else 유사도 < 85%
        Spring-->>Gateway: 검증 실패
        Gateway-->>Frontend: 비문 불일치
        Frontend-->>Adoptee: 재촬영 요청
    end
Loading

데이터베이스 설계

ERD (Entity Relationship Diagram)

멍멍paw_erd

👥 팀 소개

팀명: 더워멍냥

이름 역할 소속 이메일 GitHub
모진영 팀장, 풀스택 개발 상명대학교 [email protected] @ahwlsqja
신윤진 백엔드 개발 상명대학교 [email protected] @nomad1jin
박수현 프론트엔드 개발 상명대학교 [email protected] @onion-0

공모전

  • 제9회 K-PaaS 활용 공모전 - 서비스 개발 부문 출품 (2025.10.31)

문의

프로젝트에 대한 문의사항이 있으시면 아래로 연락주세요:


Made with by Team 더워멍냥

Popular repositories Loading

  1. Backend Backend Public

    멍멍포 백엔드 레포지토리입니다.

    Java

  2. blockchain-contract blockchain-contract Public

    DID와 후원을 위한 토큰 관리 그리고 기타 컨트렉트 레포지토리 입니다.

    Solidity

  3. Frontend Frontend Public

    명냥포 플랫폼의 프론트엔드 입니다.

    TypeScript

  4. dogdogpaw-api-gateway dogdogpaw-api-gateway Public

    2025 k-paas 공모전 출품작 pet did 서비스의 단일 진입점인 api-gateway의 nestjs 구현으로 VP 기반 인증/인가를 처리하고 blockchain-first 패턴을 적용해 트랜잭션이 컨펌이 되면 bullqueue를 통해 여러 마이크로 서버의 sync를 맞추는 패턴을 적용하였습니다.

    TypeScript

  5. .github .github Public

  6. vc-server vc-server Public

    TypeScript

Repositories

Showing 9 of 9 repositories

Top languages

Loading…

Most used topics

Loading…