[꼼꼼한 개발자] 꼼코더
27. 코드로 배우는 스프링 웹 프로젝트 - [스프링 MVC 프로젝트의 기본 구성] - 프로젝트를 위한 요구사항, 요구사항에 따른 화면 설계 본문
27. 코드로 배우는 스프링 웹 프로젝트 - [스프링 MVC 프로젝트의 기본 구성] - 프로젝트를 위한 요구사항, 요구사항에 따른 화면 설계
꼼코더 2023. 1. 6. 01:09👷🏻♂️ 프로젝트를 위한 요구사항
프로젝트 진행 전에 고객의 요구사항을 인식하고, 이를 설계하는 과정이 필요하다.
이를 흔히 요구사항 분석 설계라고 한다.
‘고객이 원하는 내용이 무엇이고, 어느 정도까지 구현할 것인가'에 대한 프로젝트 범위를 정하는 것이 목적이다.
요구사항은 너무 방대해질 수 있으므로, 단계를 정확히 구분해 주는 것이 좋다.
따라서 경험이 풍부하다면 초기 버전을 많은 기능을 포함시킬 수 있지만
경험이 적다면 최대한 단순하고 눈에 보이는 결과를 만들어 내는 형태로 진행하는 것이 좋다.
요구사항은 온전한 문장으로 정리하는 것이 좋다.
주어는 ‘고객’이고 목적어는 ‘대상’이 된다.
여기서의 ‘대상’은 결국 데이터의 베이스 설계와 시스템 설계에서 가장 중요한 용어가 된다.
다른 용어로는 도메인(domain)이라는 단어를 사용하는 경우도 많다.
예를 들어, 게시판의 경우 다음과 같이 요구사항을 정리할 수 있다.
- 고객은 새로운 게시물을 등록할 수 있어야 한다.
- 고객은 특정한 게시물을 조회할 수 있어야 한다.
- 고객은 작성한 게시물을 삭제할 수 있어야 한다.
- 기타 등등
이 경우 ‘대상’ = ‘게시물’ 이 되므로, 게시물이라는 용어(도메인)가 필요하게 된다
게시물의 구조를 판단해서 데이터베이스 테이블을 설계하게 된다.
💁🏻♂️ 설계 예시
- 게시물 → tbl_board (테이블)
- 테이블과 관련된 VO 클래스 → org.zerock.domain.BoradVO
- 게시물과 관련된 로직 → org.zerock.service.BoardService
- 컨트롤러 → org.zerock.service.BoardController
🖥 요구사항에 따른 화면 설계
요구사항은 화면에도 영향을 미치게 된다.
‘고객이 새로운 게시물을 등록할 수 있어야 한다’ 면 당연히 그에 해당하는 화면을 구성하게 되듯이 말이다.
이 구성은 ‘어떤 내용들을 입력하게 될 것인가’에 세부적인 설계가 되고
이를 기준으로 테이블이나 클래스의 멤버 변수(인스턴스 변수)들을 설계하게 된다.
실제 프로젝트에서는 아래 그림과 같은 ‘스토리 보드’를 만들게 된다.
이런 화면 설계시 툴을 이용하는 경우가 많다(PowerPorin, PencilMockup 등)
각 단계에는 사용자가 입력하는 값과 전체 페이지의 흐름이 설계된다.
화면 흐름은 URL로 구성하게 되는데 이 경우 Get/Post 방식에 대해 언급해 준다.
예제로 만들 게시물 관리는 리스트 화면에서 시작해서 아래 그림과 같은 흐름을 가지게 된다.
👀 다음 글에서 예제 프로젝트를 구성해 보도록 하자
🧹 최종 정리
프로젝트 진행 전에 요구사항 분석 설계과정이 필요하다.(고객의 요구사항을 인식하고, 이를 설계하는 과정)
프로젝트의 목적은 고객이 원하는 내용이 무엇이고, 어느 정도까지 구현할 것인가'
요구사항은 단계를 정확히 구분해주고 최대한 단순하고 눈에 보이는 결과를 만들어 내는 형태로 진행한다.
요구사항의 주어는 ‘고객’이고 목적어는 ‘대상’이 된다.
여기서의 ‘대상’은 결국 데이터의 베이스 설계와 시스템 설계에서 가장 중요한 용어 (도메인(domain))
위 내용은 코드로 배우는 스프링 웹 프로젝트 교재를 참고하여 작성되었습니다.