Community

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

← Go back
Assignment #14 - Mission 3 요구사항의 구렁텅이
#pragmatic
2년 전
1,612

실용주의 프로그래머 Mission 3

요구사항을 받았는데, 요구사항이 아닐 수 있습니다! 요구사항이 아니라면 사용자가 진짜로 원하는게 무엇인지 알아내야합니다. 애매한 요구사항에서 진짜 요구사항을 찾아내는 연습을 해봅시다.


(1) '연습문제 #33'을읽습니다.


(2) 1-5번까지 문제를 클라이언트가 건넨 요구사항이라 상상하며 문제를 풀어봅시다.


(3) 진정한 요구사항이 아닐 경우 어떻게 질문을 해야하는지, 무엇을 알아야 하는지, 왜 그렇게 생각하는지 등 나의 생각을 작성해보세요.

❗️ 풀이과정은 문제당 300자 이상으로 작성해주세요.

❗️ 책에 있는 해답은 참고용이며, 본인의 생각을 잘 작성해주세요.



📌 연습문제 33

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

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

💡 나의 해답 :

  1. 파일 업로드와 같은 상황이 존재하는가? 이럴 때에도 응답시간이 500ms이어야 하는가?

  2. 응답시간이 500ms를 초과하게 된다면 어떻게 처리해야 하는가?

  3. 사용자 트래픽이 몰리게 되어 응답시간이 증가된다면 예외처리를 해도 되는가?

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

💡 나의 해답 :

  1. 예, 아니오 모달 화면, 정보입력 모달 화면, alert 모달화면 등 수많은 용도의 모달 창이 존재한다. 이 모든 모달 컴포넌트의 화면을 회색으로 해도 될 것인가?

  2. 회색이 어떤 회색을 말하는 것인가? RGB값이나 헥스 코드 값을 요구해야겠다.

  3. 색상이나 폰트가 바뀌는 경우가 있는가?

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

💡 나의 해답 : 이것은 요구 사항이 아닌 소프트웨어 설계 아키텍처라는 점에 동의한다. 위 문장과 같은 요구를 정확한 요구 사항으로 변경할 수 있다면 다음과 같다.

  1. 백엔드 서버 중 데이터베이스 서버 노드의 수는 5대이며, 각 노드가 처리할 수 있는 소켓의 할당은 50개로 설정하라.

  2. 백엔드 DB는 MySQL로 정하며 서버 프레임워크는 Node.js를 사용한다.

  3. 프론트엔드 프레임워크는 vue.js로 정하며, 각 기능마다 단위 테스트를 실시한다.

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

💡 나의 해답 : 요구사항이 맞는것 같으나 좀 더 상세하게 표현하고자 한다.

  1. 유효하지 않는 값을 정규식으로 필터링하라.(숫자만 입력받을 것)

  2. 유효하지 않는 값이 '제출'되었다면 "숫자만 입력하십시오." 라는 메시지를 표출하라.

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

💡 나의 해답 : 하드웨어 메모리에 대한 명세를 써놓은 것을 보아 요구사항이 맞다. 하지만 좀 더 상세하게 표현하여, 애플리케이션 코드의 메모리 크기와 데이터 크기를 서로 몇 MB로 나누어도 되는가에 대해서도 명시하면 좋겠다고 느꼈다.