Publish:

태그: , , , ,

카테고리:

실용주의 프로그래머 Day 12 연습문제 33 풀어보기

📌 연습문제 33

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

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

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

💡 나의 해답 : 게임을 하다보면 이 걸릴 때가 있다. 게임 상에서 500ms 는 굉장히 긴 시간이다.

게임이 뚝뚝 끊기기 때문이다. 만약 해당 프로젝트가 게임이라면 500ms 는 말도 안되는 응답시간이다.

만약 해당 응답시간이 게임의 전체적인 기준인지 특수한 로딩시간만 그런건지 정확히 짚고 넘어가야 할 문제라고 생각한다.

예) 요구사항일 수 있다. 하지만 궁금할 것 같다.

이 속도가 최소 요구 조건인지? 만약에 응답시간을 줄이려면 특정 애니메이션이나 기능을 빼야한다면?

그 기능이 마케팅에서는 가장 최우선으로 생각하는 기능이라면? 등.. 왜 500ms 이하라는 제약이 필요한지 질문해볼수도 있겠다.

만약 500ms이하로 최적화를 못하면 “앱스토어에서 반려된다” 혹은 “검색 알고리즘이 스팸으로 인식한다” 등 외부 환경 때문일수도 있다.

이런 이유라면 더 명확한 요구사항이 될 수 있을거라는 생각이 든다.

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

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

💡 나의 해답 : 회색이어야 할 구체적인 이유가 필요하다고 생각한다.

세계적으로 인기있는 게임인 이나 오버워치 등을 보더라도 창의 바탕생은 정해져있다.

해당 프로젝트의 컨셉이 명확하다면 문제될 요지는 없다고 생각하며,

만약 그런게 아니라면 사용자의 입맛대로 바꿀 수 있게 하는 것도 좋다고 생각한다.

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

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

💡 나의 해답 : 이것은 왜 이렇게 구성하는지에 대한 이유가 있어야 한다.

성능의 문제인지, 비용절감을 위해서인지 등의 이유를 듣고 판단해도 늦지 않을 것이다.

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

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

💡 나의 해답 : 보통 게임을 하다보면 잘못된 키를 입력할 때가 있다.

내가 해본 게임 중 경고음을 들려주는 게임이 있었다.

순간 ‘내가 잘못 입력했구나’ 라는 것을 바로 인지할 수 있었다.

단순한 거부가 아닌 표현을 해주는 것이 좋다고 생각한다.

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

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

💡 나의 해답 : 게임을 만들면 다양한 환경에서 실험한다.

최대한 많은 유저가 즐길 수 있고 많은 투자를 하지 않고도 해당 게임을 즐겼으면 하기 때문이다.

모바일은 워낙 다양하다보니 모바일 환경을 위한 개발이라면 용량의 문제는 꼭 지켜져야 한다고 생각한다.

방문해 주셔서 감사합니다!😊

업데이트:

댓글남기기