2023. 11. 15. 20:17ㆍ개인노트-인강
사이드 프로젝트:10개 기술스택으로 구현하는 풀스택 서버리스 프로젝트 with React
Part 2. 프로젝트 기획하기
Ch01. 서비스 요구사항
# 서비스 요구사항 (User requirement) 작성법
## 왜 중요한가요?
- 프로젝트 초기 단계 → 코드 만으로 어떤 서비스를 만들 것인지, 시스템이 어떻게 동작할지 정의하기 어렵다
- 프로젝트 초기 단계→ 프로젝트 일정을 estimate 하고 구체화 시킬 수 있다
- 문제가 초기 단계에서 발견될 수 있다. 초기 단계에서 문제를 발견하고 방법을 강구하는 것이 시간을 절약하고 스마트 하게 일할 수 있는 방법
- 협업 측면 → 타 직군과 협업 하여 서비스의 요구사항을 정의하기에 가장 명확한 수단이다. 잘 정리된 요구사항은 오해의 여지가 없고 모두가 같은 곳을 바라볼 수 있게 함
- 유지보수 측면 → 추후 스펙 변경이 있을 때 어떤 기능을 지원하기로 했는지, 하지 않기로 했는지 빠르게 찾아볼 수 있다
## 어떤 것들이 요구사항이 될 수 있나요?
### 기능적 요구사항 (Functional requirements)
- 소프트웨어의 기능에 대한 요구사항들
- 사용자의 관점에서 필요한 기능
### 비기능적 요구사항 (Non-functional requirements)
- a.k.a. Software quality requirements
- 소프트웨어의 품질을 높이기 위한 요구사항. 시스템 운영을 판단하기 위한 기준을 정의하는 과정
- 성능(Performance)
- 예) 지출 내역 조회 API는 아무리 못해도 1초 내에는 응답을 줘야 함
- 보안(Security)
- 예) 비밀번호는 SHA-256 알고리즘으로 암호화 되서 저장
- 가용성(Availability) - 기간 동안 소프트웨어가 정상 동작하는 비율(%)
- 예) 99.999% 1y availablity = downtime은 약 5분
## 요구사항 작성법
### 1. User story에서 시작
철저히 사용자의 관점에서 소프트웨어를 통해 어떤 것을 하고 싶은지 생각한다.
- Role - 소프트웨어를 사용/관리하는 주체 (e.g. 로그인 하지 않은 사용자, 관리자, 일반 사용자 등)
- Goal - 하고 싶은 것
- Benefit - 이 것이 필요한 목적/이점
⇒ {Role}로서, 나는 {Benefit}을 위해 {Goal}을 이루고 싶다/가지고 싶다.
### 2. Software requirement 정의
User story를 만족시키기 위해 시스템에서 어떤 것들을 해야 할지, 기능적 요구사항(functional requirements)와 비기능적 요구사항(non-functional requirements)을 이용하여 정의한다.
## 그 밖의 체크리스트
- 지원할 디바이스 (태블릿, PC, 모바일)
- 웹 앱 이라면 지원할 브라우저 최소 사양
- 모바일 앱이라면 지원할 모바일의 스크린 사이즈, OS 최소 사양
- 보안 - 패스워드 암호화
- 서비스 지역 - 전세계? 한국? 북미?
# 더치페이 서비스 요구사항 작성하기
User story 작성법 ⇒ {Role}로서, 나는 {Benefit}을 위해 {Goal}을 이루고 싶다/가지고 싶다.
## 더치페이 User story 작성하기
- 사용자로서, 나는 정산을 시작하기 위해 정산 이름 (모임 이름)을 입력하고 싶다.
- 사용자로서, 나는 누가 비용을 계산했고, 누가 얼마를 받아야 하는지를 계산하기 위해 정산에 참여할 사람들을 입력하고 싶다.
- 사용자로서, 나는 비용 정산을 위해 내가 쓴 비용을 입력하고 싶다.
- 사용자로서, 나는 비용 정산을 위해 다른 사람들이 쓴 비용도 입력할 수 있으면 좋겠다.
- 사용자로서, 나는 비용 입력이 끝나고 편의를 위해 누가 누구에게 얼마를 보내야 하는지 최적화된 정산 결과를 보고 싶다.
## 더치페이 Software requirement 작성하기
- User story를 기반으로 이를 충족시키기 위해 필요한 software requirements를 도출!
## 그 밖의 Software Requirements..
- 시스템은 Chrome browser 에서 최적화 되어서 작동해야 한다. → FR
- 시스템은 한국어를 지원해야 한다. → FR
- 시스템은 95% 이상의 요청에 대해 정산 결과를 1초 이내에 결과 값을 출력해야 한다. → NFR
- 시스템은 95% 이상의 요청에 대해 웹 페이지를 500ms 이내로 렌더링 해야 한다. → NFR
'개인노트-인강' 카테고리의 다른 글
풀스택 서버리스 프로젝트 with React - 6. 프로젝트 기획 (0) | 2023.11.22 |
---|---|
풀스택 서버리스 프로젝트 with React - 5. 프로젝트 기획 (0) | 2023.11.17 |
풀스택 서버리스 프로젝트 with React - 3. 마무리 (0) | 2023.11.14 |
풀스택 서버리스 프로젝트 with React - 2. 프로젝트 관리 (0) | 2023.11.10 |
풀스택 서버리스 프로젝트 with React - 1. 사이드프로젝트 첫 걸음 (0) | 2023.11.02 |