STUDY

소프트웨어 요구사항 명세서

Lim임 2026. 1. 11. 23:20

소프트웨어 요구사항 명세서란?

소프트웨어 요구사항 명세서(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