본문 바로가기
Spring

[Spring] Spring Framework MVC 커뮤니티 사이트Tutorial - 3

by BENGGRI 2021. 1. 29.
반응형

1. 본격적인 커뮤니티 사이트 만들기 튜토리얼 시작에 앞서...

먼저 Tutorial 을 시작하면서 커뮤니티 사이트를 만들기 전 구현 범위를 설정해 두었습니다.

[Spring] Spring Framework MVC 커뮤니티 사이트 Tutorial 시작

사용자 사이트와 관리자 사이트를 나눠 구현 범위를 별도로 지정해두었습니다.

먼저 사용자 사이트를 만들고 난 뒤에 관리자 사이트를 만들겠습니다.


2. 프로젝트 진행 단계

SI 프로젝트를 진행하면서 가장 많이 본 모습입니다.

굳이 "간단한 게시판 몇 개있는 프로젝트에 단계별로 진행을 해야하나?"라는 생각도 들 수 있습니다.

하지만 이전 튜토리얼에서 보았듯이 생각나는대로 개발을 하면 끝나지 않는 무한 수정 프로젝트를 경험할 수 있습니다.

(각 단계별로 산출물이 있지만 산출물보다는 각 단계의 의미와 필요성을 중점으로 튜토리얼을 진행할 계획입니다.)

 

소프트웨어 개발 방법론은 많지만 그 중에 커뮤니티 사이트 프로젝트의 사용자 사이트는 SI 프로젝트를 진행할 때 많이 본 폭포수 모델 방법론을 따를 예정입니다.

(관리자 사이트애자일 방법론을 따를 예정입니다.)

 

아래 이미지는 프로젝트를 진행하면서 많이 만나게 될 개발 방법론 입니다.

물론 실제로 개발 방법론을 다 지키는 프로젝트는 아직 경험해보지 못했습니다.

아마 제 경험이 부족해서 그런 것 같습니다.

 


3. 커뮤니티 사이트

튜토리얼에서 진행할 프로젝트는 커뮤니티 사이트 입니다.

커뮤니티 사이트를 검색하시면 많은 사이트가 나옵니다.

대부분 비슷한 기능을 가지고 있습니다.

(회원가입, 로그인, 친구관리, 게시글보기(전체, 메뉴별, 즐겨찾기별 ... 등), 댓글쓰기, 파일 첨부하기 ... 등)

해당 기능을 가진 사이트 중 관리자와 사용자를 사용할 수 있는 대표 모델로는 네이버 카페가 있습니다.

네이버 카페의 전체 기능을 구현할 것은 아닙니다.

하지만 구현할 기능 중 참고할 내용이 있으면 네이버 카페를 참고할 예정입니다.


4. 분석

우선 구현 범위에서 댓글 관련 기능을 제외한 게시글관련 기능만 분석하도록 하겠습니다.

게시글 관련 기능으로는 아래와 같이 5개로 정의하였습니다.

게시글 관련 기능

참고 프로젝트인 네이버 카페에서 해당 기능확인합니다.

1. 게시글 목록 조회

1. 페이징 처리

  • 기본 페이지당 15개씩 표시
  • 페이지당 5, 10, 15, 20, 30, 40개씩 표시 가능

2. 신규 게시글 처리

  • 특정기간(24시간) 안에 작성된 글일 경우 신규 게시글 표시

3.  게시글 목록 조회 조건

  • 기간별 조회 기능
  • 제목+내용, 제목만, 글작성자, 댓글내용, 댓글작성자 검색어 조회 기능

4. 화면 표시 항목

  • 글번호, 제목, 작성자, 작성일, 조회 수, 좋아요 수

5. 버튼 

  • 이동, 삭제, 글쓰기

 

2. 게시글 상세 조회

1. 화면 표시 항목

  • 게시글 헤더 - 게시글 제목, 작성자 아이콘, 작성자 아이디, 게시글 작성일, 조회 수, 댓글 수
  • 게시글 내부 - 게시글 내용, 좋아요 수, 댓글 수
  • 게시글 하단 - 댓글작성 영역, 댓글 영역

