프로젝트명: 쇼핑몰 웹 애플리케이션
개발환경: Java 17, Spring Boot 3.x, Thymeleaf, PostgreSQL, Gradle
작성일: 2026.03.12
작성자: 김진수 (PM)
| 항목 | 내용 |
|---|---|
| 프로젝트 명 | 인천문화관광 웹 개발 |
| 목적 | 사용자들이 온라인에서 인천에 대한 문화활동 및 관광지를 찾을 수 있는 서비스 제공 |
| 범위 | 회원가입, 로그인, 마이페이지, 관광지 검색 ,맛집검색, 숙박시설검색, 공지사항, 리뷰, 관리자 기능 포함 |
| 주요 사용자 | 비회원,일반 사용자, 관리자 |
| 플랫폼 | 웹 브라우저 기반 |

graph LR
A[클라이언트] --> B[Spring Boot 서버]
B --> C[PostgreSQL DB]
B --> D[파일 서버]
flowchart LR
Guest[비회원]
User[회원]
Admin[관리자]
subgraph Client[클라이언트 영역]
Browser[Web Browser]
end
subgraph Server[Spring Boot 애플리케이션 서버]
Security[Spring Security]
Controller[Controller Layer<br/>Home / Member / Notice / Review / Spot / Policy]
Service[Service Layer<br/>MemberService / NoticeService / ReviewService]
Repository[Repository Layer<br/>MemberRepository / PostRepository]
View[Thymeleaf Templates]
Static[Static Resources<br/>CSS / JS / Image]
FileUtil[FileUploadUtil]
end
subgraph Data[데이터 영역]
DB[(PostgreSQL)]
Upload[(업로드 파일 저장소)]
end
Guest --> Browser
User --> Browser
Admin --> Browser
Browser --> Security
Security --> Controller
Controller --> Service
Service --> Repository
Repository --> DB
Controller --> View
View --> Browser
Static --> Browser
Service --> FileUtil
FileUtil --> Upload
Security -. 인증/권한검사 .-> Controller
Admin -. 공지사항 관리 / 회원관리 .-> Security
User -. 리뷰 작성 / 수정 / 삭제 .-> Security
Guest -. 공개 페이지 조회 .-> Security
| 요구사항 ID | 기능명 | 설명 | 우선순위 | 관련 페이지 | 비고 |
|---|---|---|---|---|---|
| FR-001 | 회원가입 | 사용자가 아이디, 비밀번호, 이름, 연락처 등 입력 후 가입 가능 | 높음 🔴 | /member/join | 아이디 중복 체크 필요 |
| FR-002 | 로그인 | 아이디와 비밀번호로 로그인 가능, 세션 기반 인증 | 높음 🔴 | /member/login | 실패 시 에러 메시지 |
| FR-003 | 마이페이지 | 사용자의 정보 조회 및 수정 | 중간 🟠 | /member/mypage | 비밀번호 변경 포함 |
| FR-004 | 관광지 목록 조회 | 등록된 관광지를 카테고리별로 조회 가능 | 중간 🟠 | /notice/list | 키워드 검색 가능 |
| FR-005 | 관광지 상세 조회 | 관광지 위치 및 관광지에 대한 설명 | 중간 🟠 | /notice/detail/{id} | 관광지 상세조회 |
| FR-006 | 숙박 시설 조회 | 등록된 숙박시설을 조회 | 중간 🟠 | /notice/list | 키워드 검색 가능 |
| FR-007 | 맛집 조회 | 등록된 맛집을 조회 | 중간 🟠 | /order | 키워드 검색 가능 |
| FR-008 | 공지사항 게시판 | 관리자가 올린 공지사항을 확인 가능 | 중간 🟠 | /qna/list | 공지사항 검색 가능 |
| FR-009 | 공지사항 등록 | 관리자가 공지사항을 등록 | 높음 🔴 | /admin/product/add | 관리자만 등록가능 |
| FR-010 | 관리자 회원 관리 | 전체 회원 리스트, 수정, 탈퇴 처리 | 중간 🟠 | /admin/member/list | 검색, 필터 포함 |
| ID | 항목 | 내용 |
|---|---|---|
| NFR-001 | 성능 | 100명 동시 접속에서도 안정적인 응답 시간 (2초 이내) |
| NFR-002 | 보안 | HTTPS, 비밀번호 암호화 저장 (BCrypt), CSRF 방어 |
| NFR-003 | 호환성 | Chrome, Edge, Safari 최신 버전 호환 보장 |
| NFR-004 | 접근성 | 웹 접근성 수준 AAA 기준 준수 (스크린리더 호환) |
| NFR-005 | 유지보수성 | Spring Boot 구조에 따른 Layered Architecture 준수 |