Part 7. 스프링 MVC 프로젝트의 기본 구성

7.2 프로젝트를 위한 요구사항

  • 프로젝트를 진행하기 전 요구사항을 인식하고, 이를 설계하는 과정이 필요하다.
  • 이를 흔히 요구사항 분석 설계라고 하는데, 고객이 원하는 내용이 무엇이고, 어느 정도까지 구현할 것인가에 대한 프로젝트의 범위를 정하는 것을 목적으로 한다.
  • 요구사항은 실제로 방대해 질 수 있으므로, 프로젝트에서는 단계를 정확히 구분해 주는 것이 좋다.
  • 팀원들이 경험이 풍부하다면 초기 버전을 상당히 많은 기능을 포함시켜 개발을 진행할 수 있지만, 그렇지 못하다면 최대한 단순하고 눈에 보이는 결과를 만들어 내는 형태로 진행하는 것이 좋다.
  • 요구사항은 온전한 문장으로 정리하는 것이 좋다.
  • 주어는 '고객'이고 목적어는 '대상'이 된다.
  • 여기서 '대상'은 결국 데이터의 베이스 설계와 시스템 설계에서 가장 중요한 용어가 된다.(다른 용어로는 도메인이라는 단어를 사용하는 경우도 많다.)
  • 예를 들어, 게시판의 경우 다음과 같이 요구사항을 정리할 수 있다.
    • 고객은 새로운 게시물을 등록할 수 있어야 한다.
    • 고객은 특정한 게시물을 조회할 수 있어야 한다.
    • 고객은 작성한 게시물을 삭제할 수 있어야 한다.
    • 기타 등등
  • 이 경우 '대상'은 '게시물'이 되므로, 게시물이라는 용어가 필요하게 되고, 게시물의 구조를 판단해 데이터베이스 테이블을 설계하게 된다.
  • 예를 들어, 게시물의 경우 'tbl-board'라는 테이블을 설계하고, 테이블과 관련된 VO 클래스 역시 org.zerock.domin.BoadVO와 같은 이름으로 설계될 수 있다.
  • 게시물과 관련된 로직은 org.zerock.service.BoadService가 될 수 있고, org.zerock.controller.BoardController나는 이름의 클래스를 생성하는 연속적 과정을 거치게 된다.

7.2.1 요구사항에 따른 화면 설계

  • 요구사항에서 나오는 용어를 기준으로 테이블이나 클래스의 이름들이 정해지듯이, 요구사항은 화면에도 영향을 미치게 된다.
  • '고객이 새로운 게시물을 등록할 수 있어야 한다'면 당연히 그에 해당하는 화면을 구성하게 된다.
  • 이 구성은 '어떤 내용들을 입력하게 될 것인가'에 세부적인 설계가 되고, 이를 기준으로 테이블이나 클래스의 멤버 변수(인스턴스 변수)들을 설계하게 된다.
  • 실제 프로젝트에서는 '스토리 보드를 만들게 된다.'
  • 이러한 화면을 설계할 때 주로 Mock-up(목업) 툴을 이용하는 경우가 많다.
  • 대표적으로는 PowerPoint나 Balsamiq studio, Pencil Mockup 등의 SW를 이용해 작성해 보면 좋다.
  • 각 화면을 설게하는 단계에서는 사용자가 입력해애ㅑ 하는 값과 함계 전체 페이지의 흐름이 설계 된다.
  • 이 화면의 흐름을 URL로 구성하게 되는데 이 경우 GET/POST 방식에 대해 같이 언급해 두는 것이 좋다.
  • 예제로 만들 게시물 관리는 리스트 화면에서 시작해 아래 그름과 같은 흐름을 가지게 된다.
profile
한 걸음 한 걸음 나아가는 개발자

0개의 댓글