밥세권 Web Platform Engineering

밥세권은 위치 기반 매장의 남은 재고를 최적화하여
외식비 절감과 환경 개선을 실현
하고,
소비자에게 가까운 매장의 상품을 빠르게 연결하는
Web 서비스를 목표로 합니다.

본 프로젝트에서 상품 조회 → 장바구니 → 결제(Toss API) → 관리자(Admin) 기능 전체까지 서비스 핵심 백엔드 기능 및
퍼블리싱/ERD를 설계하고 구현했습니다.

#WebPlatform #JSP/Servlet #OrderFlow #DataIntegrity #TossPayments #AdminSystem
밥세권 로고

프로젝트 목표 & 기대 효과

구체적인 목표

  • 재고 최적화를 통해 외식비 절감 & 폐기 감소 실현
  • 사용자 위치 기반 픽업 서비스로 매장 접근성 향상
  • 카카오맵 API로 매장 위치 및 반경 기반 탐색 기능 제공
  • Toss 결제 API 연동으로 안전하고 신뢰성 있는 결제 흐름 구축
  • 사용자 중심의 편리한 구매·조회·장바구니 UX 설계

기대 효과

  • 소상공인 매출 증가 및 잉여 재고 즉시 소진
  • 소비자 외식비 부담 감소 & 합리적 소비 경험 제공
  • 유통기한 경과 전 소비 → 음식 폐기량 감소 → 환경 보호 기여
  • 지역 기반 파트너십 확장 → 지역 상권 활성화
  • 플랫폼 내 재방문 유도 및 서비스 경쟁력 강화
결제 스냅샷 검증 캡처

프로젝트 핵심 설명

What

밥세권 서비스의 전체 구매 흐름관리자(Admin) 기능 전체
백엔드에서 단독 개발했습니다.

Why

픽업 기반 지역 플랫폼 특성상 가게 간 상품 혼합 불가, 재고/상태 검증, 주문 무결성이 필수이기 때문입니다.

How

MVC2 기반 Controller에서
예외 검증 → Redirect 처리 → Snapshot 구조를 설계했습니다.

결제 도중 값이 변조되는 문제를 해결하기 위해 “주문 스냅샷”을 결제 직전에 저장하고 Toss 서버 응답과 비교하는 방식으로
무결성을 보장했습니다

Result

결제 승인/취소 흐름이 안정화되고 관리자가 모든 서비스 활동을 통합 관리할 수 있는 완전한 운영용 Admin Panel이 완성되었습니다.


My Role

FrontEnd

커뮤니티 게시판 UI/기능 전체 개발,
상품 조회 화면 퍼블리싱 및 사용자 경험 흐름 개선을 담당했습니다.

BackEnd

장바구니·찜·주문·결제·가게
그리고 관리자 기능 등
핵심 비즈니스 로직을 개발했습니다.

특히 Toss 결제 검증 과정에서 스냅샷 기반 무결성 검증 구조를 도입하여 안정성을 확보했습니다.

DBMS

Oracle 21C 기반으로
ERD를 공동 설계했습니다.

상품·가게·주문·회원 등 테이블
구조를 설계 및 정규화
했습니다.

또한 PK/FK 참조관계 및 인덱스를 조정하여 조회 성능과 데이터 무결성을 개선했습니다.

Contribution

프론트엔드, 백엔드, DB 설계까지
End-to-End 개발을 수행했습니다.

결제 안정성, 데이터 구조 개선,
관리자 운영 효율화 등
프로젝트 핵심 품질 향상에
많은 부분을 기여했습니다.


전체 기능 흐름도

01

StoreListController

검색어 필터링 · 페이지네이션 · 목록 포워딩

02

StoreDetailController

상품번호 검증 → 없는 경우 Redirect → 상세 데이터 로드

03

CartListChangeStoreConfirmController

기존 장바구니와 다른 가게 상품 시 Confirm 페이지 제공

04

CartListChangeOkController

스냅샷 생성 → 재고/상태 검증 → 장바구니 갱신

05

PaymentReadyController

주문금액 계산 · clientKey로 Toss API 준비

06

PaymentApproveOkController

secretKey로 승인 처리 → DB 저장 → 성공 페이지


구매 과정

screen
screen
screen
screen
screen
screen

