스프링 게시판 프로젝트 - seupeuling gesipan peulojegteu

1. 기획

1) 주제 선정

스프링 프레임워크를 활용하여 게시판과 로그인 기능을 구현한다.

2) 주요 기능

  • 게시글과 답글 (CRUD)
  • 댓글과 답글 (CRUD)
  • 로그인
  • 검색과 페이징
  • 첨부파일

3) 개발 일정

2022년 4월 25일 ~

4) 프로젝트 수행 도구

  • Language: Java 11
  • Framework: Spring 3.9.11, Maven
  • Database: Oracle

2. 요구분석

1) 요구분석서 작성

기능내용
로그인
  • 가입한 아이디와 비밀번호로 로그인
  • 로그인 성공 시 세션에 정보 저장 후 메인페이지로 이동
  • 로그아웃 시 세션 삭제 후 메인페이지로 이동
회원가입
  • 아이디, 메일주소, 비밀번호, 비밀번호 확인 입력
  • 아이디와 메일주소 중복검사
  • 정책에 부합하는지 유효성검사
  • 회원가입 완료 후 메인페이지로 이동
게시판 게시글
  • 등록
    • 카테고리: 공지, 정보, 뉴스, 기타
    • 작성자는 로그인한 사용자의 아이디
  • 조회: 조회 시 조회수 증가
  • 수정: 본인이 작성한 글의 제목, 본문 수정
  • 삭제: 본인이 작성한 글 삭제
댓글
  • 등록: 작성자는 로그인한 사용자의 아이디
  • 조회: 댓글과 답글 시간순 정렬
  • 수정: 본인이 작성한 댓글의 내용 수정
  • 삭제: 본인이 작성한 댓글 삭제
첨부파일
  • 문서, 사진, 압축파일 첨부
  • 첨부파일 다운로드
검색
  • 카테고리, 제목, 내용, 작성자 검색
페이징
  • 페이지당 글 15개씩 조회
  • 맨앞으로, 앞으로, 뒤로, 맨뒤로 이동하는 버튼

2) 정책정의서 작성

번호정책 코드정책명세부 항목소개정책 정의
1 commcomm-front-signup-01 회원가입 정책 가입 범위 미성년자 가입 여부 가입 가능
2 commcomm-front-signup-02 회원가입 정책 가입 정보 작성 아이디 생성 규칙
  • 중복 확인 진행(필수)
  • 15자 이내
  • 특수문자 사용 불가
  • 'manager' 사용 불가(관리자용)
3 commcomm-front-signup-03 회원가입 정책 가입 정보 작성 비밀번호 생성 규칙
  • 영문(대소문자), 숫자, 특수문자 조합 필수
  • 8자 이상 16자 이내 작성 필수
4 commcomm-front-signup-04 회원가입 정책 가입 정보 작성 이메일 작성
  • 이메일 작성 필수
  • '@'와 '.'포함 여부 확인 진행
5 commcomm-front-board-01 게시판 정책 게시글 작성 게시글 제목 최대 글자 수 제한 한글 30자까지 입력
6 commcomm-front-board-02 게시판 정책 게시글 작성 게시글 내용 최대 글자 수 제한 한글 1000자까지 입력
7 commcomm-front-board-03 게시판 정책 게시글 작성 첨부파일 유형 제한 첨부 가능한 파일 유형은 문서, 사진, 입축파일로 제한
8 commcomm-front-board-04 게시판 정책 게시글 작성 첨부파일 크기 제한 첨부 가능한 파일 크기는 3MB로 제한
9 commcomm-front-board-05 게시판 정책 댓글 작성 댓글 작성 시 최대 글자 수 제한 댓글 작성 시 최대 300자로 제한


3. 설계

1) UI 설계

프로토타입

테마 색: #21325e

2) DB 설계

ERD

물리적 설계

테이블 정의서


4. 구현

1) 프론트엔드 구현

2) 백엔드 구현


5. 테스트

본 포스팅은 스프링 프레임워크를 이용하여 기본적인 게시판을 만드는 방법을 설명합니다.
'Spring Framework

안녕하세요. 이번 포스팅은 Spring Framework를 이용하여 게시판 만드는 방법을 설명합니다.

Spring Framework를 간단하게 설명하자면 아래의 4가지의 특징이 있습니다.

  1. IOC(제어 반전 컨테이너) : 스프링을 가장 핵심기능으로 자바의 반영을 이용하여 객체의 생명주기를 관리하고 의존성 주입을 통해 각 계층이나 서비스들 간의 의존성을 맞춰준다.(Maven을 통해 라이브러리를 관리하는 것)
  2. AOP(관점 지향 프로그래밍) : 기능들을 모듈로 분리하여 서로 조합하여 사용
  3. MVC 패턴
  4. 배치 프레임워크 : 대용량 데이터를 처리하는 데 쓰이는 일괄처리(Batch Process)을 지원하는 배치 프로그래밍 지원

Spring Framework는 프로젝트를 경량화 시키고 쉽게 확장시킬 수 있는 것에 주안점을 두고 있다고 할 수 있습니다.

STS 설치

//github.com/spring-projects/toolsuite-distribution/wiki/Spring-Tool-Suite-3

spring-projects/toolsuite-distribution

the distribution build for the Spring Tool Suite and the Groovy/Grails Tool Suite - spring-projects/toolsuite-distribution

github.com

STS(Spring Tool Suite)는 현재 STS 4버전 까지 나와있습니다.

프로젝트를 Spring Legacy로 진행할 예정으로 4버전에서는 추가적인 설치가 필요하기 때문에 3 버전으로 설치해주도록 합니다.

프로젝트 생성

프로젝트의 생성은 아래의 순서로 진행합니다.

  1. Pachage Explorer 오른쪽 클릭 -> New -> Spring Legacy Project
  2. Project name 입력 후 Templates은 Spring MVC Project 선택
  3. Top Level Package Name 입력

Top Level Pachage Name은 com.[회사명].[프로젝트명] 으로 보통 입력합니다.

프로젝트 생성 예제

인코딩 설정

프로젝트를 생성하였으면 몇가지의 인코딩 설정이 필요합니다.

  1. 상단 메뉴의 Window -> General -> Workspace -> Text File Encoding UTF-8 설정
  2. 프로젝트 오른쪽 클릭 Properties -> Resource -> Text File Encoding UTF-8 설정
  3. src -> main -> webapp -> WEB-INF -> views -> home.jsp 에 인코딩 코드 추가(안 해도 되긴 합니다.)
  4. src -> main -> webapp -> WEB-INF -> web.xml에 <web-app></web-app> 사이에 인코딩 설정 코드 추가
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> // home.jsp<!-- 문자 인코딩 시작 --> <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> <!-- 문자 인코딩 끝 -->
web.xml에 인코딩 설정

JAVA 및 스프링 버전 설정

인코딩 설정이 끝났으면 JAVA 버전 및 스프링 버전을 설정해줍니다.

JDK버전은 현재 설치된 JAVA 버전을 설정해주고, 스프링 버전은 3.1.1 또는 4.3.8 버전을 사용합니다.

  1. 프로젝트 오른쪽 클릭 Properties -> Project Facets -> Java 1.8 버전으로 수정
  2. pom.xml 에서 java-versoin 1.8로 수정, springframework-version 3.1.1.RELEASE 또는 4.3.8.RELEASE 수정
Project Facets
pom.xml

다음은 데이터베이스 셋팅과 스프링과 데이터 베이스의 연동에 대해 포스팅하도록 하겠습니다.

Toplist

최신 우편물

태그