Community

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

← Go back
TIL Mission(3)
by luck
#pragmatic
2년 전
933

📌 연습문제 33

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

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

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

💡 나의 해답 :

요구사항으로 보인다. 이 조건이 없다면 서버 응답시간이 길어졌을 경우 처리하기 어렵기 때문이다. 우리는 응답시간이 길어졌을때 사용자에게 보여지도록 UI를 구성해야된다고 생각한다. 그런데 또 다른 한편으로는 이 속도의 기준을 어디로 설정해야될지 고민을 해야된다고 생각한다. 애니메이션이나 마케팅이나 최적화나 등등 왜? 500ms 이하로 해야되는지 궁금중을 가져야한다고 생각한다. 이 속도에 대해서 제한을 둔 것은 다양한 이유들이 있겠지만 합리적이고 합당하다면 이 요구사항을 더더욱 들어줘야 된다고 생각한다.

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

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

💡 나의 해답 :

요구사항이 아닐수도 있다. 디자이너와 얘기된 사항인지 물어볼 것 같다. 왜냐하면 색상은 개인의 취향이기 때문에 디자이너와 기획자의 생각이 다를 수 있기 때문이다. 나는 회사생활하면서 단독적으로 서프라이즈식으로 요구사항을 제시한 사람들을 많이 봤기 때문에 서로 협의된 사항이 맞는지 먼저 물어볼것 같다. 만약에 서로 협의 된 사항이 맞다면 다른 컴포넌트에 대한 요구사항도 다시 한번 체크해볼 것 같다.

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

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

💡 나의 해답 :

요구사항이 아닌 것 같다. 구성에 관한 이야기는 프론트엔드 개발자 뿐만 아니라 백엔드 개발자와 함께 피드백 해야한다. 그리고 신규개발 아닌 유지보수나 보안 등 쪽으로 접근하는 문제인지 살펴봐야한다. 왜냐하면 프로젝트의 목적에 따라 달라질수 있기 때문이다.

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

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

💡 나의 해답 :

요구사항은 맞지만 어떻게 표현할건지에 대해서 다 같이 고민해봐야할것 같다. 컴포넌트 가이드가 없을 경우에 해당한다. 거부할 때 숫자만 입력하라는 경고메시지를 보낼것인가? 아님 다른 방식으로 거부할 것인가 고민해봐야한다.

그리고 숫자가 중요한 데이터라면 서버로 넘어갔을때 숫자 뿐만 아니라 다른 글자, 특수문자들을 입력거부하도록 해야된다고 생각한다.

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

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

💡 나의 해답 :

요구사항이라고 생각한다. 정확한 크기와 코드를 요구하고 있고 서버 최소한의 작동가능한 환경에 대해서 언급하고 있기 때문이다. 애플리케이션 코드의 캐싱 데이터, 로그 데이터 등의 크기도 32MB안에서 몇MB로 나누어도 되는가 생각도 해봐야 한다.