Problem Solving

결제 무결성 오류 해결

TossPayments 결제 과정에서 사용자가 브라우저에서 데이터를 변경할 경우 주문 상태와 결제 결과가 불일치하는 문제가 발생했습니다.

주문 정보를 결제 직전 스냅샷으로 저장하고 Toss 서버 응답과 비교해 위·변조 가능성을 차단했습니다.

이를 통해 결제 승인/취소 로직의 무결성과 안정성을 확보했습니다.

결제 스냅샷 검증 캡처

메인페이지 배너 자동 반영

공지사항 게시판에서 공지이벤트를 분리하여 관리할 수 있도록 게시글 유형 구조를 재설계했습니다.

이벤트 유형으로 등록된 게시물은 자동으로 메인 페이지 배너 영역에 노출되도록 구현했으며, 이미지 업로드 및 링크 설정 기능을 추가하여 운영자가 별도 배포 없이 즉시 이벤트를 반영할 수 있도록 개선했습니다.

이벤트 배너 반영 캡처

DB 구조 무결성 강화

초기 테이블 구조에서 가게·상품·주문 간 참조 관계가 불명확해 데이터 무결성 저하와 수정 어려움이 우려되었습니다.

ERD를 재설계하여 PK/FK 관계를 명확히 하고, 테이블 정규화를 통해 데이터 정합성과 유지보수성을 높였습니다.

결과적으로 시스템 전체 안정성이 향상되었습니다.

ERD 구조 개선 캡처

장바구니 무결성 문제 해결

서로 다른 가게 상품이 장바구니에 함께 담겨 플랫폼 핵심 정책인 “한 장바구니 한 가게 정책”이 깨지는 상황이 있었습니다.

장바구니에 가게ID 스냅샷을 저장해 다른 가게의 상품이 추가되는 경우 감지하도록 처리했고, 혼합 시 장바구니를 초기화하거나 사용자에게 안내하도록 개선했습니다.

DB 레벨에서 FK 구조를 보완해 서로 다른 가게 상품이 섞여 저장될 수 없도록 무결성을 강화했습니다.

장바구니 무결성 강화 캡처

관리자(Admin) 기능 요약

대시보드

주문·회원·게시글 현황을 실시간 통계로 제공하여 서비스 운영 상태를 한눈에 파악

회원 관리

회원 상세 조회, 상태 변경(경고/정지), 블랙리스트 관리 기능 제공

신고 관리

게시글 신고 접수 후 처리 → 결과가 게시판 및 회원에 반영(경고 및 정지/블랙리스트)

게시글 관리

공지·자유·홍보·레시피 등 게시판별 게시글 모니터링 및 삭제·수정 기능

고객센터 운영

FAQ/문의(1:1 게시판) 관리 기능으로 사용자 상담 프로세스 운영

메인페이지 배너 관리

공지/이벤트 글 중 이벤트 태그가 선택된 게시글을 자동으로 메인 배너에 노출 구현.
이미지 업로드·링크 설정 기능 제공


관리자 기능

screen
screen
screen
screen
screen
screen

Tech Stack

Frontend

HTML · CSS · JavaScript

HTML Icon CSS Icon JS Icon

Backend

Java (JDK 17), JSP/Servlet, MVC2

Java Icon JSP Icon MVC2 Icon

Database

Oracle 21c, DBeaver, ERD Cloud

Oracle Icon DBeaver ERD Icon

Infra / Server

Tomcat 9, Eclipse, VSCode

Tomcat Icon Eclipse Vscode

API Integration

TossPayments · Kakao Map API

Toss Icon Kakao Map Icon REST API Icon

Version Control

Git · GitHub · Git Flow

Git-Bash GitHub Icon Git Flow Icon

Service Flow

Service Flow Diagram

사용자 위치 기반 상품 조회 → 장바구니 담기 → Snapshot 보존 → TossPayments 결제 → Webhook 승인 처리 → 주문 확정 → 관리자(Admin) 확인 및 운영 프로세스까지 전체 기능이 하나의 통합 서비스 흐름으로 동작합니다.


GitHub Repositories


발표자료 PDF

프로젝트 발표자료를 아래 버튼을 통해 다운로드할 수 있습니다.

PDF 다운로드