Spring & Springboot/올인원 스프링 프레임워크

전자 도서관 프로젝트 - 설계 및 생성하기

YJ_ma 2023. 10. 5. 00:06

전자 도서관 서비스 설계

'전자 도서관 서비스'는 학교 도서관, 시립 도서관 등에서 사용할 수 있는 프로그램이다.

· 도서 대여, 반납, 희망 도서 요청, 회원 가입, 회원 관리 등이 주요 기능이다.

· 주요 흐름은 다음과 같다.

① 웹 서비스를 구현하기 위한 프로젝트의 전체적인 흐름과 구조를 이해한다.

② 프로젝트를 생성하고 필요한 파일을 복사한다.

③ 관리자 회원가입 기능을 구현한다.

④ 데이터베이스 연동에 필요한 설정과 연동 방법을 학습한다.

⑤ 데이터 암호화 방법에 대해서 학습한다.

전자 도서관 서비스의 관리자 기능 정의

관리자의 주요 기능 정의

관리자 주요 기능 정의
기능 내용
회원가입 · 관리자 회원가입 양식을 이용해서 회원가입이 가능하다.
· 회원가입 후 최고 관리자(super admin)의 승인이 이루어진 후 로그인이 가능하다.
신규 도서 등록 · 새로 들어온 도서를 시스템에 등록할 수 있다.
도서 반납 · 전체 대출 목록을 조회할 수 있으며, 특정 도서에 대해서 반납 처리할 수 있다.
희망 도서 관리 · 사용자가 요청한 희망 도서를 새로 들어온 도서로 시스템에 등록할 수 있다.

전자 도서관 서비스의 사용자 기능 정의

사용자 주요 기능 정의

사용자 주요 기능 정의
기능 내용
회원가입 · 사용자 회원가입 양식을 이용해서 회원가입이 가능하다.
· 회원가입 후 도서 대출 서비스 및 희망 도서 요청 서비스를 이요할 수 있다.
도서 대출 · 특정 도서 검색 후 도서 대출이 가능하다면 대출할 수 있다.
도서 이력 조회 · 사용자가 대출한 모든 이력을 조회할 수 있다.
희망 도서 요청 · 사용자가 희망 도서를 요청할 수 있고, 관리자는 이를 입고 처리할 수 있다.

 

도서 대출 서비스 프로젝트 생성하기

프로젝트 생성하기

Project Explorer에서 오른쪽 마우스 우클릭 > [New] - [Others] > Spring Legacy Project 클릭

Spring Legacy Project 클릭 프로젝트 이름 : BookRentalPjt
Spring MVC Project 클릭
com.office.library 입력 > Finish버튼 클릭

프로젝트 BookRentalPjt 생성

pom.xml 파일에서 자바와 스프링 버전을 수정하고 파일을 저장한다.

· 자바 버전 : 11

· 스프링 버전 : 5.2.9.RELEASE

<properties>
    <java-version>11</java-version>
    <org.springframework-version>5.2.9.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
...
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.5.1</version>
    <configuration>
        <source>11</source>
        <target>11</target>
        <compilerArgument>-Xlint:all</compilerArgument>
        <showWarnings>true</showWarnings>
        <showDeprecation>true</showDeprecation>
    </configuration>
</plugin>

pom.xml의 수정 내용이 프로젝트에 반영될 수 있도록 프로젝트를 업데이트 해준다.

BookRentalPjt 프로젝트 마우스 우클릭 > [Maven] - [Update Project] 클릭

변경 변경

한글이 깨지는 문제를 해결하기 위해 web.xml에 <filter>를 추가해준다.

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

 

프로젝트를 톰캣에서 실행([Run As] - [Run on Server])해서 웹 서비스가 정상 작동하는지 확인한다.

실행 결과

 

JSP, CSS, 이미지 파일 복사하기

웹 서비스를 개발하기 위해서는 기본적으로 프런트엔드와 백엔드 그리고 데이터베이스 영역을 구분해서 개발해야한다.

프런트엔드는 JSP를 이용한다. JSP 파일을 만들기 위해서는 기본적으로 HTML, CSS, JavaScript를 이용한다.

1. [views] 폴더에 [admin], [user], [include] 폴더를 생성한다.

· [views] 폴더 위치 : src/main/webapp/WEB-INF/views

· [admin] 폴더 : 관리자 관련 페이지가 들어 있는 폴더

· [include] 폴더 : 관리자와 사용자가 공통으로 사용하는 페이지가 들어 있는 폴더

· [user] 폴더 : 사용자 관련 페이지가 들어 있는 폴더

 

2. 각 폴더에 다음 폴더 or 파일을 추가한다.

[admin] 폴더 : [book], [include], [member] 폴더

[include] 폴더 :  footer.jsp, header.jsp, title.jsp 파일

[user] 폴더는 사용자 관련 페이지로 지금은 관리자 관련 기능을 구현하기에 잠시 비워둔다.

 

3. [resources] 폴더에는 [css], [img] 폴더를 복사해서 붙여넣는다.

최종 파일 구조