Community

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

← Go back
Mission ( 3 )
#pragmatic
2년 전
607

실용주의 프로그래머 Mission 3

📌 연습문제 33

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

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

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

💡 나의 해답 : 이문제는 진짜 요구사항 처럼보인다. 하지만 저 응답시간 ( 500ms ) 이 응답속도가 최소 요구조건인지 를 말하는 건지 알아야 할거같고, 만약에 최소 요구 조건 이라면 그 최소 요구조건 을 맞추기위해 기능들을 맞춰볼것이고 거기서 몇가지 필수적인기능 들을 빼야할 경우에는 500ms 의 응답시간이 왜필요한지 를 물어보고 꼭 필요한 응답 시간(요구 조건 )이라면, 필수적이지만 빼야할 기능들을 피드백을통해 결정하여 빼서 응답시간을 맞출거 같고, 만약에 꼭 필요하지 않은 경우에는 필요한 기능을 다시넣고 좀더 늘어난 응답시간을 가진 앱으로 개발하는 방향을 잡을거같다는 생각이든다. 그리고 요구사항을 말할때 이 요구사항이 왜 필요한지를 알려주면 더 명확한 요구사항이 되었을거같다.

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

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

💡 나의 해답 : 이 문제는 요구사항으로는 보이지 않는다. 하지만 어떤것을 원하는지 정확하게 알기위해 궁금한점 을 몇가지 물어볼거같다. 1. 이 모달 창의 정해진 표준( 의뢰인의 app의 표준 ui ) 가 있는지. 2. 그냥 우연히 디자인을 한사람이 좋아하는 색인지. 3. 단순히 모달 창과 다른 창을 구분해야 해서 그런지. 를 물어볼 거같다. 왜냐하면 1. 에대해서는 모달 창에 대해서 정해진 규격( ui ) 가 있다면 그것을 따라가야 하기 떄문이고 , 2 의 경우에는 디자인한사람이 다른 색으로 변경하고싶을 수도 있기 떄문에 언제든 색상을 변경할수있게. 만들어야 하기떄문이고 3의 경우에는 더 논의 해봐야 하기때문이다, 이렇게 질문한다음 일단 프로토 타입을 하나 만들어볼거같다. 그리고 요구사항을 말할때 모달 창은 색상과 글꼴 폰트 를 변경할수 있어야한다. 라고 했으면 더 명확한 요구사항이 되었을거같다.

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

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

💡 나의 해답 : 이 문제는 요구사항이 아니다. 아키텍쳐( 구조 ) 다. 그래서 이 구조를 가지고 어떤것을 만들지 를 물어보면서 피드백을 시작할거같다, 이 피드백으로 얻어야할것은 의뢰인이 원하는 App의 모든것. 이라고 생각을하고 일단 알수있는걸 모두 물어봐서 의뢰인이 원하는 요구사항을 끌어내야 할거같다고 생각이 든다. 이렇게 생각하는 이유는 아키텍쳐( 구조 ) 를 알려주기는 하였지만 App 에 대한 내용 요구사항은 전혀 알수없는 상황일거 같다고 생각하기 때문이다. 요구 사항은 아키텍쳐 , 설계 가 아니다, 요구사항은 필요를 표현 하는것 이기떄문이다. ( 요구사항은 지나치게 자세하지 않는것이 좋다. )

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

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

💡 나의 해답 : 의뢰인이 원하는것은 알수있는 문제다. 하지만 더욱 명확한 요구사항이 필요하다. 예 를들어 사용자가 옮바르지 않은 값을 입력하는 것 을 막는다. 올바르지 않은값을 입력하지 말라 하는 경고문을 띄워주고 입력을 거부한다 라는식으로 말이다. 그리고 여기서 더좋은 방향으로 바꾸기위해 입력필드가 흔들리게 한다던지 경고문을 동시에 출력할지 화면 어느곳에 경고문을 띄울지 이런것들을 더욱 명확하게 할수있도록 피드백( 서로서로 의견을 나누는것 )을 통해 더좋은 요구사항 (의뢰인이 원하는 App) 을 만들수있도록 해야한다고 생각한다 그렇게되면 더 좋은 요구사항이 되었을것이다..

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

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

💡 나의 해답 : 이 문제는 요구사항으로 보인다, 왜냐하면 원하는것이 적혀있고 그것에대한 조건 도 있기 떄문이다. 이것은 저것을 지키면서 앱을 만들면될거같다. 추후에 문제가있거나 있을거같으면 그떄 요구사항을 수정할수있는지 이야기는 해볼만 해보인다. 데이터 크기에 여유는 좀있는지 , 어떤 기능을 쳐내도 되는지에 대해서말이다.