2025. 3. 12. 15:39ㆍ개발/개발 방법론
2. 요구사항 문서 작성
요구사항 문서 작성은 소프트웨어 개발의 방향을 결정하는 중요한 과정입니다.
이 문서에서는 요구사항 명세서(SRS)의 작성법, 실제 프로젝트 사례 분석, 간단한 애플리케이션 요구사항 문서 작성 실습을 포함하여 상세히 정리하겠습니다.
1️⃣ 요구사항 문서 작성 개요
요구사항 문서(Software Requirement Specification, SRS)는 소프트웨어가 어떤 기능을 수행해야 하는지 문서화한 문서입니다.
개발팀, 테스트팀, 프로젝트 관리자, 이해관계자가 공통된 기준을 가질 수 있도록 요구사항을 명확하게 정의하는 것이 목적입니다.
🔹 요구사항 문서(SRS) 작성의 중요성
📌 개발 방향을 명확히 설정 – 개발팀이 구현해야 할 기능을 정확히 이해
📌 일관된 커뮤니케이션 제공 – 이해관계자 간의 요구사항 불일치를 방지
📌 프로젝트 리스크 감소 – 요구사항 변경으로 인한 개발 비용 상승 방지
📌 소프트웨어 품질 보장 – 기능적, 비기능적 요구사항을 명확히 정의하여 기대하는 품질을 충족
2️⃣ 요구사항 명세서(SRS) 작성법
요구사항 명세서는 IEEE 830 표준을 기반으로 작성하는 것이 일반적이며, 다음과 같은 구성 요소를 포함합니다.
📌 SRS 주요 구성 요소
섹션 | 설명 |
1. 개요 (Introduction) | 프로젝트 개요 및 목적 |
2. 범위 (Scope) | 소프트웨어가 수행할 기능과 한계 |
3. 정의 (Definitions, Acronyms, and Abbreviations) | 주요 용어 및 약어 정의 |
4. 참고 문서 (References) | 관련 문서 및 기술 문서 목록 |
5. 전반적인 설명 (Overall Description) | 사용자 요구사항, 시스템 환경 |
6. 기능 요구사항 (Functional Requirements) | 시스템이 제공해야 하는 기능 정의 |
7. 비기능 요구사항 (Non-Functional Requirements) | 성능, 보안, 확장성 등의 요구사항 |
8. 시스템 인터페이스 (External Interface Requirements) | 다른 시스템과의 연동 방법 |
9. 제한 사항 (Constraints) | 개발 환경, 규제 요구사항 |
🔹 요구사항 작성 시 유의할 점
📌 명확하고 구체적으로 작성
❌ "시스템이 빠르게 응답해야 한다." (X)
✅ "사용자 요청에 대한 응답 시간은 1초 이내여야 한다." (O)
📌 일관된 용어 사용
❌ "로그인 창", "인증 화면", "사용자 로그인 인터페이스" (X)
✅ "로그인 화면" (O)
📌 모호한 표현을 피함
❌ "사용자가 편리하게 사용할 수 있어야 한다." (X)
✅ "모든 주요 기능은 3번의 클릭 이내에 접근 가능해야 한다." (O)
3️⃣ 사례 분석: 실제 프로젝트의 요구사항 문서 검토
다음은 전자상거래 웹사이트 개발 프로젝트의 실제 요구사항 문서 예제입니다.
📌 요구사항 명세서(SRS) 예제
1. 개요
- 프로젝트 명: 전자상거래 웹사이트
- 목적: 사용자가 온라인에서 제품을 검색하고 구매할 수 있는 시스템 구축
2. 범위
- 사용자는 회원가입 후 제품을 검색 및 구매 가능
- 관리자는 제품을 추가 및 수정 가능
3. 기능적 요구사항
- FR-01: 사용자는 이메일과 비밀번호로 로그인할 수 있어야 한다.
- FR-02: 사용자는 제품을 장바구니에 추가하고 결제할 수 있어야 한다.
- FR-03: 관리자는 제품을 등록, 수정, 삭제할 수 있어야 한다.
4. 비기능적 요구사항
- NFR-01: 웹사이트는 1초 이내에 검색 결과를 반환해야 한다.
- NFR-02: 결제 정보는 암호화되어 저장되어야 한다.
5. 시스템 인터페이스 요구사항
- API를 통해 결제 시스템(PayPal, Stripe)과 연동
- 외부 물류 시스템과 주문 정보 공유
💡 분석 포인트
- 기능적 요구사항과 비기능적 요구사항이 명확히 구분됨
- 숫자로 구분된 요구사항 코드(FR-01, NFR-01)를 사용하여 추적 가능
- 모호한 표현 없이 명확한 조건 정의
4️⃣ 실습: 간단한 애플리케이션 요구사항 문서 작성
이제 간단한 애플리케이션(예: 할 일 관리 앱)의 요구사항 명세서를 작성해 보겠습니다.
📌 애플리케이션 개요
- 앱 이름: SimpleTask
- 목적: 사용자가 할 일을 추가하고 완료할 수 있는 간단한 앱
📌 요구사항 명세서 예제
1. 개요
- 프로젝트 명: SimpleTask (할 일 관리 앱)
- 목적: 사용자가 해야 할 일을 추가, 수정, 삭제, 완료할 수 있는 앱
2. 범위
- 사용자는 로그인 없이 앱을 사용할 수 있음
- 할 일은 날짜별로 관리되며, 완료된 항목은 자동으로 분리됨
3. 기능적 요구사항
- FR-01: 사용자는 새로운 할 일을 추가할 수 있어야 한다.
- FR-02: 사용자는 기존 할 일을 수정할 수 있어야 한다.
- FR-03: 사용자는 완료한 할 일을 체크하여 구분할 수 있어야 한다.
4. 비기능적 요구사항
- NFR-01: 앱은 1초 이내에 할 일을 저장해야 한다.
- NFR-02: 앱은 오프라인 상태에서도 기존 할 일을 볼 수 있어야 한다.
5. 시스템 인터페이스 요구사항
- API를 통해 클라우드 동기화 기능 제공 (선택사항)
5️⃣ 요구사항 문서 작성 시 체크리스트
📌 요구사항이 명확한가? – 모호한 표현 없이 누구나 이해할 수 있어야 함
📌 기능적/비기능적 요구사항이 구분되었는가? – 개발팀과 QA팀이 요구사항을 쉽게 식별할 수 있도록 명확히 작성
📌 요구사항 번호를 붙였는가? – FR-01, NFR-01과 같이 식별 번호를 사용하면 추적 및 관리가 용이
📌 시스템 인터페이스 요구사항을 포함했는가? – 외부 API, 데이터 연동 등의 요구사항이 있는지 확인
📌 결론
📌 요구사항 명세서(SRS)는 소프트웨어 개발의 기준이 되며, 명확한 문서 작성이 필수적이다.
📌 기능적 요구사항과 비기능적 요구사항을 명확히 구분하여 작성해야 한다.
📌 요구사항 문서는 프로젝트 진행 중 발생할 수 있는 리스크를 줄이고, 개발 방향을 명확하게 설정하는 역할을 한다.
📌 실제 프로젝트에서 요구사항 문서를 체계적으로 작성하면, 개발 및 유지보수가 훨씬 쉬워진다. 🚀