요구사항? 요청사항?
진행중인 프로젝트에 투입되거나 시작되는 프로젝트에 투입되었을 때 아무래도 가장 먼저 하는게 분석이지 않을까 한다.
코드 분석이든 업무 분석이든
기능을 만들거나 테이블을 만들때 요구사항정의서를 참고하게 되는 경우가 대부분이다.
이전에 진행했던 프로젝트들의 요구사항정의서를 만들어 본적이 없이 그냥 보기만 했다.
그 요구사항 정의서들은 각 프로젝트마다 거의 제각각으로 보이기도 했다.
요구사항 또는 요청사항을 만들어 보는 연습도 해볼겸 작성해보면 어떨까 싶었다.
완벽하진 않아도 일단 해보는 것이 좋을 듯 싶다.
소프트웨어 방법론은 여러가지이다.
폭포수라던가 애자일이라던가
어쨌든 두 방법론 모두 요구사항을 어떻게 정의해 나가는지가 중요하다고 생각이 들었다.
대부분의 프로젝트는 폭포수 방법론을 따르는 경우가 많았고 요구사항을 모두 정의한 뒤에 프로젝트 개발에 들어가는 경우가 많았다.
하지만, 모든 프로젝트가 그렇듯 개발기간 중에 요구사항은 시시때떄로 변경되었다.
어떻게 보면 매번 요구사항이 변경되는 것은 고질적인 문제가 아닐까 싶기도 하다.
애자일 방법론으로 프로젝트를 진행해 본적은 없다.
그렇기 때문에 생소하기도 하고 개념적으로 이해한다고 하더라고 경험이 없는 것은 아쉬운 마음에 아는 한도 내에서
애자일 방법론(그냥 내 마음대로)에 따라 해보려고 한다.
https://www.atlassian.com/ko/agile/product-management/requirements
위 글을 참고해 보았다.
총 4단계로 나눠 져있는데
여기서는 목표를 적하고 이 목표에 대한 스토리를 작성해 본다.
1. 목표
요구사항의 목표는 사용자가 회원가입을 하고 로그인을 완료하는 것이다.
- 회원가입
- 로그인 성공
이라는 2개의 목표를 가지고 있다.
2. 스토리
- 사용자는 로그인을 하려고 한다.
- 로그인을 하기 위해서는 이메일과 비밀번호가 필요한다.
- 회원가입이 안되었을 경우 회원 가입을 진행한다.
- 회원가입이 되어있을 경우 로그인을 진행한다.
- 로그인이 성공하면 AccessToken과 RefreshToken / 사용자 정보를 전달 받는다.
- 로그인이 실패하면 실패사유를 전달 받는다.
사용자가 로그인에 성고하기위한 스토리를 작성해 보았다.
위 스토리를 토대로 세부적으로 조금 더 작성해 보자.
- 사용자는 로그인을 하려고 한다.
- 사용자가 로그인 화면에 접근할 수 있는 URL이 필요하다.
- 로그인을 하기 위해서는 이메일과 비밀번호가 필요한다.
- 로그인 화면에는 이메일과 비밀번호입력 받는 화면
- 로그인 실행 버튼
- 비밀번호 마스킹
- 회원가입이 안되었을 경우 회원 가입을 진행한다.
- 회원가입 화면으로 이동하는 버튼
- 회원가입시 필수 사항과 선택 사항
- 회원가입이 되어 있을 경우 로그인을 진행한다.
- 로그인이 성공하면 AccessToken과 RefreshToken / 사용자 정보를 전달 받는다.
- 로그인 인증 방식은 JWT
- 토큰 만료 시간
- 반환할 사용자 정보 항목
- 로그인 실패하면 실패사유를 전달 받는다.
- 실패시 메시지
- 메시지 표시 화면
등을 좀더 세부적으로 작성해 보았다.
회원가입 화면으로 넘어 갔을 때 는 어떨까
- 회원 가입에 필요한 항목을 작성한다.
- 필수 : 이메일 / 비밀번호 / 비밀번호 확인 / 이름
- 회원 가입 버튼 클릭
- 필수 항목 체크
- 유효성 검사
- 회원 가입 취소 시 이전 화면 으로 이동
- 취소 버튼
- 이전에 접속한 URL
- 회원 가입 성공시 로그인 화면으로 이동
- 회원가입 실패시 실패 사유 알림
- 실패시 메시지
- 메시지 표시 화면
등을 작성해 볼 수 있을 거 같다.
분류해보기
위에서 작성한 스토리를 바탕으로 클라이언트 / 서버 / 데이터베이스 3개의 관점으로 분류해보면 어떨까 싶다.
데이터 베이스
사용자는 이메일과 비밀번호를 로그인 시에 입력하고 또 회원가입 시 필수 정보로 입력하고 있다.그리고 이름을 필수 항목으로 받고 있다.
데이터 베이스에서는 이 항목들이 들어가야한다.
'project > 관리자 페이지' 카테고리의 다른 글
[관리자 페이지] UserEntity와 UserRepository와 테스트 (0) | 2024.05.14 |
---|---|
[관리자 페이지] Jira BackLog (0) | 2024.05.10 |
[관리자 페이지] DFD 그리기 연습 맞든 틀리든 우선 해보자! (0) | 2024.05.09 |
[관리자 페이지] 필요한 유틸리티 기능은 무엇이 있을까? (0) | 2024.05.08 |
[관리자 페이지] Spring boot + H2 + JPA (0) | 2024.05.07 |