도자 공방 운영 허브 시스템 구성 문서
1. 구현 목표
생활도자 공방의 대표 운영자와 보조 강사가 작품 번호를 기준으로 회원 작품의 주인, 작품 사진, 현재 제작 단계, 선반 칸을 관리하는 웹 서비스입니다.
회원은 별도 앱 설치 없이 웹에서 본인 작품의 사진, 현재 제작 단계, 예상 완성 시점을 확인합니다.
첫 버전은 아래 업무를 실제 공방 운영에 사용할 수 있게 만드는 데 집중합니다.
- 작품 등록과 작품 번호 검색
- 건조·초벌·시유·재벌 등 현재 제작 단계 관리
- 공정별 선반과 선반 칸 위치 관리
- 작품 단계와 위치의 변경 이력 관리
- 회원 조회와 회원권 잔여 횟수 확인
- 초벌 대기·재벌 대기 작품 수와 다음 가마 후보 비교
- 회원 전용 내 작품 조회와 예상 완료일 표시
가마 배치·소성 계획, 재료비 청구·수납 기록, 실제 결제, 카카오톡 완료 알림은 후속 버전으로 둡니다.
2. 사용자와 권한
| 역할 | 할 수 있는 일 | 제한 |
|---|---|---|
| 대표 운영자 | 작품·회원·회원권·선반·공방 작업 기준을 등록하고 수정한다. 운영자 대시보드와 모든 운영 화면을 사용한다. | 다른 생활도자 공방 데이터는 볼 수 없다. |
| 보조 강사 | 작품 등록, 작품 번호 검색, 단계 변경, 선반 칸 변경, 회원 조회를 한다. | 대표 운영자와 권한 차이가 필요한지는 운영 후 확인 필요 |
| 회원 | 본인에게 연결된 작품의 사진, 현재 제작 단계, 예상 완성 시점을 조회한다. | 다른 회원의 작품, 선반 위치, 내부 메모, 회원권 정보는 볼 수 없다. |
접근 권한 기준
- 모든 데이터는 생활도자 공방 단위로 분리합니다.
- 작품 번호는
생활도자 공방 + 작품 번호조합에서만 중복되지 않게 합니다. - 회원은 서버에서 본인과 작품의 연결 관계를 확인한 뒤에만 작품 정보와 작품 사진을 봅니다.
- 사진 주소를 직접 알아도 로그인 권한이 없으면 다른 회원의 작품 사진을 볼 수 없어야 합니다.
3. 첫 버전 화면과 완료 조건
| 화면 | 사용 목적 | 핵심 기능 | 완료 조건 |
|---|---|---|---|
| 로그인과 회원 본인 확인 | 역할에 맞는 화면으로 이동한다. | 대표 운영자·보조 강사 로그인, 회원 본인 확인 | 운영자는 운영자 대시보드, 회원은 회원 전용 내 작품 조회로 이동한다. |
| 운영자 대시보드 | 오늘 확인할 작품 업무를 빠르게 파악한다. | 단계별 작품 수, 초벌·재벌 대기 작품 수, 위치 미등록 작품, 회원권 확인 필요 항목 | 운영자가 다음 행동인 작품 검색, 단계별 목록 확인, 회원 조회를 시작할 수 있다. |
| 메인 화면 | 단계별 작품과 선반 위치를 한눈에 확인한다. | 건조·초벌 대기·시유·재벌 대기·완성 목록 요약 | 작품의 현재 단계와 선반 칸을 바로 확인할 수 있다. |
| 단계별 작품 목록 | 같은 단계의 작품을 찾고 여러 작품을 선택한다. | 단계, 선반, 회원명, 작품 번호 검색 및 필터 | 운영자가 초벌 대기·재벌 대기 작품 수를 확인하고 작품 상세 또는 일괄 변경으로 이동할 수 있다. |
| 작품 등록·수정 | 새 작품을 공방 관리 체계에 연결한다. | 작품 번호, 회원, 작품 사진, 현재 제작 단계, 선반 칸 입력 | 같은 생활도자 공방 안에 중복되지 않는 작품 번호로 작품이 저장된다. |
| 작품 번호 검색과 작품 상세 | 실물 작품의 주인과 위치를 즉시 찾는다. | 작품 번호 검색, 작품 사진, 회원, 현재 제작 단계, 선반 칸, 예상 완료일, 변경 이력 | 작품 번호를 입력하면 주인·사진·현재 위치를 즉시 확인할 수 있다. |
| 여러 작품 상태 한꺼번에 변경 | 같은 공정을 거친 작품을 빠르게 갱신한다. | 여러 작품 선택, 새 단계·선반 칸 지정 | 성공한 작품과 실패한 작품 번호 및 실패 이유를 구분해 보여 준다. |
| 회원 목록과 회원 상세 | 회원과 회원권 잔여 횟수를 확인한다. | 회원 검색, 회원권 종류, 잔여 횟수, 유효기간 조회 | 운영자가 특정 회원의 작품과 회원권 잔여 횟수를 함께 확인할 수 있다. |
| 회원 전용 내 작품 조회 | 회원의 카카오톡 문의를 줄인다. | 내 작품 사진, 현재 제작 단계, 예상 완성 시점 | 회원이 본인 작품만 조회할 수 있다. |
| 다음 가마 후보 비교 | 초벌과 재벌 대기 작품을 나누어 확인한다. | 초벌 대기·재벌 대기 작품 수, 작품 사진, 크기·높이, 선반 사진 비교 | 운영자가 다음 가마에 검토할 작품 후보를 확인할 수 있다. 가마 배치와 소성 계획은 만들지 않는다. |
| 공방 작업 기준 설정 | 공방별 선반 구조와 예상 완료일 기준을 설정한다. | 공정별 선반·선반 칸, 단계별 기본 소요 기간 설정 | 작품 등록 시 유효한 선반 칸만 선택되고 예상 완료일 계산에 설정값이 적용된다. |
| 초기 설정 | 기존 운영 자료를 서비스에 옮기고 시작한다. | 회원, 현재 보관 중인 작품, 현재 제작 단계, 선반 칸 등록 진행 상태 | 대표 운영자가 현재 보관 중인 작품을 등록하고 운영 시작 여부를 확인한다. |
4. 시스템 구성
4-1. 시스템 구성도
그림을 그리는 중…
운영자와 회원은 하나의 Next.js 웹 서비스에 접속하지만, 인증·접근 권한에서 역할과 생활도자 공방을 확인한 뒤 서로 다른 화면과 데이터만 봅니다. 작품, 회원, 선반, 이력은 관계형 데이터베이스에 저장하고, 작품 사진과 선반 사진은 별도 파일 저장소에 보관합니다.
4-2. 구성 요소별 책임
| 구성 요소 | 책임 |
|---|---|
| Next.js 웹 화면 | 모바일 웹 우선 화면을 제공한다. 작품 번호 검색, 사진 촬영·업로드, 단계 변경, 선반 칸 선택을 적은 입력으로 처리한다. |
| 인증·접근 권한 | 대표 운영자, 보조 강사, 회원을 구분한다. 요청마다 공방과 회원 연결 관계를 서버에서 검사한다. |
| 작품 관리 서비스 | 작품 등록, 작품 번호 중복 검사, 작품 검색, 현재 제작 단계와 선반 칸 변경, 변경 이력 저장을 처리한다. |
| 회원·회원권 서비스 | 회원 등록·조회, 회원권 종류, 잔여 횟수, 유효기간과 잔여 횟수 변경 이력을 관리한다. |
| 예상 완료일 서비스 | 공방별 단계별 기본 소요 기간과 가마 예정일 우선 규칙을 적용해 예상 완료일을 계산한다. |
| 사진 접근 서비스 | 작품 사진과 선반 사진을 업로드하고, 권한 확인이 끝난 사용자에게만 사진을 제공한다. |
| 관계형 데이터베이스 | 공방별 핵심 운영 데이터와 이력을 저장한다. |
| 파일 저장소 | 작품 사진과 선반 사진 파일을 저장한다. |
| 인증 서비스 | 로그인, 세션 유지, 회원 본인 확인에 필요한 인증 기능을 제공한다. |
5. 주요 데이터 구조
5-1. 핵심 데이터
| 데이터 | 주요 항목 | 사용 목적 |
|---|---|---|
| 생활도자 공방 | 공방 이름, 공방 식별값 | 다른 생활도자 공방 데이터 분리 |
| 사용자 | 이름, 로그인 정보, 역할, 생활도자 공방 식별값 | 대표 운영자·보조 강사 권한 관리 |
| 회원 | 이름, 연락처 또는 본인 확인 수단, 생활도자 공방 식별값 | 작품 소유자와 회원 전용 조회 연결 |
| 회원권 | 회원권 종류, 잔여 횟수, 유효기간 | 월 정기권·10회권 이용 현황 확인 |
| 회원권 잔여 횟수 변경 이력 | 변경 전후 횟수, 변경자, 변경 시각 | 잔여 횟수 변경 오류 확인 |
| 작품 | 작품 번호, 회원, 현재 제작 단계, 현재 선반 칸, 예상 완료일, 마지막 수정 시각 | 작품 추적의 기준 데이터 |
| 작품 사진 | 작품 식별값, 파일 경로, 촬영·등록 시각 | 실물 작품 확인 |
| 선반 | 생활도자 공방, 공정, 선반 번호 | 공방별 선반 구조 관리 |
| 선반 칸 | 선반, 칸 번호, 사용 여부 | 실제 작품 보관 위치 선택 |
| 단계 변경 이력 | 이전 단계, 새 단계, 변경자, 변경 시각 | 작품 공정 이동 확인 |
| 위치 변경 이력 | 이전 선반 칸, 새 선반 칸, 변경자, 변경 시각 | 실제 선반 이동 확인 |
| 작품 번호 정정 기록 | 이전 번호, 새 번호, 변경자, 변경 시각 | 번호 오기입 정정 추적 |
| 단계별 기본 소요 기간 | 생활도자 공방, 현재 제작 단계, 기본 소요 기간 | 예상 완료일 계산 기준 |
| 가마 예정일 | 작품 또는 후속 가마 회차 연결값, 예정일 | 입력된 경우 예상 완료일 계산에 우선 적용 |
| 선반 사진 | 선반 또는 선반 칸, 파일 경로 | 다음 가마 후보 비교 시 실물 크기·높이 확인 |
5-2. 작품 데이터 필수 항목
첫 버전에서 작품을 등록할 때 아래 항목을 필수로 입력합니다.
| 항목 | 입력 기준 |
|---|---|
| 작품 번호 | 2608-01 형식처럼 제작 월과 순번을 사용한다. 같은 생활도자 공방 안에서 중복될 수 없다. |
| 회원 | 기존 회원을 선택하거나 먼저 회원을 등록한다. |
| 작품 사진 | 최소 1장 등록한다. |
| 현재 제작 단계 | 공방이 설정한 단계 중 하나를 선택한다. |
| 선반 칸 | 현재 제작 단계에 맞는 공정별 선반과 선반 칸을 선택한다. |
| 마지막 수정 시각 | 동시에 수정할 때 충돌을 확인하는 기준으로 자동 저장한다. |
작품 크기와 높이는 다음 가마 후보 비교에 필요합니다. 첫 버전에서는 입력 여부를 공방 운영 방식에 맞게 확정해야 합니다. 크기·높이를 입력하지 않는 경우에도 작품 사진과 선반 사진을 비교할 수 있어야 합니다.
6. 작품 단계와 위치 변경 규칙
6-1. 기본 제작 단계
첫 버전에서는 공방이 사용하는 단계를 설정할 수 있게 하되, 기본 흐름은 아래와 같이 제공합니다.
건조
→ 초벌 대기
→ 초벌 완료
→ 시유
→ 재벌 대기
→ 재벌 완료
→ 완성
- 초벌 대기 작품과 재벌 대기 작품은 목록과 수량을 분리해 보여 줍니다.
- 초벌과 재벌은 섞어서 굽지 않는 운영 조건을 화면 안내와 후보 비교 기준에 반영합니다.
- 가마 배치·소성 계획은 후속 버전입니다. 첫 버전의 다음 가마 후보 비교는 후보 확인과 비교까지만 제공합니다.
6-2. 단계·위치 변경 저장 규칙
작품이 이동할 때 현재 제작 단계와 선반 칸을 함께 변경할 수 있어야 합니다.
- 운영자가 작품 번호를 검색하거나 단계별 작품 목록에서 작품을 선택합니다.
- 새 현재 제작 단계와 새 선반 칸을 선택합니다.
- 서버가 해당 선반 칸이 같은 생활도자 공방에 속하는지 확인합니다.
- 서버가 마지막 수정 시각을 비교해 다른 사용자의 수정 여부를 확인합니다.
- 작품의 현재 제작 단계와 현재 선반 칸을 갱신합니다.
- 단계 변경 이력과 위치 변경 이력을 각각 저장합니다.
같은 단계 안에서 선반 칸만 바뀌는 경우에는 위치 변경 이력만 남깁니다.
6-3. 동시 수정 충돌 처리
대표 운영자와 보조 강사가 동시에 같은 작품을 수정할 수 있습니다.
- 화면을 열 때 작품의 마지막 수정 시각을 함께 가져옵니다.
- 저장 요청 시 서버가 현재 마지막 수정 시각과 비교합니다.
- 이미 다른 사용자가 저장했다면 기존 저장을 덮어쓰지 않습니다.
- 사용자에게 최신 작품 정보를 다시 확인하도록 안내합니다.
- 최신 정보를 확인한 뒤 다시 수정해야 합니다.
7. 핵심 기능 흐름도
가장 중요한 기능은 작품 번호로 작품을 찾고, 현재 제작 단계와 선반 칸을 갱신하는 흐름입니다.
그림을 그리는 중…
이 흐름은 포스트잇과 육안 확인 대신 작품 번호를 기준으로 주인, 사진, 현재 제작 단계, 선반 칸을 찾고 갱신하는 과정입니다. 저장할 때 현재 값만 바꾸지 않고 단계 변경 이력과 위치 변경 이력을 함께 남겨 실제 선반 상태가 다를 때 마지막 변경 내용을 확인할 수 있게 합니다.
8. 예상 완료일 계산 규칙
8-1. 계산 기준
예상 완료일은 회원에게 확정 날짜처럼 보이지 않게 하되, 현재 상황을 알 수 있게 표시합니다.
- 현재 제작 단계별 기본 소요 기간을 생활도자 공방별로 설정합니다.
- 작품의 현재 제작 단계가 바뀌면 예상 완료일을 다시 계산합니다.
- 작품에 가마 예정일이 입력되어 있으면 해당 날짜를 우선 기준으로 계산합니다.
- 가마 예정일이 변경되면 연결된 작품의 예상 완료일을 다시 계산합니다.
- 단계별 기본 소요 기간이 바뀌면 해당 단계의 작품 예상 완료일을 다시 계산합니다.
8-2. 회원 화면 표시 예시
| 작품 상태 | 회원에게 보이는 내용 |
|---|---|
| 건조 | 완성까지 약 3~4주 예상 |
| 초벌 대기 | 초벌 가마 작업을 기다리고 있어요. |
| 시유 | 유약 작업을 진행하고 있어요. |
| 재벌 대기 | 최종 가마 작업을 기다리고 있어요. |
| 재벌 완료 | 검수 후 수령 안내 예정이에요. |
| 완성 | 작품이 완성되었어요. |
가마 배치·소성 계획은 후속 버전이지만, 운영자가 작품별 가마 예정일을 별도로 입력하는 경우에는 예상 완료일 계산에 활용할 수 있습니다.
9. 주요 서버 기능
| 서버 기능 | 입력 | 처리 | 결과 |
|---|---|---|---|
| 작품 등록 | 작품 번호, 회원, 작품 사진, 현재 제작 단계, 선반 칸 | 공방 내 작품 번호 중복 검사, 선반 칸 유효성 검사, 작품 저장 | 새 작품과 최초 단계·위치 이력 |
| 작품 번호 검색 | 공방 식별값, 작품 번호 | 공방 범위에서 작품 조회 | 주인, 사진, 현재 제작 단계, 선반 칸, 예상 완료일 |
| 작품 단계·위치 변경 | 작품 식별값, 새 단계, 새 선반 칸, 마지막 수정 시각 | 동시 수정 검사, 선반 칸 검사, 현재값 갱신, 이력 저장 | 변경 결과와 새 예상 완료일 |
| 여러 작품 상태 한꺼번에 변경 | 작품 목록, 새 단계, 새 선반 칸 | 작품별 상태·수정 충돌·선반 칸 검사 | 성공 목록, 실패 목록, 실패 이유 |
| 회원 조회 | 회원 식별값 | 회원 정보, 회원권, 연결된 작품 조회 | 회원 상세와 회원권 잔여 횟수 |
| 회원권 잔여 횟수 변경 | 회원권 식별값, 새 잔여 횟수 | 변경 전후 값과 변경자 저장 | 변경된 잔여 횟수와 이력 |
| 회원 내 작품 조회 | 로그인한 회원 식별값 | 회원과 작품 연결 관계 검사 | 본인 작품 사진, 현재 제작 단계, 예상 완성 시점 |
| 예상 완료일 재계산 | 작품 또는 공방 작업 기준 | 단계별 기본 소요 기간, 가마 예정일 우선 규칙 적용 | 새 예상 완료일 |
| 사진 업로드·조회 | 사진 파일, 작품 또는 선반 연결값 | 파일 저장, 접근 권한 검사 | 권한이 있는 사용자만 보는 사진 주소 |
10. 데이터 조회와 성능 기준
초기 운영 규모는 월 50~150점의 작품을 기준으로 합니다. 현재 기준 공방은 월 작품 약 130점, 월 정기 회원 약 40명입니다.
조회용 색인
아래 항목에는 데이터베이스 조회용 색인을 적용합니다.
| 대상 | 색인 기준 | 이유 |
|---|---|---|
| 작품 | 생활도자 공방 식별값 + 작품 번호 | 작품 번호 검색을 빠르게 처리 |
| 작품 | 생활도자 공방 식별값 + 현재 제작 단계 | 단계별 작품 목록과 초벌·재벌 대기 작품 수 조회 |
| 작품 | 생활도자 공방 식별값 + 현재 선반 칸 | 선반 칸 기준 작품 찾기 |
| 작품 | 회원 식별값 | 회원 전용 내 작품 조회 |
| 회원 | 생활도자 공방 식별값 + 이름 | 운영자의 회원 검색 |
| 변경 이력 | 작품 식별값 + 변경 시각 | 작품 상세에서 최신 이력 조회 |
사진 처리 기준
- 작품 사진과 선반 사진은 모바일 웹에서 촬영하거나 업로드할 수 있어야 합니다.
- 목록 화면에서는 작은 미리보기 이미지를 사용합니다.
- 작품 상세와 회원 전용 내 작품 조회에서는 필요한 사진만 불러옵니다.
- 원본 사진은 파일 저장소에 보관하고 데이터베이스에는 파일 정보와 연결 정보만 저장합니다.
11. 초기 설정 흐름
첫 검증 공방은 현재 보관 중인 작품부터 등록하고 이후 새로 만들어지는 작품을 계속 기록합니다.
초기 설정 순서
- 대표 운영자가 생활도자 공방 기본 정보를 확인합니다.
- 공정별 선반과 선반 칸을 등록합니다.
- 예:
초벌 대기 2번 선반 1칸
- 예:
- 건조·초벌·시유·재벌 등 공방의 현재 제작 단계를 설정합니다.
- 단계별 기본 소요 기간을 입력합니다.
- 현재 회원을 등록합니다.
- 월 정기권·10회권 등 회원권 종류, 잔여 횟수, 유효기간을 등록합니다.
- 현재 선반에 보관 중인 작품을 등록합니다.
- 작품 번호, 회원, 작품 사진, 현재 제작 단계, 선반 칸이 모두 등록됐는지 확인합니다.
- 운영자 대시보드에서 단계별 작품 수와 위치 미등록 작품 수를 확인합니다.
초기 설정 완료 조건
- 운영에 사용하는 공정별 선반과 선반 칸이 등록되어 있다.
- 현재 보관 중인 작품마다 작품 번호와 회원이 연결되어 있다.
- 등록된 작품에 현재 제작 단계와 선반 칸이 있다.
- 회원이 회원 전용 내 작품 조회에서 본인 작품을 볼 수 있다.
12. 구현 우선순위
1차: 작품 추적과 회원 조회
- 로그인과 회원 본인 확인
- 공방별 데이터 분리
- 작품 등록·수정
- 작품 번호 중복 검사
- 작품 번호 검색과 작품 상세
- 현재 제작 단계·선반 칸 변경
- 단계 변경 이력·위치 변경 이력
- 단계별 작품 목록
- 운영자 대시보드
- 회원 등록·조회
- 회원권 잔여 횟수와 유효기간 확인
- 회원 전용 내 작품 조회
- 예상 완료일 자동 표시
- 공방 작업 기준 설정
- 초기 설정
2차: 가마 운영과 비용 기록
- 가마 대기 및 소성 계획
- 가마 회차와 가마 배치
- 채움 비율
- 적재 위치
- 소성·냉각 상태
- 흙값과 유약값 기록
- 재료비와 수납 여부 기록
- 문제 작품 처리 기록
- 파손·재제작·보상 처리 이력
3차: 회원 알림
- 작품 완성 알림
- 카카오톡 완료 알림
- 사업자 채널과 알림톡 템플릿 승인 연동
- 알림 발송 이력과 실패 처리
13. 운영 시 주의점
| 항목 | 운영 기준 |
|---|---|
| 작품 번호 오기입 | 작품 등록 시 중복을 즉시 검사한다. 번호 정정 시 기존 번호를 덮어쓰지 않고 작품 번호 정정 기록을 남긴다. |
| 작품 번호 식별 어려움 | 작품 바닥에 2608-01처럼 일곱 자 이하의 번호를 새긴다. 번호만으로 주인을 판단하지 않고 시스템에서 회원과 연결한다. |
| 단계 변경 누락 | 단계별 작품 목록에서 오래 대기 중인 작품을 확인하고, 변경 이력으로 마지막 변경자를 확인한다. |
| 실제 선반 상태와 시스템 불일치 | 단계 변경 이력과 위치 변경 이력을 확인해 마지막 이동 내용을 찾는다. |
| 선반 칸 삭제 | 해당 선반 칸에 작품이 남아 있으면 삭제를 막거나 먼저 다른 선반 칸으로 옮기게 한다. |
| 동시 수정 | 마지막 수정 시각을 비교해 먼저 저장된 내용을 보호한다. |
| 회원 개인정보 | 회원은 본인 작품만 조회하게 하고, 다른 회원의 작품 사진과 정보는 서버에서 차단한다. |
| 실제 결제 | 시스템에서 결제를 받지 않는다. 실제 수납은 기존 계좌이체 방식으로 처리한다. |
| 카카오톡 알림 | 첫 버전의 배포 조건으로 두지 않는다. 알림은 후속 버전에서 사업자 채널과 템플릿 승인 조건을 확인한 뒤 추가한다. |
14. 기술 선택
| 영역 | 선택 | 선택 이유 |
|---|---|---|
| 웹 화면과 서버 요청 처리 | Next.js | 운영자와 회원이 하나의 웹 서비스에서 사용할 수 있고, 화면과 서버 기능을 함께 관리하기 좋다. |
| 데이터 저장소 | 관계형 데이터베이스 | 작품, 회원, 회원권, 선반, 변경 이력처럼 서로 연결되는 데이터를 안정적으로 관리하기 좋다. |
| 사진 저장 | 파일 저장소 | 작품 사진과 선반 사진을 데이터베이스와 분리해 보관하고, 화면에서는 필요한 크기의 사진만 제공할 수 있다. |
| 인증 | 외부 인증 서비스 또는 검증된 인증 기능 | 대표 운영자·보조 강사·회원의 로그인과 접근 권한을 일관되게 처리한다. |
| 배포 | 웹 배포 환경 | 회원이 앱 설치 없이 모바일 브라우저로 바로 작품 상태를 확인할 수 있다. |
초기에는 단일 Next.js 서비스와 하나의 관계형 데이터베이스로 시작합니다. 공방 수와 사진 저장량이 늘어날 때만 사진 처리와 알림 기능을 별도 구성으로 확장합니다.