개발자 99% 커뮤니티에서 수다 떨어요!
요구사항을 받았는데, 요구사항이 아닐 수 있습니다! 요구사항이 아니라면 사용자가 진짜로 원하는게 무엇인지 알아내야합니다. 애매한 요구사항에서 진짜 요구사항을 찾아내는 연습을 해봅시다.
(1) '연습문제 #33'을읽습니다.
(2) 1-5번까지 문제를 클라이언트가 건넨 요구사항이라 상상하며 문제를 풀어봅시다.
(3) 진정한 요구사항이 아닐 경우 어떻게 질문을 해야하는지, 무엇을 알아야 하는지, 왜 그렇게 생각하는지 등 나의 생각을 작성해보세요.
❗️ 풀이과정은 문제당 300자 이상으로 작성해주세요.
❗️ 책에 있는 해답은 참고용이며, 본인의 생각을 잘 작성해주세요.
📌 연습문제 33
다음 문장들이 진정한 요구 사항인가? 가능하다면 진정한 요구사항이 아닌 것을 좀 더 유용하게 고쳐 써 보라.
💡 나의 해답 :
파일 업로드와 같은 상황이 존재하는가? 이럴 때에도 응답시간이 500ms이어야 하는가?
응답시간이 500ms를 초과하게 된다면 어떻게 처리해야 하는가?
사용자 트래픽이 몰리게 되어 응답시간이 증가된다면 예외처리를 해도 되는가?
💡 나의 해답 :
예, 아니오 모달 화면, 정보입력 모달 화면, alert 모달화면 등 수많은 용도의 모달 창이 존재한다. 이 모든 모달 컴포넌트의 화면을 회색으로 해도 될 것인가?
회색이 어떤 회색을 말하는 것인가? RGB값이나 헥스 코드 값을 요구해야겠다.
색상이나 폰트가 바뀌는 경우가 있는가?
💡 나의 해답 : 이것은 요구 사항이 아닌 소프트웨어 설계 아키텍처라는 점에 동의한다. 위 문장과 같은 요구를 정확한 요구 사항으로 변경할 수 있다면 다음과 같다.
백엔드 서버 중 데이터베이스 서버 노드의 수는 5대이며, 각 노드가 처리할 수 있는 소켓의 할당은 50개로 설정하라.
백엔드 DB는 MySQL로 정하며 서버 프레임워크는 Node.js를 사용한다.
프론트엔드 프레임워크는 vue.js로 정하며, 각 기능마다 단위 테스트를 실시한다.
💡 나의 해답 : 요구사항이 맞는것 같으나 좀 더 상세하게 표현하고자 한다.
유효하지 않는 값을 정규식으로 필터링하라.(숫자만 입력받을 것)
유효하지 않는 값이 '제출'되었다면 "숫자만 입력하십시오." 라는 메시지를 표출하라.
💡 나의 해답 : 하드웨어 메모리에 대한 명세를 써놓은 것을 보아 요구사항이 맞다. 하지만 좀 더 상세하게 표현하여, 애플리케이션 코드의 메모리 크기와 데이터 크기를 서로 몇 MB로 나누어도 되는가에 대해서도 명시하면 좋겠다고 느꼈다.