메인으로 돌아가기

2024.12 — 2025.10

데이터 판매 플랫폼

데이터 상품과 선택 옵션을 처리하는 판매 플랫폼의 백엔드 기능을 담당했습니다.

Spring Boot · JPA · MySQL · Vue

PROJECT CONTEXT

데이터 상품을 조회하고 구매 조건을 선택해 장바구니에 담을 수 있는 데이터 판매 플랫폼입니다.

MY PART

  • 데이터 상품 목록·상세 API
  • 데이터 유형·옵션 선택값을 포함한 장바구니 API
  • Vue 화면 연동
  • 구매 조건 조합 기준 중복 판별

공개 범위상품 원본 데이터, 고객사 식별정보, 실제 판매 데이터는 모두 제외하고 화면/로직 구조만 설명했습니다.

CASE OVERVIEW

구매 조건 조합을 기준으로 장바구니 중복 판별

AS-IS
상품 ID만 비교하면 같은 상품의 다른 옵션 조합까지 중복으로 볼 수 있습니다.
DECISION
상품 자체가 아니라 실제 구매 조건 조합을 기준으로 판단했습니다.

AFTER

상품 ID만 비교할 경우

  1. 상품 ID
  2. 같은 상품이면 중복으로 판단
  3. 서로 다른 옵션 조합도 구분하지 못할 위험

실제 적용한 구매 조건 기준

  • 구매자 유형 · 사용자 ID
  • 데이터 상품 · 데이터 유형
  • 선택 옵션 조합

동일한 구매 항목인지 판별

DATA PLATFORM

구매 조건 조합을 기준으로 장바구니 중복 판별

PROBLEM

상품 ID만으로 장바구니 중복 여부를 판단하면 같은 상품에서 서로 다른 데이터 유형이나 옵션을 선택한 경우에도 동일한 구매 항목으로 처리될 수 있었습니다.

WHY

실제 구매 항목의 동일성은 상품 ID만으로 결정되지 않습니다.

DECISION

상품 ID가 아니라,실제 구매 조건을 기준으로 중복 여부를 판단했습니다.

구매자 유형·사용자 ID·데이터·옵션 조합을 함께 고려하고, 화면 상태가 아닌 서버에서 받은 구매 조건을 기준으로 중복 여부를 판별했습니다.

IMPLEMENTATION

  1. Vue 선택값
  2. Controller
  3. Service 중복 판별

중복 요청

  1. HTTP 409 CONFLICT

신규 요청

  1. 장바구니 저장
  2. Vue 상태 재조회
  • 로그인 여부와 필수 선택값을 확인한 후 데이터 유형과 옵션 조합을 포함해 요청 데이터를 구성했습니다.
  • Service에서 구매자 유형·사용자 ID·데이터·옵션 조합을 기준으로 기존 장바구니 항목과 비교했습니다.
  • 신규 등록 성공 후 서버의 장바구니 데이터를 다시 조회해 화면 상태를 갱신하도록 구성했습니다.

VERIFICATION

  • 로그인·필수값 검증 후 데이터 유형과 선택 옵션이 API 요청에 포함되는 흐름을 확인했습니다.
  • 동일 구매 조건의 중복 판별과 HTTP 409 CONFLICT 응답 처리를 확인했습니다.
  • 신규 등록 성공 시 Vue에서 서버 기준 장바구니 상태를 다시 조회하는 흐름을 확인했습니다.

RESULT

서버에서 구매 조건 조합을 기준으로 중복 요청과 신규 등록 요청을 구분했습니다.

WHAT CHANGED

  • 상품 ID만으로 중복 판단하지 않음
  • 구매 조건 조합 기준으로 동일 항목 판별
  • 중복·신규 요청을 서버에서 분기
  • 저장 후 Vue 상태 재조회

사용 기술

Java · Spring Boot · JPA · QueryDSL · MySQL · Vue