부트캠프/따로 공부
사이드 프로젝트 with React 10. 서비스 요구사항 작성하기
하이고니
2023. 2. 28. 09:03
서비스 요구사항(User requirement) 작성하기
WHY?
- 프로젝트 초기 단계 -> 코드만으로 어떤 서비스를 만들 것인지, 시스템이 어떻게 동작하게 할지 정의하기는 어렵다.
- 프로젝트 초기 단계 -> 프로젝트 일정을 estimate하고 구체화시킬 수 있다.
- 문제가 초기 단계에서 발견될 수 있다. 초기 단계에서 문제를 발견하고 방법을 강구하는 것은 시간을 절약하고 스마트하게 일할 수 있는 방법.
- 협업 측면 -> 타 직군과 협업하며 서비스의 요구사항을 정의하기에 가장 명확한 수단이다. 잘 정리된 요구사항은 오해의 여지가 없고 모두가 같은 곳을 바라볼 수 있게 함
- 유지 보수 측면 -> 추후 스펙 변경이 있을 때 어떤 기능을 지원하기로 했는지, 하지 않기로 했는지 빠르게 찾아볼 수 있다.
기능적 요구사항 (Functional requirements)
- 소프트웨어의 기능에 대한 요구사항
- 사용자의 관점에서 필요한 기능
- ex) 로그인한 사용자에게 글을 쓸 수 있는 권한을 제공해야한다.
비기능적 요구사항 (Non-functional requirements)
- a.k.a software quality requirements
- 소프트웨어 품질을 높이기 위한 요구사항. 시스템 운영을 판단하기 위한 기준을 정의하는 과정
1. 성능(Performance)
- 로그인은 100ms 이내여야 한다.
- 지출 내역 조회 API는 아무리 못해도 1초 내에 응답해야 한다.
2. 보안(Security)
- 비밀번호는 SHA-256 알고리즘으로 암호화되어 저장
3. 가용성(Availability) - 기간 동안 소프트웨어가 정상 동작하는 비율(%)
- 99.999% 1y availability = downtime 약 5분
요구사항 작성법
1. User story에서 시작
철저히 사용자의 관점에서, 소프트웨어를 통해 어떤 것을 하고 싶은지 생각한다.
- Role - 소프트웨어를 사용/관리하는 주체 (e.g. 로그인하지 않은 사용자, 관리자, 일반 사용자 등)
- Goal - 하고 싶은 것
- Benefit - 이 것이 필요한 목적/이점
나는 {Role}로서 {Benefit}을 위해 {Goal}을 이루고 싶다.
2. Software requirement 정의
User story를 만족시키기 위해 시스템에서 어떤 것들을 해야 할지, 기능적 요구사항(functional requirements)와 비기능적 요구사항(non-functional requirements)을 이용하여 정의한다.
예시)
User story | Software Requirement |
나는 관리자로서, 직원들과의 면담 및 연봉 협상을 위해, 직원들의 연봉 정보를 조회하고 싶다. | - 시스템은 로그인 체계를 가지고 있어야 한다. - 시스템에 로그인한 유저는 관리자/직원의 역할로 나뉜다. - 관리자는 시스템을 통해 직원들의 연봉 정보를 조회할 수 있다. |
나는 직원으로서, 개인 정보 보호를 위해 나와 관리자만 연봉 정보를 조회할 수 있기를 희망한다. | - 직원은 관리자와 다른 직원들의 연봉을 조회할 수 없다. - 직원은 자신의 연봉 정보를 조회할 수 있다. |
기타 체크리스트
- 지원할 디바이스(태블릿, PC, 모바일)
- 웹 앱이라면 지원할 브라우저 최소 사양
- 모바일 앱이라면 지원할 모바일의 스크린 사이즈, OS 최소 사양
- 보안 - 패스워드 암호화 여부
- 서비스 지역 - 전세계? 한국? 북미? 아시아??
#패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #환급챌린지 #직장인인강 #직장인자기계발
#패캠인강후기 #패스트캠퍼스후기 #오공완 #사이드프로젝트10개기술스택으로구현하는풀스택서버리스프로젝트withReact
* 필수 삽입 URL
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr