Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
연습문제 풀기
#pragmatic
2년 전
536

연습문제 42

다음 중 어느 것이 진정한 요구사항이겠는가?

가능하다면, 진정한 요구사항이 아닌 것을 좀 더 유용하게 고쳐 써 보아라.

📌 응답 시간은 500ms 이하여야 한다.

💡 필요에 의한 요구사항이라고 생각한다. 애플리케이션의 특정 환경 조건을 충족하기 위해 혹은 비즈니스 관점(사용자 층이 바라는 애플리케이션)에 있어서도 요구사항이다.

📌 대화 상자의 배경은 회색이다.

💡 (책을 읽기 전엔 분명 요구사항이라고 생각했지만) 사용자 인터페이스는 요구사항의 경계가 좀 더 모호하다. 애플리케이션의 대화 상자 배경은 사용자의 설정, 즉, 환경에 따라 가변적이며 회색이라는 컬러는 초기화 상태를 표현하는 정책의 일부일 수 있다. 그래서 이건 요구사항이 아니라고 생각한다.

더 나아가 알아야 할 것은 사용자가 인터페이스 스타일을 변경할 수 있는지에 대한 질문이다. 이 질문이 선행된다면, 왜 위 조건이 요구사항이 아닌지 알게 된다.

📌 애플리케이션은 몇 개의 앞단front-end 프로세스와 하나의 뒷단back-end 서버로 구성된다.

💡아키텍처는 요구사항이 아니다. 실직적인 비즈니스 문제를 해결하기 위한 수단으로 아키텍처가 변경될 수 있다. 더 나은 애플리케이션 서비스 위해 확장, 이전 등 수정될 수 있다고 생각한다. 더 나아가 사용자가 왜 이런 질문을 했는가 생각해 볼 수 있다. 아마 이전 경험에서 나온 작업 관행이나 현실적으로 한정된 자원의 제약으로 위 조건이 나오지 않았나 추측해 본다. 어떤 필요에 의해 나온 조건인지 분명히 짚고 넘어가야 할 필요가 있다.

📌 사용자가 숫자가 아닌 글자를 숫자 필드에 입력하면, 시스템은 삐 소리를 내고 입력을 받아들이지 않는다.

💡 코번의 유스케이스 예제의 ‘발생 가능한 다양한 에러'에서 볼 법한 예시인 것 같다. 이것은 요구사항이다. 하지만 이렇게 구체적인 예시를 하나 하나 늘어놓기 시작한다면 요구사항은 끝이 없을 것이다. 지나치게 자세한 명세에서 나오듯, 좋은 요구사항 문서는 추상적이다. 요구사항에 관한 한 비즈니스에 필요한 사항을 정확히 반영하는 가장 간단한 진술문이 최고다. (p327)

이것을 추상화 해보면, 사용자는 필드에 올바르지 않은 값을 입력할 수 없다. 입력할 경우 경고를 받는다. 정도가 될 것 같다.

📌 애플리케이션 코드와 데이터의 크기는 256kb 이내여야 한다.

💡 이것은 명백한 요구사항처럼 보인다. 1번 요구사항과 같은 맥락이지만 좀 더 환경적인 제약 조건에 가깝다고 생각한다. 웹 애플리케이션보다 하드웨어의 스펙에 영향을 많이 받는 임베디드 애플리케이션의 제약 조건이 명확할 수 있으므로 꼭 해결해야할 중요한 요구사항이 되겠다.