← 포트폴리오 목록

안과 렌즈·용액 거래처 주문관리 시스템

안과 거래처의 콘택트렌즈·세척용액 주문 접수부터 출고 관리까지 이어지는 주문 관리 시스템을 React·TypeScript·Supabase 기반으로 구현하는 프로젝트입니다.

마스터-디테일 주문 관리 콘솔 구현좌측 목록·우측 상세 패널 구조로 주문 검색부터 상태 변경까지 한 화면에서 처리하는 콘솔을 설계합니다.
출고 상태 실시간 동기화 구조 구현Supabase Realtime 기반으로 출고 등록이 거래처 조회 화면에 즉시 반영되는 동기화 구조를 구현합니다.
soft delete 기반 이력 보존 체계 설계거래처·제품 삭제 요청을 상태 변경으로 처리해 데이터 이력을 영구 보존하는 구조를 설계합니다.
서비스 타입Web
업종헬스케어
기술 스택
ReactTypeScriptNext.js API RoutesTailwind CSSSupabase (PostgreSQL + Auth + RLS)React Hook FormZodxlsx
주요 기능
  • 렌즈·용액 주문 접수 폼
  • 관리자 주문 현황 관리
  • 출고 처리·송장 등록
  • 거래처·권한 관리
Overview

프로젝트 개요

범위: 개발, 디자인, 기획

안과 거래처의 콘택트렌즈·세척용액 주문 접수부터 출고 관리까지 이어지는 주문 관리 시스템을 React·TypeScript·Supabase 기반으로 구현하는 프로젝트입니다. 거래처별 권한 분리와 soft delete 기반 이력 추적 구조로 고안정성 운영 환경을 지향하며, 렌즈 규격 입력부터 송장 등록까지 전 과정을 하나의 콘솔에서 처리합니다.

작업 범위

  • 렌즈·용액 주문 접수 폼: 거래처가 콘택트렌즈와 세척용액 주문을 화면에서 구분 입력하고, 양안(좌/우) BC·POWER·DIA·COLOR·각인 값을 규격에 맞게 검증받아 제출할 수 있는 화면입니다
  • 관리자 주문 현황 관리: 관리자가 렌즈·용액 주문을 목록에서 검색·필터링하고, 항목을 선택해 상세 정보와 진행 상태를 한 화면에서 확인·변경할 수 있는 주문 관리 콘솔입니다
  • 출고 처리·송장 등록: 관리자가 택배사와 송장번호를 등록해 주문을 출고 처리하고, 여러 주문에 동일 송장번호를 한 번에 입력할 수 있는 화면입니다
  • 거래처·권한 관리: 본사 관리자가 안과 거래처 계정을 등록·발급하고 상태(정상/거래중지)를 관리하며, 거래처와 관리자 권한을 분리해 접근을 제어하는 화면입니다

주요 업무

  • 렌즈·용액 주문 접수 폼 화면: 제품 마스터 데이터를 기준으로 옵션을 동적 렌더링하고, 직배송 선택 시 수령인·연락처·주소 입력값을 실시간 유효성 검증하는 폼 로직을 구현합니다
  • 관리자 주문 현황 관리 화면: 좌측 주문 목록과 우측 상세 패널로 구성된 마스터-디테일 구조로 상태 관리와 이력 조회를 통합하고, 기간·주문종류 조건별 Excel 다운로드 기능을 함께 구현합니다
  • 출고 처리·송장 등록 화면: 출고 등록 즉시 거래처 조회 화면에 반영되는 상태 동기화 구조를 구현하고, 다중 선택 후 일괄 입력이 가능한 폼을 설계합니다
  • 거래처·권한 관리 화면: 비밀번호 암호화 저장과 다중 역할 기반 접근 제어를 구현하고, 거래처 삭제 대신 상태 변경으로 처리해 이력을 보존하는 soft delete 구조를 설계합니다
안과 렌즈·용액 거래처 주문관리 시스템
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

렌즈 규격(BC/POWER/DIA/COLOR/각인)과 배송방식별 필수 입력값이 달라져 유연한 폼 검증 스키마 설계가 필요합니다

다중 주문에 동일 송장번호를 일괄 등록할 때 부분 실패 없이 트랜잭션을 원자적으로 처리하는 로직 설계가 필요합니다

거래처 삭제 대신 상태 변경으로 처리하는 soft delete 구조에서 참조 무결성과 이력 추적을 함께 보장하는 스키마 설계가 필요합니다

거래처/관리자 권한이 분리된 환경에서 Supabase RLS 정책을 세밀하게 설계하지 않으면 데이터 노출 위험

정책 테스트가 필요합니다

구현 내용

핵심 기능 상세

핵심 기능 1

렌즈·용액 주문 접수 폼

거래처가 콘택트렌즈와 세척용액 주문을 화면에서 구분 입력하고, 양안(좌/우) BC·POWER·DIA·COLOR·각인 값을 규격에 맞게 검증받아 제출할 수 있는 화면입니다.

  • React Hook Form과 Zod로 렌즈 규격(BC/POWER/DIA/COLOR) 필드별 유효성 검증 구현
  • 주문/교환 구분과 배송방식 선택에 따라 폼 필드를 동적으로 전환하는 조건부 렌더링 설계
  • 제품 마스터 데이터를 기준으로 렌즈·용액 옵션 목록을 동적으로 불러오는 구조 구현

