이번 시간에는 웹 기반 문서 편집기 프로젝트를 본격적으로 시작하기 전에 소프트웨어 요구사항 명세서(SRS; Software Requirements Specification) 를 작성하는 과정을 진행했습니다.
1. 소프트웨어 요구사항 명세서란?
소프트웨어 요구사항 명세서(SRS) 는 개발할 소프트웨어가 무엇을 해야 하는지, 어떤 환경에서 동작해야 하는지를 체계적으로 정리한 문서입니다.
개발을 시작하기 전에 SRS를 먼저 작성하면 다음과 같은 이점이 있습니다.
- 방향성 정렬 — 팀원 모두가 같은 목표를 향해 작업할 수 있습니다.
- 범위 명확화 — 무엇을 만들고, 무엇을 만들지 않을지 경계를 명확히 합니다.
- 의사소통 기준 — 개발자, 기획자, 사용자 간의 공통된 언어가 됩니다.
- 변경 관리 — 나중에 요구사항이 바뀌었을 때 기준 문서로 활용할 수 있습니다.
2. 요구사항의 종류
요구사항은 크게 두 가지로 나뉩니다.
| 종류 | 설명 | 예시 |
|---|
| 기능 요구사항 | 시스템이 반드시 수행해야 하는 기능을 정의합니다 | 사용자는 문서를 생성·수정·삭제할 수 있어야 합니다 |
| 비기능 요구사항 | 시스템의 성능, 보안, 안정성 등 품질 기준을 정의합니다 | 페이지 로딩 시간은 2초 이내여야 합니다 |
기능 요구사항이 "무엇을 해야 하는가" 를 다룬다면, 비기능 요구사항은 "얼마나 잘 해야 하는가" 를 다룬다고 볼 수 있습니다.
3. 웹 기반 문서 편집기 SRS 작성
프로젝트 개요
웹 기반 문서 편집기는 사용자가 브라우저에서 문서를 작성하고 편집하며 저장할 수 있는 서비스입니다. 마크다운 형식을 지원하고, 실시간 미리보기 기능을 제공하는 것을 목표로 합니다.
기능 요구사항
사용자 인증
- 사용자는 회원가입과 로그인을 통해 서비스를 이용할 수 있어야 합니다.
- 로그인한 사용자만 문서를 생성·수정·삭제할 수 있어야 합니다.
문서 관리
- 사용자는 새 문서를 생성할 수 있어야 합니다.
- 사용자는 기존 문서를 불러와 편집할 수 있어야 합니다.
- 사용자는 문서를 삭제할 수 있어야 합니다.
- 작성된 문서는 자동 저장되어야 합니다.
편집 기능
- 마크다운 문법을 지원해야 합니다.
- 작성 중 실시간으로 미리보기를 제공해야 합니다.
- 제목, 본문, 목록, 코드 블록 등 기본 서식을 지원해야 합니다.
문서 공유
- 사용자는 문서를 공개 또는 비공개로 설정할 수 있어야 합니다.
- 공개 문서는 링크를 통해 다른 사용자와 공유할 수 있어야 합니다.
비기능 요구사항
성능
- 페이지 초기 로딩 시간은 3초 이내여야 합니다.
- 문서 저장 요청에 대한 서버 응답 시간은 1초 이내여야 합니다.
보안
- 사용자 비밀번호는 암호화하여 저장해야 합니다.
- 인증되지 않은 사용자는 타인의 비공개 문서에 접근할 수 없어야 합니다.
호환성
- Chrome, Safari, Firefox 등 주요 브라우저에서 정상 동작해야 합니다.
- 모바일 환경에서도 기본적인 편집 기능이 동작해야 합니다.
유지보수성
- 컴포넌트 단위로 코드를 분리하여 재사용성과 유지보수성을 높여야 합니다.
4. SRS 작성 시 주의할 점
SRS를 작성할 때는 다음과 같은 점을 유의해야 합니다.
- 모호한 표현 피하기 — "빠르게 동작해야 한다" 대신 "응답 시간이 1초 이내여야 한다"처럼 측정 가능한 기준으로 작성합니다.
- 우선순위 설정 — 모든 기능이 동등하게 중요하지 않습니다. Must Have / Should Have / Nice to Have 로 구분하면 개발 순서를 잡기 쉽습니다.
- 이해관계자 관점 포함 — 개발자 입장뿐만 아니라 실제 사용자가 어떤 경험을 원하는지 반영해야 합니다.