개발자 99% 커뮤니티에서 수다 떨어요!
📌 연습문제 33
다음 문장들이 진정한 요구 사항인가? 가능하다면 진정한 요구사항이 아닌 것을 좀 더 유용하게 고쳐 써 보라.
📖 책의 해답 : 이 문장은 진짜 요구 사항처럼 보인다. 환경 때문에 애플리케이션에 제약을 추가해야 할 수 있다.
💡 나의 해답 :
요구사항이 확실하다. 응답 속도가 0.5초 이상이면 문제가 있는게 아닐까? 이 커머스에서 전시 영역 화면 하나를 열 때 몇개의 API를 호출할까? 열개를 호출한다고 치자. 0.5 x 10 = 5초? 끔찍하다. 0.1초 이하의 응답 속도가 필요하다.
📖 책의 해답 : 이 문장 자체만으로는 진짜 요구사항이 아니다. 하지만 진짜로 무엇이 필요한지 알아내려면 마법의 질문을 던져야 한다. ”왜?”(중략)
💡 나의 해답 :
당연히 요구사항이다. 어플리케이션이 흰색으로 구성되어 있다고 가정하자. 팝업도 동일한 색이라면 구분이 될까? 팝업 창만 확실하게 회색으로 해달라고 할 수 있다!
📖 책의 해답 : 이 문장은 요구사항이 아니다. 이것은 아키텍처다. 이런 종류의 것과 마주쳤다면 사용자가 무슨 생각을 하는지 알아내기 위해 깊이 파고들어야 한다.
💡 나의 해답 :
요구사항이 아니다. 고객이 원하는 것이 어플리케이션 아키텍쳐라면 가능하겠지. 그렇지만 일반적으로 우리는 어플리케이션을 만드는 과정에서 받는 요구사항이라고 가정하므로 이는 요구상이라고 보기 힘들다.
📖 책의 해답 : 밑에 숨겨진 요구 사항은 아마 “시스템은 사용자가 필드에 올바르지 않은 값을 입력하는 것을 막는다. 올바르지 않은 값을 입력하는 경우 경고를 보낸다.”라는 문장에 더 가까울 것이다.
💡 나의 해답 :
요구사항이다. 숫자필드에 글자를 입력하지 못하도록 하는 것이 목표일 것이다. 때때로 같은 기능을 우리는 다른 사상으로 다르게 생각하기도 한다. 이를 하나로 모으는 것이 커뮤니케이션이며 우리가 해야할 노력이다.
📖 책의 해답 : 이 문장은 하드웨어의 규격에 맞춘 것 같아 보인다. 아마 꼭 지켜야 하는 요구 사항일 것이다.
💡 나의 해답 :
3번과 마찬가지가 아닐까? 요구사항이 아니다. 임베디드 애플리케이션을 개발할때도 마찬가지로 하드웨어 위에서 설계를 하고 작동할 것이다.