Community

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

← Go back
Assignment #14
#pragmatic
2년 전
502

연습 문제 33

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

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

- 요구사항일 수도 있다.

- 하지만 몇 가지 질문을 통해 요구사항을 구체화할 필요는 있다. 500ms라는 숫자는 어디서 나온 기준일까? 초기 상태에서도 500ms 이하여야 하는지? 응답 시간 단축을 위해 캐시를 적용해도 될지? 아니면 애니메이션을 빼거나 비동기 처리해도 될지 등등...

- 이후에는 500ms와 여러 비교군의 응답 속도를 가지는 목업 페이지를 만들어서 실제로 보여주고 사용자의 반응을 확인하고 적절한 응답 시간을 찾거나 결정할 수 있도록 도움을 준다.

- 필요한 경우에는 placeholder나 skeletonview를 사용할 수도 있다.

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

- 내 생각에 요구사항이라고 하기에는 이상한 내용이다.

- 모달 창이 뜨는 화면의 바탕색은 무슨 색인지? 모달 창에 로고나 이미지, 또는 색이 들어간 글자를 같이 표시해야 하는지? 디자인 시스템이 있는지, 있다면 정의된 바탕색이 회색인지 등을 물어봐서 확인해봐야 할 것 같다.

- 앱이나 웹에서 많이 사용하는 표준 디자인 가이드라인이 있다면 그걸 공유해서 더 일반적으로 사용되는 바탕색을 제안해볼 수도 있겠다.

- 최근에는 다크 모드를 일반적으로 지원하는 경우도 많기 때문에 라이트 모드와 다크 모드일 때 바탕색이 따로 지정될 필요도 있어 보인다.

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

- 요구사항이 아니다.

- 정확히 말하면, 사용자의 관점에서 전혀 알 필요가 없는 내용이다.

- 애플리케이션의 규모, 종류에 따라 프론트엔드와 백엔드 구조는 달라질 수 있으며 이러한 내용은 아키텍처에 해당하기 때문에 요구사항을 구현하기 위해 개발자가 생각하고 정의해야 하는 영역이다.

- 이런 요구사항(?)을 생각한 이유가 무엇인지 물어보고, 정말 원하는 요구사항이 따로 있다면 그것을 구현하기 위해 어떤 것이 필요한지 아키텍처를 따로 생각해볼 수 있겠다.

- 확장성이나 보안, 비용 등의 문제는 아닌지 하나씩 물어보면서 확인해보고 적절한 해답을 제시할 수 있어야 할 거 같다.

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

- 요구사항 중에 일부이다.

- 입력 필드가 깜빡이는 것만으로 사용자가 인지할 수 있을지, 인지한다고 해도 무엇이 잘못되었다고 생각할 수 있을지 물어본다.

- 입력 필드를 깜빡이는 것 이외에 입력 필드 아래에 에러 메시지 또는 가이드 메시지를 표시하거나 알럿 창으로 에러 메시지를 표시할 수 있음으로 알려준다.

- 글자 이외에 특수 문자 등을 입력했을 때는 어떻게 할지도 추가로 확인이 필요하다.

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

- 요구사항이다.

- 꼭 지켜야 하는 요구사항인지 한 번 더 확인하고, 32Mb라는 숫자가 나온 기준을 물어본다.

- 임베디드 애플리케이션이 들어가는 하드웨어 스펙을 물어보고 하드웨어 제약사항인지 확인하고 크기가 달라져도 되는지 점검한다.

- 32Mb 크기를 지킬 수 있는 방법을 살펴보고, 어려운 점이 있다면 미리 공유하고 어떤 기능이나 데이터를 줄일 수는 없을지 확인해본다.