본문 바로가기

도서/실용주의프로그래머_#bookclub#TIL

실용주의 프로그래머 #18일차(Mission)



Mission(3)

연습문제 33.

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

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

->  요구 사항으로 볼 수 있을 것이다. 응답 시간을 구체적으로 500ms로 제한 하였다. 
    500ms 으로 정확히 명시한 이유에는 어떤 것들이있을까? 
    500ms 가 단순히 사용자 편의성 차원에서 제한한 것 인지, 500ms를 초과할 시 시스템 상에서 예외를 콜하는 등 문제를 야기하는지,
    아니면 외부 환경에서 어떤 절차나 법적으로 문제 사항이 발생하는 지, 더 느슨해지는건 괜찮을지라도 더 촉박해지면 시스템 전체를 수정해야할 수 있으므로 500ms이란 수치를 변경하기도 어려울 것이다. 다만, 조금 더 구체적인 이유를 물을 수 있을 것 같다.

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

->  요구 조건을 조금 더 일반적으로 수정할 수 있을 것 같다. 
    색상을 '회색'으로 지정한 이유가 있는지? 단순히 의뢰인이 좋아하는 색상이여서? 
    나중에 바뀔 가능성이 있을까? 바탕색만 기준이 정해진것인가? 
    나중에 바탕색 뿐 아니라 폰트 크기, 글꼴도 바뀔 여지가있을까?
    * 모달 창 modal window의 바탕색은 설정이 가능하며 기본값은 회색으로 설정된다.

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

->  이 조건을 요구하는 이유가 무엇일까? 
    프론트엔드 프로세스 몇 개와 백엔드 서버로 구성을 하지 않으면 안되는 이유가 있는 것인가?
    다른 아키텍처 방식을 채택하면 안되는 것을 명시한 것인가? 추가적인 구체적인 이유가 요구될 것이다.

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

->  더 일반적인 요구사항으로 변경할 수 있겠다.  
    비단 숫자 필드 뿐아니라 '유효하지 않은 값'을 입력 시 사용자에게 깜박이든 뭐든 경고하는 방식을 쓸 수 있겠다.
    깜빡이고 입력 거부는 나중에 다른 방법으로 경고 방식이 변경될 수도 있기에 더 포괄적이고 일반적인 요구사항으로 변경할수있다.
    * 특정 필드에 유효하지 않은 값을 입력 시 사용자에게 경고 알림을 준다.

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

->  요구사항으로 볼 수 있을 것 같다.
    구체적으로 32Mb로 크기를 제한하고 있다. 정확한 수치로 제한한 것으로 보아 서버 규격에 엄격하게 정해진 규칙이 있는 것 같다.
    할당된 메모리에 안정값을 더해 제한한 것일 수도 있고, 파일 관리 차원에서 특정 기준으로 제한한 것일 수도 있다.