📄 웹 애플리케이션 요구사항 정의서

프로젝트명: 쇼핑몰 웹 애플리케이션

개발환경: Java 17, Spring Boot 3.x, Thymeleaf, PostgreSQL, Gradle

작성일: 2026.03.12

작성자: 김진수 (PM)

✅ 1. 개요

항목 내용
프로젝트 명 인천문화관광 웹 개발
목적 사용자들이 온라인에서 인천에 대한 문화활동 및 관광지를 찾을 수 있는 서비스 제공
범위 회원가입, 로그인, 마이페이지, 관광지 검색 ,맛집검색, 숙박시설검색, 공지사항, 리뷰, 관리자 기능 포함
주요 사용자 비회원,일반 사용자, 관리자
플랫폼 웹 브라우저 기반

✅ 2. 시스템 구성도

image.png

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

✅ 3. 기능 요구사항 상세

요구사항 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 검색, 필터 포함

✅ 4. 비기능 요구사항

ID 항목 내용
NFR-001 성능 100명 동시 접속에서도 안정적인 응답 시간 (2초 이내)
NFR-002 보안 HTTPS, 비밀번호 암호화 저장 (BCrypt), CSRF 방어
NFR-003 호환성 Chrome, Edge, Safari 최신 버전 호환 보장
NFR-004 접근성 웹 접근성 수준 AAA 기준 준수 (스크린리더 호환)
NFR-005 유지보수성 Spring Boot 구조에 따른 Layered Architecture 준수

✅ 5. 기타