# 요구사항의 종류

1. 기능 요구사항 (Functional Requirements)

기능 요구사항은 애플리케이션이 제공해야 하는 특정 기능이나 서비스에 대한 요구사항이다. 사용자의 요구를 충족시키기 위한 시스템의 동작을 정의한다.

  • 기능 요구사항 예시
    • 사용자 인증: 사용자는 이메일과 비밀번호로 로그인할 수 있으며, 소셜 로그인(예: 구글, 페이스북) 기능도 지원한다.
    • 데이터 입력 및 저장: 사용자는 특정 형식의 데이터를 입력하고, 이 데이터는 데이터베이스에 저장된다.
    • 검색 기능: 사용자는 특정 조건에 따라 데이터를 검색할 수 있으며, 검색 결과는 필터링과 정렬 기능을 지원한다.
    • 알림 시스템: 사용자는 특정 이벤트(예: 메시지 수신, 활동 업데이트 등)에 대해 알림을 받을 수 있다.
    • 보고서 생성: 사용자는 시스템 내 데이터를 바탕으로 보고서를 생성하고 다운로드할 수 있다.

2. 비기능적 요구사항 (Non-Functional Requirements)

비기능적 요구사항은 애플리케이션의 성능, 보안, 사용성 등 시스템의 품질 특성을 정의한다. 이는 시스템이 기능적 요구사항을 충족하면서 어떻게 동작해야 하는지를 설명한다.

  • 비기능적 요구사항 예시
    • 성능: 시스템은 높은 트래픽 상황에서도 일정한 응답 시간을 유지하며, 페이지 로드 시간은 2초 이내로 제한된다.
    • 보안: 애플리케이션은 데이터 암호화, 사용자 인증, 접근 제어 등 보안 요구사항을 충족하며, 민감한 정보는 안전하게 보호된다.
    • 확장성: 시스템은 사용자 수나 데이터 양의 증가에 따라 쉽게 확장할 수 있다.
    • 호환성: 애플리케이션은 다양한 운영 체제(예: Windows, macOS, iOS, Android)와 브라우저(예: Chrome, Firefox, Safari)에서 호환된다.
    • 유지보수성: 시스템은 향후 기능 추가나 수정이 용이하도록 설계되며, 코드베이스는 잘 문서화된다.
    • 사용성: 애플리케이션은 직관적인 사용자 인터페이스를 제공하며, 사용자가 쉽게 배울 수 있도록 설계된다.

 

이러한 요구사항들은 애플리케이션의 성공적인 개발과 운영에 필수적이다. 기능 요구사항은 애플리케이션이 제공할 서비스와 기능을 정의하며, 비기능적 요구사항은 시스템의 품질과 성능을 보장한다. 다음은 이러한 요구사항들을 정의하기 위한 요구사항 프로세스이다.

 

# 요구사항 프로세스

1. 회의

  • 고객의 문제 파악: 고객과의 초기 회의를 통해 현재 시스템 또는 프로세스에서 발생하는 문제점을 이해하고, 이 문제가 비즈니스에 미치는 영향을 분석한다. 고객이 경험하는 문제를 구체적으로 정의하고 우선순위를 매긴다.
  • 단기, 중기, 장기 목표, 예산 제약 파악(비지니스): 고객의 단기적인 목표와 중장기적인 비즈니스 목표를 이해하며, 이를 바탕으로 시스템 요구사항을 설정한다. 또한, 프로젝트에 할당된 예산과 시간 제약을 고려하여 요구사항의 범위와 우선순위를 조정한다.

2. 고객의 도메인 전문가에게 도움 요청

  • 도메인 전문가 식별 및 협력: 고객의 도메인 지식이 풍부한 전문가를 식별하고, 이들과 협력하여 고객의 업무 프로세스와 요구사항을 깊이 이해한다. 도메인 전문가의 인사이트를 바탕으로 보다 정확한 요구사항을 도출한다.

3. 도메인 전문가와 세션

  • 기존 프로세스 방법 파악: 도메인 전문가와의 세션을 통해 현재 사용 중인 프로세스와 시스템의 방법론을 이해한다. 기존의 문제점과 비효율성을 분석하여 개선점을 식별한다.
  • 현재 문제 해결법 이해: 도메인 전문가와 협력하여 현재 문제를 해결하기 위해 사용하고 있는 방법론과 도구를 검토한다. 현재 해결책의 장단점을 이해하고, 개선 가능성을 논의한다.
  • 프로토타입 만들고 요구사항 수정: 초기 요구사항을 바탕으로 프로토타입을 제작하여 고객과 도메인 전문가에게 시연한다. 프로토타입을 통해 실질적인 피드백을 받고, 이를 바탕으로 요구사항을 수정하고 보완한다.

4. 프로토타입 설계와 요구사항 정의 및 설명 반복

  • 프로토타입 설계: 수정된 요구사항을 기반으로 프로토타입을 다시 설계한다. 프로토타입은 실질적인 기능을 시연할 수 있도록 하여, 요구사항이 실제로 어떻게 구현될 수 있는지를 시각적으로 나타낸다.
  • 요구사항 정의 및 설명 반복: 프로토타입을 통해 요구사항을 계속해서 정의하고 설명하며, 고객과 도메인 전문가의 피드백을 반영하여 반복적으로 수정한다. 이 과정을 통해 요구사항의 정확성을 높이고, 최종적인 시스템 요구사항을 확정한다.

이러한 반복 프로세스는 요구사항이 명확히 정의되고, 고객의 기대와 비즈니스 목표에 부합하는 시스템이 개발될 수 있도록 한다.

+ Recent posts