Note ≣ | 기능 요구 사항 vs 비기능 요구 사항
기능 요구 사항은 시스템이 수행해야 하는 구체적인 기능이나 동작을 명시하는 것입니다. 예를 들어 “사용자는 이메일로 비밀번호 재설정 링크를 받을 수 있어야 한다.”라는 요구 사항이 이에 해당합니다.
비기능 요구 사항은 시스템의 품질이나 성능과 관련된 제약 조건을 나타냅니다. “시스템은 동시에 사용자를 1,000명 처리할 수 있어야 한다” 또는 “웹 페이지 로딩 시간은 3초를 넘지 않아야 한다.”라는 요구 사항이 이에 해당합니다.
즉, 기능 요구 사항이 무엇을 할 것인지 정의한다면, 비기능 요구 사항은 그것을 얼마나 잘할 것인지 정의합니다.
비기능 요구 사항 외에 다른 요구 사항도 아키텍처 측면에서 중요할 수 있습니다. 이를 판별하는 유용한 기준은 해당 요구 사항이 변경될 때 어느 정도 재작업이 필요한지 판단하는 것입니다. 상당한 수준의 재작업이 필요하다면, 이는 아키텍처적으로 중요한 요구 사항에 해당합니다.