본문 바로가기
프로젝트/게시판 프로젝트

[리펙토링] 개발 요구사항 (게시판 프로젝트)

by 거북이의 기술블로그 2025. 1. 3.

프로젝트를 시작하며...

개인 프로젝트로서 현재까지 배운내용을 통해서 사용해보고자 게시판 작업을 진행하려고 한다..
이론적으로 많은 내용들을 배웠지만, 사용해본적이 없고 왜 사용해야하는지 모른다면 그건 그냥 글을 읽고 머리속에 주입한 것 밖에 안된다고 생각을 한다...
그래서 이번 기회에 배운내용들에 대해서 사용해보고 왜 사용해야하는지에 대해 탐구해보고자 한다

 

요구사항을 적는 이유..

매번 개발에 대한 주제(?)만 듣고서는 머릿속으로 대충 그리고 시작하는 습관이 생겨버렸다..
이게 단기 프로젝트이고 프로토타입으로 잠깐 쓰고 안쓸거라면 빠른개발이 더 이점이 있겠지만, 결국엔 계속해서 리펙토링하고, 중간중간 샛길(?)로 새지 않기 위해서 방향성을 잡고 가야 흔들리지 않고 개발을 완성할 수 있다는걸 느끼면서도 그렇게 하지 못해서 이번에는 제대로 시작하고자 요구사항부터 정의하여 탄탄하게 진행해보려 한다.

 

요구사항

  • 구글링을 해보면 여러가지 요구사항 정의서들을 확인해볼 수 있다. 그 중에 하나를 채택하여 사용해볼까한다.
  • 크게 "번호, 역할, 구분, 기능명, 상세 설명, 비고" 이런식으로 표를 만들어 진행해보기에 직접 만들어보고자 한다
번호 역할 구분 기능명 상세 설명 비고
1 공통 예외처리 에외처리 페이지 404, 502, 404 에러에 대해서 페이징 처리를 진행하여 사용자들의 오류를 인식  
2 회원 로그인 로그인 인증받은 사용자만이 접속을 진행하여 웹페이지내에서 활동이 가능 로그인을 하지 않으면 커뮤니티 참가 불가, 필수적 처리,
로그인 인증시간:1시간
3 로그아웃 로그아웃을 진행시에 인증을 소멸하며, 다시 로그인이 진행되도록 설정  
4 회원관리 회원가입 로그인을 하기위해서 회원으로 등록하는 과정으로서 필수적인 데이터입력을 통해 회원을 저장  회원 가입시의, id와 비밀번호, 이름은 필수적으로 입력을 받아야함
(id에는 특수문자를 제외, 이름의경우 영문/한글만 가능)
5 회원수정 id와 이름, 비밀번호 및 주소를 변경할 수 있다 작업진행예정 (로그인 아이디도 수정가능하게 변경) 
6 회원탈퇴 회원 탈퇴시에, 작성했던 글의 경우도 자동으로 삭제가 진행 작업진행예정 (추가해야함)
7 게시판 게시글 글 조회 마이페이지에서는 본인의 글들의 리스트들이 보이게 하고, 게시판에서는 모든 사용자들의 글이 조회가 되게 설정  
8 글 삭제 글 삭제의 경우, 마이페이지에서 작업이 가능하고 삭제 후에는 바로삭제되는 것이 아닌, 임시 휴지통에 들어가게 되고 복구 및 영구삭제 가능 영구삭제의 경우, 기간이 소요되면 삭제가 진행 또는 바로삭제시 영구삭제 (추가 필요)
9 글 수정 글의 제목, 본문, 첨부파일이 수정이 가능하고, 첨부파일의 경우 삭제할경우 서버에서는 바로 삭제되며, 다시 저장해야함 첨부파일 삭제 (리펙토링 필요)
10 글 작성 글의 제목, 본문, 첨부파일 글쓰기 가능 첨부파일의 크기 제한 필요,
본문의 길이 제한 (최대 1000자이내)
글의 제목의 경우 (최소 50자)
11 게시글 검색 게시글 검색 제목 및 글쓴이, 내용을 기준으로 검색이 가능  
12 게시글 조회 수 게시글 조회 개수 한페이지에 게시글의 경우, 30/50/100개 기준으로 설정이 가능하며, 기본 50개의 기준으로 확인 가능 추가필요

 

요구사항 정의서의 느낀점


 1차적으로, 개발이 완료된 이후에 리펙토링을 진행하며 코드를 수정하려고 하다가 어디부터 수정해야할지 기억도 잘안나고, 다시 해보려고하니 막막하게되었었다.
 
 그래서, 처음부터 다시 한번 생각해보자는 결과 요구사항 정의서를 진행해보았는데...
빼먹었던 부분도 많았고, 이렇게 한번에 표현하니 더욱 보기에도 명확하고 이것을 구현하기에 어떻게 할지에대해 대략적으로 파악이 되었다..

 다음부터는 개발을 진행할때, 최소한 요구사항에 대해서는 명확히 정리하고 개발을 들어가야 빼먹지 않고 더미코드를 덜 만들 수 있으며 기술스택 사용을 위한 프로젝트가 아니라,
프로젝트를 진행할때에 있어서 적재적소에 필요로한 기술을 찾아서 만들 수 있다는 것을 깨달을 수 있었다.
지금까지는 배웠던 것에 대해 사용해봐야한다는 느낌을 강하게 가지고 진행했었는데, 요구사항 정의서를 진행하며
그것들은 전부 도구들의 불과하고 적재적소에 필요한 것을 사용하는게 더 중요하구나를 깨달을 수 있었다...

반성의 자세로 다시 리펙토링을 진행하며, 더 완성된 게시판 프로젝트를 진행하고자 한다.


(리펙토링을 진행하면서 포스팅을 계속해서 적을 것이며, 혹여 보시고 문제가 있거나 더 나은 방향성이 있다면 댓글로 알려주시면 많은 도움이 될 것 같습니다..!)
긴 글 읽어주셔서 감사합니다~