Community

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

← Go back
미션 3. 진짜 요구사항
#pragmatic
2년 전
802

📌 연습문제 33

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

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

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

💡 나의 해답 :

비기능적 요구사항이다. 그런데 경우에 따라서는 500ms보다도 더 빠르게 응답을 해야 할 수도 있을 것 같다. 500ms이라는 수치가 어떤 근거로 계산된 값인지 질문해 보고, 500ms보다 응답 속도가 빨라져야 할 여지가 있을지 체크가 필요하다.

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

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

💡 나의 해답 :

진정한 요구사항이라고 하기 어렵다. 바탕색이 회색이 되는 것은 정책이다. 다크 모드를 지원한다면 일반 모드와 같은 회색을 사용하지 않을 가능성이 크다. 혹은 경고를 위한 창을 표시할 경우 빨간색을 바탕으로 사용하고 싶을 수도 있다. 모달 창의 바탕색 코드를 메타데이터로 받게 하는 방식으로 변경 가능하다.

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

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

💡 나의 해답 :

내 책에서는 백엔드 서버 '하나'로 구성된다고 했는데, 만약에 사용자 수가 많아졌을 때 서버 개수를 늘리게 될 가능성은 없는지 질문하고 싶다. 그리고 프론트엔드 프로세스를 왜 여러개로 나누어야 하는지가 궁금하다. 하나의 애플리케이션에 사용되는 프론트엔드라면 웬만하면 하나의 프로세스로 관리하는 게 편리하지 않을까..?? 정말로 분리가 필요한 프로세스인지 확인하고 꼭 필요한 것만 분리하도록 하고 싶다

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

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

💡 나의 해답 :

물어보고 싶은 것은 1) 이와 비슷한 입력칸과 다른 입력 정책은 없는가? 2) 잘못된 입력임을 알려주는 경고 방식이 달라질 가능성은 없는가? 3) 입력하는 것을 막지 않을 경우는 없는가? 를 묻고 싶다. 그리고 이런 입력 정책과 경고 방식, 잘못된 값 입력 허용 여부를 메타데이터로 빼내서 설정 가능하도록 구성이 가능할 것 같다.

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

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

💡 나의 해답 :

비기능적 요구사항이다. 1번과 마찬가지로 상황이 더 열악해질 가능성은 없는지만 확인하고 싶다.