안녕하세요 😀
유로띠 입니다 😉
실용주의 프로그래머
TIL (Today I Learned)
오늘 읽은 범위: 8장 프로젝트 전에 - 요구 사항의 구렁텅이
⭐️ 연습 문제33
다음 문장들이 진정한 요구 사항인가? 가능하다면 진정한 요구 사항이 아닌 것을 좀 더 유용하게 고쳐 써보라. 🧐
응답 시간은 500ms 이하여야 한다.
🟢 나의 해답 : 충분히 요구 사항이라고 생각할 수 있다. 응답 시간은 500ms 이하여야 한다는 요구는 결국 '응답 시간을 최소화해야 한다'는 요구 사항일 것이다. 충분히 속도를 줄이되 500ms는 초과하면 안되는 것이다.
📖 책의 해답 :
이 문장은 진짜 요구 사항처럼 보인다. 환경 때문에 애플리케이션에 제약을 추가해야 할 수 있다.
모달 창의 바탕색은 회색이다.
🟢 나의 해답 : 이 요구 사항은 아닌 것은 아니지만 모호하다고 생각된다. 요구 사항을 생각해 보면 단순히 기본 창과 모달 창의 구별을 하기 위해 요청한 것이라고 생각해 볼 수 있다. 따라서 모달 창을 회색으로 하기보다는 정확한 요구를 확인하는 것이 좋다. 해당 사이트의 전체적인 통일성을 파악하여 이질감이 없도록 구성하기 위해 적절한 색을 찾아 먼저 프로토타입으로 보여주는 것이 좋다고 생각한다. 두 번 작업하지 않으려면..
📖 책의 해답 :
이 문장 자체만으로는 진짜 요구 사항이 아니다. 하지만 진짜로 무엇이 필요한지 알아내려면
마법의 질문을 던져야 한다. “왜?”
이것이 회사의 표준일 수 있다. 그렇다면 진짜 요구 사항은 “모든 UI 요소는 메가 코퍼레이션 사용자 인터페이스 표준 V12.76을 준수해야 한다.” 같은 것이어야 한다.
우연히 디자인팀이 좋아하는 색깔일 수도 있다. 그렇다면 디자인팀이 생각을 바꿀 가능성도 고려해야 한다. 따라서 요구 사항을 “모든 모달 창의 바탕색은 설정 가능해야 한다. 출시될 때는 회색으로 한다.”로 바꾸어햐 한다. 더 범위를 넓혀서 “애플리케이션의 모든 시각 요소(색상, 글꼴, 언어)는 설정 가능해야 한다"라고 하면 더 좋다.
아니면 단순히 사용자가 모달 창과 다른 창을 구별할 수 있어야 하는 것일 수도 있다. 그렇다면 더 논의해 볼 필요가 있다.
애플리케이션은 프론트 엔드 프로세스 몇 개와 백엔드 서버로 구성된다.
🟢 나의 해답 : 요구사항이라고 생각하기 힘들다. 프론트 엔드, 백엔드의 아키텍처 구성은 전적으로 개발에 달려 있다. 차라리 프로세스가 아닌 애플리케이션 서버의 스펙과 성능 또는 서버의 구성(이중화 구성 및 LB의 구성)이 요구 사항이라고 한다면 맞겠다고 할 수 있다.
📖 책의 해답 :
이 문장은 요구 사항이 아니다. 이것은 아키텍처다. 이런 종류의 것과 마주쳤다면 사용자가 무슨 생각을 하는지 알아내기 위해 깊이 파고들어야 한다. 확장성 문제인가? 아니면 성능? 비용? 보안? 고객의 대답이 여러분의 설계를 안내할 것이다.
사용자가 숫자가 아닌 글자를 숫자 필드에 입력하면 시스템은 입력 필드를 깜빡이고 입력을 거부한다.
🟢 나의 해답 : 요구 사항을 좀 더 보충해야 한다. 중요한 건 숫자가 아닌 글자를 체크하는 것이 아닌 입력 필드에 올바른 벨리데이션 체크가 필요하다고 생각한다.
즉, 단순히 숫자가 아닌 글자를 체크하지 않고 숫자 이외의 모든 값 예를 들어 텍스트나 특수 문자, 이모티콘 등 숫자 이외의 값은 체크할 수 없도록 벨리데이션을 체크하도록 하며, 입력 자체가 안되도록 한다. 또한 잘못된 입력이 되면 경고창을 띄우도록 한다.
📖 책의 해답 :
밑에 숨겨진 요구 사항은 아마 “시스템은 사용자가 필드에 올바르지 않은 값을 입력하는 것을 막는다. 올바르지 않은 값을 입력하는 경우 경고를 보낸다.”라는 문장에 더 가까울 것이다.
이 임베디드 애플리케이션의 코드와 데이터 크기는 32Mb 이내여야 한다.
🟢 나의 해답 : 요구사항이라 생각된다. 3번 질문과는 다르게 개발의 아키텍처의 부분이 아닌 해당 애플리케이션의 스펙에 대해 요청한 것이라 볼 수 있다. 따라서 스펙은 최소한에 지켜야 하는 규칙이기 때문에 충분한 요구 사항이라 생각된다.
📖 책의 해답 :
이 문장은 하드웨어의 규격에 맞춘 것 같아 보인다. 아마 꼭 지켜야 하는 요구 사항일 것이다.
'Books > 실용주의 프로그래머' 카테고리의 다른 글
9장. 실용주의 프로젝트 (0) | 2022.04.25 |
---|---|
8장. 프로젝트 전에 (0) | 2022.04.04 |
7장. 코딩하는 동안 (0) | 2022.04.01 |
6장. 동시성 (0) | 2022.03.31 |
5장. 구부러지거나 부러지거나 (0) | 2022.03.30 |