Skip to content

wocks1123/arcademarket

Repository files navigation

Arcade Market

RPG 게임 아이템을 안전하게 거래할 수 있는 마켓플레이스

Java Spring Boot Vue Nuxt PostgreSQL

개요

Arcade-RPG(가상 게임)에서 획득한 아이템을 포인트 기반으로 안전하게 거래할 수 있는 플랫폼입니다. 플레이어는 게임에서 얻은 아이템을 판매하거나, 원하는 아이템을 구매하여 게임 경험을 확장할 수 있습니다.

주요 기능

회원 관리

  • 회원가입 및 로그인 및 인증
  • 프로필 조회

포인트 시스템

  • 포인트 충전 (1,000 ~ 1,000,000)
  • 잔액 조회
  • 충전/사용/획득 이력 추적

인벤토리 관리

  • 보유 아이템 조회
  • 아이템 획득 시뮬레이션
  • 상태별 필터링 (OWNED/LISTED/SOLD)

아이템 거래

  • 판매 등록 (가격 설정, 100 ~ 10,000,000P)
  • 마켓 목록 조회 (필터링, 정렬)
  • 아이템 구매 (트랜잭션 처리)
  • 거래 내역 확인

기술 스택

Backend

Java Spring Hibernate Vue.js Nuxt.js TypeScript Docker Swagger

아키텍처

포트-어댑터 패턴 기반 멀티모듈 구조

boot:api (Inbound Adapter)
    ↓
core:application (Use Case)
    ↓
core:domain (Business Logic)
    ↑
infrastructure:db (Outbound Adapter)
infrastructure:* (기타 외부 연동)

모듈 구성

  • boot:api: REST API 컨트롤러, 요청/응답 처리
  • core:application: 비즈니스 유스케이스 오케스트레이션
  • core:domain: 도메인 모델 및 비즈니스 규칙
  • infrastructure:db: 데이터베이스 구현 (JPA Repository)
  • infrastructure:*: 외부 서비스 연동 (추후 확장)

설계 원칙

  • 도메인 계층은 외부 의존성 없음 (순수 비즈니스 로직)
  • Infrastructure는 Domain과 Application의 인터페이스를 구현
  • 의존성 방향: 외부 → 내부 (도메인 중심)

핵심 기술 구현

안전한 거래 처리

  • 단일 트랜잭션 내 원자적 처리 (포인트 차감 + 아이템 이전 + 이력 기록)
  • 동시 구매 시도 방지
  • 거래 실패 시 자동 롤백

주요 화면

마켓 플레이스

마켓

아이템 검색, 필터링, 정렬 기능

아이템 상세 및 구매

아이템 상세

실시간 가격 확인 및 즉시 구매

내 인벤토리

인벤토리

보유 아이템 관리 및 판매 등록

프로젝트 특징

  • 빠른 MVP 개발: 해커톤식 24시간 순수 작업 시간으로 완성
  • 문서 기반 설계: PRD, 유저 플로우, 기능 명세 기반 체계적 개발
  • 확장 가능한 설계: 도메인 중심 아키텍처로 새로운 기능 추가 및 유지보수 용이

문서

프로젝트 진행 과정

이 프로젝트는 타임박스 개발 실험으로 진행되었습니다.

  • 1차 스프린트: 12시간 (기본 기능 구현)
  • 2차 스프린트: 12시간 (핵심 기능 완성)

스프린트 후 테스트 코드 추가, 프론트엔드 개선 작업이 이루어졌습니다.

향후 계획

  • PG사 연동 (포인트 결제 기능)
  • 테스트 코드 확대 (Unit Test, E2E Test)
  • 알림 시스템 (거래 완료, 포인트 변동)
  • 리뷰 시스템 (거래 후 평가)
  • 검색 기능 (아이템명, 카테고리)

About

트랜잭션 기반 안정적 거래를 보장하는 RPG 아이템 마켓플레이스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages