Community

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

← Go back
Mission (3) 진짜 요구사항
#pragmatic
2년 전
870

📌 연습문제 33

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

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

📖 책의 해답 : 이 문장은 진짜 요구 사항처럼 보인다. 환경 때문에 애플리케이션에 제약을 추가해야 할 수 있다.

💡 나의 해답 : 응답시간의 경우 프로그래머의 능력으로 조절할 수 있으며, 프로젝트에서 중요한 의미이기에 진정한 요구 사항이라고 본다.

2. 모달 창의 바탕색은 회색이다.

📖 책의 해답 : 이 문장 자체만으로는 진짜 요구사항이 아니다. 하지만 진짜로 무엇이 필요한지 알아내려면 마법의 질문을 던져야 한다. ”왜?”(중략)

💡 나의 해답 : 회색이 아니라 다른 색을 사용하면 안되는 구체적 이유라도 있는가? 라는 질문을 하게 만든다. 회색에도 여러 색이 존재한다. (짙은, 옅은, 밝은 회색 등 실제로는 코드와 숫자의 조합) 따라서 이 문장은 진정한 요구 사항이라고 할 수 없다. 지나치게 추상적이라고 본다. 이를 진정한 요구 사항으로 만들기 위해서는 "사이트의 배경 색이 회색이며, 그와 통일성을 가지기 위해 모달창 또한 회색이며, 조금의 구분을 위해 모달창은 사이트의 배경 색보다 조금 밝은 색으로 한다."라고 구체화 시키는 것이 좋을 것이라 생각한다.

3. 애플리케이션은 프론트엔드 프로세스 몇 개와 백엔드 서버로 구성된다.

📖 책의 해답 : 이 문장은 요구사항이 아니다. 이것은 아키텍처다. 이런 종류의 것과 마주쳤다면 사용자가 무슨 생각을 하는지 알아내기 위해 깊이 파고들어야 한다.

💡 나의 해답 : 왜 이러한 기술을 가져야 하는 지에 대한 의문이 생긴다. 요구 사항이라고 하기에는 기술적으로 구현해야 할 모습을 제시하는 것 같아 진정한 요구 사항이 아니라고 보인다.

4. 사용자가 숫자가 아닌 글자를 숫자 필드에 입력하면 시스템은 입력 필드를 깜빡이고 입력을 거부한다.

📖 책의 해답 : 밑에 숨겨진 요구 사항은 아마 “시스템은 사용자가 필드에 올바르지 않은 값을 입력하는 것을 막는다. 올바르지 않은 값을 입력하는 경우 경고를 보낸다.”라는 문장에 더 가까울 것이다.

💡 나의 해답 : 이 문장의 뜻은 "사용자가 숫자가 아닌 글자를 숫자 필드에 잘못 입력하면 사용자에게 오류임을 알린다."인 것으로 보이므로 요구 사항이 맞지만 오류가 발생했을 때의 상황을 기술된 요구사항으로 보인다.

5. 이 임베디드 애플리케이션의 코드와 데이터 크기는 32Mb 이내여야 한다.

📖 책의 해답 : 이 문장은 하드웨어의 규격에 맞춘 것 같아 보인다. 아마 꼭 지켜야 하는 요구 사항일 것이다.

💡 나의 해답 : 32Mb가 하드웨어에서 사용할 수 있는 최대 크기인지 아니면 최대 상한선이 32Mb인지 의문이 들지만, 하드웨어의 규격이 지켜져야만 하기 때문에 진정한 요구 사항 이다.