소프트웨어 요구사항 명세서란?
소프트웨어 요구사항 명세서(SRS)는
“이 소프트웨어가 무엇을 해야 하는가”를 문서로 정리한 것이다.
개발자가 마음대로 상상해서 만드는 게 아니라,
사용자·기획자·발주처가 원하는 기능과 조건을 정확히 문서로 고정해두는 역할을 한다.
쉽게 말하면
“이 프로그램은 이렇게 만들어야 한다”를 모두가 같은 기준으로 이해하기 위한 설계 전 계약서 같은 문서다.
왜 필요한가?
요구사항을 말로만 주고받으면 이런 문제가 생긴다.
- “그런 기능 말한 적 없는데요?”
- “난 이렇게 이해했는데?”
- 개발 다 끝났는데 처음 의도랑 다름
그래서 SRS는
- 요구사항 오해 방지
- 범위(scope) 고정
- 일정·비용 산정 기준
- 개발·테스트 기준 문서
역할을 한다.
소프트웨어 요구사항의 종류
요구사항은 크게 두 가지로 나뉜다.
기능 요구사항
시스템이 “무엇을 할 수 있어야 하는지”
예시
- 사용자는 회원가입을 할 수 있어야 한다
- 로그인 후 마이페이지를 볼 수 있어야 한다
- 게시글을 작성, 수정, 삭제할 수 있어야 한다
비기능 요구사항
“어떻게 동작해야 하는지”, 성능·보안·품질 기준
예시
- 응답 시간은 2초 이내여야 한다
- 하루 10만 명 접속을 견딜 수 있어야 한다
- 비밀번호는 암호화해서 저장해야 한다
- 모바일·PC 모두 지원해야 한다
요구사항 명세서에 들어가는 주요 내용
보통 SRS에는 이런 항목들이 들어간다.
개요
- 프로젝트 목적
- 대상 사용자
- 시스템 범위
기능 요구사항
- 화면별, 기능별 상세 동작
- 입력값, 처리 과정, 출력 결과
비기능 요구사항
- 성능, 보안, 안정성, 호환성
- 운영·배포 환경
제약 사항
- 사용해야 하는 기술 스택
- 법적·정책적 제한
- 예산·일정 제약
용어 정의
- 프로젝트에서 쓰는 특수 용어 정리
좋은 요구사항 명세서의 조건
좋은 SRS는 이렇게 생겼다.
- 모호한 표현이 없다
- “적당히”, “빠르게” 같은 말 금지
- 누구나 읽고 같은 의미로 이해 가능
- 개발자가 바로 구현할 수 있을 정도로 구체적
- 테스트 기준으로도 사용 가능
예를 들면
“로그인은 빨리 돼야 한다” ❌
“로그인 요청 후 2초 이내에 결과를 반환해야 한다” ⭕
정리
소프트웨어 요구사항 명세서는
- 개발 전에 “무엇을, 어떻게 만들지”를 확정하는 문서
- 분쟁과 수정 지옥을 막는 방패
- 개발, 테스트, 유지보수의 기준점
이라고 보면 된다.
'STUDY' 카테고리의 다른 글
| 응용구조의 설계 (0) | 2026.01.12 |
|---|---|
| 오픈소스 (0) | 2026.01.09 |
| 실전 오픈소스 기여 프로젝트 (0) | 2026.01.07 |
| 프로그래밍 패러다임 (0) | 2026.01.06 |
| 디자인 패턴 (0) | 2026.01.06 |