양안 규격 입력값을 필드 단위로 실시간 검증해 잘못된 주문 접수를 사전에 차단하는 폼 구조를 구현합니다.

렌즈·용액 주문 접수 폼
렌즈·용액 주문 접수 폼 실제 화면
핵심 기능 2

관리자 주문 현황 관리

관리자가 렌즈·용액 주문을 목록에서 검색·필터링하고, 항목을 선택해 상세 정보와 진행 상태를 한 화면에서 확인·변경할 수 있는 주문 관리 콘솔입니다.

  • 좌측 리스트·우측 상세 패널 구조로 주문 상태 변경과 상세 조회를 한 화면에서 처리하는 레이아웃 구현
  • 기간·주문종류 조건별 xlsx 기반 Excel 다운로드 기능 구현
  • 렌즈/용액 주문을 별도 탭으로 구분해 관리하는 목록·검색·필터 로직 설계

주문 목록과 상세·이력을 한 화면에서 오가는 마스터-디테일 구조로 관리자의 상태 관리 흐름을 단순화합니다.

관리자 주문 현황 관리
관리자 주문 현황 관리 실제 화면
핵심 기능 3

출고 처리·송장 등록

관리자가 택배사와 송장번호를 등록해 주문을 출고 처리하고, 여러 주문에 동일 송장번호를 한 번에 입력할 수 있는 화면입니다.

  • 다중 주문 선택 후 동일 택배사·송장번호를 일괄 등록하는 벌크 업데이트 로직 구현
  • 출고 등록 시 Supabase 실시간 구독으로 거래처 조회 화면 상태를 즉시 동기화하는 구조 설계
  • 택배사·송장번호 형식 검증 및 중복 송장 입력 방지 로직 구현

출고 등록이 거래처 조회 화면에 즉시 반영되도록 Supabase Realtime 기반 상태 동기화 구조를 구현합니다.

출고 처리·송장 등록
출고 처리·송장 등록 실제 화면
핵심 기능 4

거래처·권한 관리

본사 관리자가 안과 거래처 계정을 등록·발급하고 상태(정상/거래중지)를 관리하며, 거래처와 관리자 권한을 분리해 접근을 제어하는 화면입니다.

  • Supabase Auth와 역할 테이블을 연동한 거래처/관리자 다중 역할 권한 분리 구현
  • 거래처 삭제 요청을 실제 삭제 대신 상태 필드 변경으로 처리하는 soft delete 이력 보존 구조 설계
  • 비밀번호 해시 저장과 계정 상태(정상/거래중지)에 따른 로그인 차단 로직 구현

거래처를 물리적으로 삭제하지 않고 상태값과 이력을 보존하는 soft delete 구조로 데이터 안정성을 확보하는 접근 제어 체계를 구현합니다.

거래처·권한 관리
거래처·권한 관리 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

요구사항 분석 및 Supabase 스키마 설계 · 2026.09

거래처·주문·제품·출고 테이블 구조 및 RLS 정책 초안 설계, 렌즈/용액 규격 필드 정의

STEP 2

주문 접수·유효성 검증 폼 구현 · 2026.09

렌즈·용액 주문 입력 폼과 필드별 실시간 검증 로직 구현

STEP 3

관리자 주문·출고 관리 화면 구현 · 2026.09

마스터-디테일 주문 관리 콘솔, 출고 등록, Excel 다운로드 기능 구현

STEP 4

거래처·권한 관리 및 QA · 2026.09

거래처 계정·권한 분리, soft delete 구조 구현 및 전 구간 기능 QA 검증

프로젝트 성과

주요 성과

마스터-디테일 주문 관리 콘솔 구현좌측 목록·우측 상세 패널 구조로 주문 검색부터 상태 변경까지 한 화면에서 처리하는 콘솔을 설계합니다.
출고 상태 실시간 동기화 구조 구현Supabase Realtime 기반으로 출고 등록이 거래처 조회 화면에 즉시 반영되는 동기화 구조를 구현합니다.
soft delete 기반 이력 보존 체계 설계거래처·제품 삭제 요청을 상태 변경으로 처리해 데이터 이력을 영구 보존하는 구조를 설계합니다.
다중 역할 권한 분리 구현거래처/관리자 역할별 데이터 접근 범위를 Supabase RLS와 역할 테이블로 분리해 구현합니다.
Highlights

기술적 주안점

  • 양안 규격 입력값을 필드 단위로 실시간 검증해 잘못된 주문 접수를 사전에 차단하는 폼 구조를 구현합니다
  • 주문 목록과 상세·이력을 한 화면에서 오가는 마스터-디테일 구조로 관리자의 상태 관리 흐름을 단순화합니다
  • 출고 등록이 거래처 조회 화면에 즉시 반영되도록 Supabase Realtime 기반 상태 동기화 구조를 구현합니다

유사한 프로젝트를 기획하고 계신가요?

FIRSTPIP이 개발 범위와 로드맵을 함께 정리해드립니다

무료 상담 시작하기