2. 버튼

  • 게시글 내부 - 좋아요
  • 게시글 외부 - 글쓰기, 답글, 이동, 수정, 삭제, 목록, TOP

 

3. 게시글 등록

 

 

1. 화면 표시 항목

  • 메뉴, 말머리, 제목, 내용, 태그

2. 버튼

  • 임시등록, 등록

3. 게시글 등록 처리

  • 제목, 내용 필수체크

 

4. 게시글 수정

1. 화면 표시 항목

  • 메뉴, 말머리, 제목, 내용, 태그

2. 버튼

  • 등록

3. 게시글 수정 처리

  • 제목, 내용 필수 체크

 

5. 게시글 삭제

1. 화면 표시 항목

  • 게시글 헤더 - 제목, 작성자 아이콘, 아이디, 작성일, 조회 수, 댓글 수
  • 게시글 내부 - 게시글 내용, 좋아요 수, 댓글 수
  • 게시글 하단 - 댓글작성 영역, 댓글 영역

2. 버튼

  • 게시글 내부 - 좋아요
  • 게시글 외부 - 글쓰기, 답글, 이동, 수정, 삭제, 목록, TOP

3. 게시글 삭제 처리

  • 게시글 삭제를 사용자에게 다시 확인 후 삭제

 

참고 프로젝트인 네이버 카페에서 해당 기능 확인 추가할 기능삭제할 기능을 정의합니다.

 

1. 게시글 목록 조회

2. 게시글 상세 조회

3. 게시글 등록

4. 게시글 수정

5. 게시글 삭제

 

이렇게 각 기능별로 만들어야할 항목이 식별되면 보기 좋게 표로 해당 내용을 작성합니다.

요구사항정의서는 여러 형태가 있습니다. 하지만 필수요소는 있습니다.

요구사항 ID, 요구사항 명, 요구사항 설명, 기능/비기능, 수용 여부 등을 기본적으로 포함합니다.

항목 설명
요구사항 ID 요구사항을 식별할 수 있는 유일한 값입니다.
요구사항 명 요구사항의 이름입니다.
요구사항 설명 요구사항의 상세 설명입니다.
기능/비기능 기능 - 개발사항 O , 비기능 - 개발사항 X 로 생각하시면 편합니다.
수용 여부 해당 요구사항을 수용할 것인지 수용하지 않을 것인지

 

요구사항 정의서

분석 단계에서는 개발할 소프트웨어의 기능과 제약조건, 목표 등을 소프트웨어 사용자와 함께 명확히 정의해야합니다.

그리고 개발 방법과 소프트웨어의 성격을 이해하고 개발에 필요한 자원과 예산을 예측하게 됩니다.


5. 설계

먼저 진행했던 [Spring] Spring Framework MVC 커뮤니티 사이트 Tutorial - 2 에서 진행한대로 설계서를 작성해 봅니다.

설계 단계에서는 분석 단계에서 정의한 기능, 제약조건, 목표를 좀 더 구체적으로 설계해야합니다.

설계 단계에서 구체적으로 설계한 내용을 보고 개발을 해야하기 때문입니다.

이 단계에서 구체적으로 설계를 하지 않으면 개발할 때 어려움이 많이 발생하게 됩니다.

 

분석 단계WHAT 이라면 설계 단계HOW 입니다.

 

프로그램 목록
화면 설계
프로세스 설계
테이블 정의
ERD

구체적으로 설계를 하면 개발단계 전에 어떻게 해당 기능을 만들지에 대한 계획이 생기고 논리적으로 잘못된 점을 미리 찾을 수 있습니다.


분석과 설계 단계에서 작성한 문서들을 작성하시면서 앞으로 만들 프로그램에 대한 이해를 높이시면 성공입니다.

반응형

댓글