스프링 게시판 프로젝트 - 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자로 제한

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


3. 설계

1) UI 설계

프로토타입

스프링 게시판 프로젝트 - seupeuling gesipan peulojegteu
테마 색: #21325e

2) DB 설계

ERD

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

물리적 설계

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

테이블 정의서

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


4. 구현

1) 프론트엔드 구현

2) 백엔드 구현


5. 테스트

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

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

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

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

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

STS 설치

https://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

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

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.[회사명].[프로젝트명] 으로 보통 입력합니다.

스프링 게시판 프로젝트 - seupeuling gesipan peulojegteu
프로젝트 생성 예제

인코딩 설정

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

  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>
<!-- 문자 인코딩 끝 -->
스프링 게시판 프로젝트 - seupeuling gesipan peulojegteu
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 수정
스프링 게시판 프로젝트 - seupeuling gesipan peulojegteu
Project Facets
스프링 게시판 프로젝트 - seupeuling gesipan peulojegteu
pom.xml

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