일하면서 짜증나서 만든 식품 유통기한 체크리스트를 만들기로 했다.
1. 개요
본 문서는 Spring Boot 3 기반의 유통기한 기록, 문의사항, 보충 리스트 관리 웹/모바일 반응형 웹사이트 구축에 대한 설계 과정, MVC 패턴 적용, 요구사항 정의한다.
2. 시스템 설계
2.1 아키텍처
- 프론트엔드: 반응형 디자인 (BootStrap)
- 백엔드: Spring Boot 3 (RESTful API), Spring Data JPA (데이터베이스 연동), Thymeleaf (서버 사이드 렌더링)
- 데이터베이스: MySQL 또는 H2 (개발 환경)
- 웹 스토리지: HTML5 Web Storage (localStorage 또는 sessionStorage)
2.2 MVC 패턴
- Model: 데이터베이스 엔티티 (Entity) 및 데이터 처리 로직 (Service)
- View: Thymeleaf 템플릿 (웹 페이지)
- Controller: RESTful API 엔드포인트, 웹 페이지 요청 처리
2.3 주요 기능
- 유통기한 기록: 제품별 유통기한 등록, 수정, 삭제, 조회
- 문의사항 관리: 사용자 문의 등록, 답변, 조회
- 보충 리스트 관리: 유통기한 기반 보충 필요 제품 목록 생성, 보충 수량 기록, 웹 스토리지 연동
3. 요구사항 정의
3.1 기능 요구사항
<1> 식품 리스트 관리
- 제품 정보 (제품명, 유통기한, 종류) 등록/수정/삭제
- 제품 정보 검색 기능
- 페이징 기능
- 유통기한 임박/만료 제품 목록 조회
< 변경 UI >
- 카드로 제품들을 정리
<2> 보충 리스트
- 보충 리스트 관리
- 현장에서 보충 수량 입력으로 웹 스토리지 저장
- 보충 완료 목록 조회
- 보충 이력 조회
- 리스트 검색 기능
<3> 문의 사항
- 문의사항 관리
- 사용자 문의 등록 (제품, 문의 내용)
- 관리자 답변 등록
- 문의 목록 조회 (사용자, 관리자)
- 문의 검색 기능 (제품, 내용)
3.2 비기능 요구사항
- 반응형 디자인: 다양한 기기 (PC, 태블릿, 모바일) 지원
- 성능: 빠른 응답 속도, 대용량 데이터 처리
- 보안: 사용자 인증/인가, 데이터 암호화
- 사용성: 직관적인 UI/UX, 쉬운 사용법
- 확장성: 새로운 기능 추가 용이
- 유지보수성: 코드 가독성, 유지보수 용이
4. 개발 과정
- 요구사항 분석 및 설계: 기능 요구사항, 비기능 요구사항 정의, 시스템 아키텍처 설계
- 데이터베이스 설계: ERD 작성, 테이블 설계
- 백엔드 개발: Spring Boot 3, Spring Data JPA, RESTful API 개발
- 프론트엔드 개발: BootStrap -> 반응형 디자인 적용
- 웹 스토리지 연동: 보충 리스트 데이터 웹 스토리지 저장/관리
- 테스트: 단위 테스트, 통합 테스트, 시스템 테스트
- 배포: 서버 배포, 운영 환경 설정
- 유지보수: 버그 수정, 기능 개선, 성능 최적화
5. 기술 스택
- Spring Boot 3: 백엔드 프레임워크
- Data JPA: 데이터베이스 연동
- Thymeleaf: 서버 사이드 렌더링
- Bootstrap: 반응형 디자인 프레임워크
- MySQL/H2: 데이터베이스
- HTML5 Web Storage: 웹 스토리지
6. 문서화
- 요구사항 정의서
- 시스템 설계서
- 데이터베이스 설계서
- API 명세서
- 테스트 계획서
- 사용자 매뉴얼