2. 시스템 설계 및 아키텍처 다이렉트 드라이버 개요

SangWan Lee·2022년 11월 26일
0

Software Architecture

목록 보기
1/2
post-thumbnail

대규모 시스템은 하루아침에 바꿀 수 있는 프로젝트가 아니다.

  • 큰 프로젝트는 여러 팀으로 이루어지는 수많은 엔지니어가 필요하다.
  • 수개월이 걸리기도 하므로 엄청난 인력 비용이 발생한다.
  • 계약서에는 기한 지연 시 비용을 청구하는 조항도 있을 수 있다.
  • 클라이언트와의 기한에 제때 납품하지 않는 경우엔 본인 기업의 평판과 이미지에 만회하기 힘든 손상을 입힐 수 있다.

그러니 애초에 요구 사항을 확실히 파악하는 게 매우 중요하다.

시스템 기능

시스템 기능은 기본적으로 시스템의 행위를 나타내는 요구 사항으로 쉽게 말해 설계한 시스템이 하는 동작을 말한다. 시스템의 목적과도 연결되는 사항이고 이를 기능적 요구 사항이라고 한다. 시스템을 블랙 박스 함수로 표현하는데 사용자의 입력 값이나 외부 이벤트가 함수로 입력되면 시스템에서 수행된 결과 값이 바로 이 함수의 결과 값입니다. 기능적 요구 사항을 명시하는 건 중요하며 시스템의 기능서에 직결됩니다. 아키텍처를 결정하진 않지만 어떤 아키텍처라도 기능을 수행할 수 있습니다. 이 점이 소프트웨어 아키텍트의 역할을 어렵게 만드는 요인입니다.

히치 하이킹서비스를 예시로 기능적 요구 사항을 대해 알아보자.

💡 기능적 요구 사항 중 하나는 다음과 같습니다.
  • 승객이 모바일 앱에 로그인하면 시스템은 반경 8km 이내의 운전자를 지도에 표시하도록 합니다.
  • 시스템의 입력 값은 사용자가 로그인하는 것이고 결과 값은 지도에 운전자를 표시하는 것입니다.
  • 운행을 완료하면 시스템은 승객에게 비용을 청구하고 운전자에게 서비스 이용료를 제외한 요금을 전송하도록 합니다.
  • 운행을 완료하는 것은 입력 이벤트이고 요금을 보내는 건 수행 결과 값입니다.

질문:
클라이언트로부터 다음과 같은 의뢰를 받았습니다.

“사용자 간에 대용량 파일을 공유할 수 있는 시스템을 만들고 싶습니다.

사용자가 파일을 업로드하면 다른 사용자에게 공유할 수 있는 링크가 생성되고, 그 링크를 소유한 사용자라면 누구든 해당 파일을 다운로드할 수 있어야 합니다.

파일이 업로드되자마자 링크가 활성화되어야 하며 다운로드 속도는 최소한 50 Mbps가 되어야 합니다.

PDF, JPG 파일 형식을 지원하고, 웹 브라우저는 Google Chrome, Mozilla Firefox, Microsoft Edge를 지원해야 합니다.”

클라이언트가 언급한 내용 중 기술적 요구 사항은 무엇인가요?

- [x]  **사용자가 파일을 업로드하면 다른 사용자에게 공유할 수 있는 링크가 생성되고, 그 링크를 소유한 사용자라면 누구든 해당 파일을 다운로드할 수 있어야 합니다.**
- [ ]  **파일이 업로드되자마자 링크가 활성화되어야 하며 다운로드 속도는 최소한 50 Mbps가 되어야 합니다.**
- [ ]  **PDF, JPG 파일 형식을 지원하고, 웹 브라우저는 Google Chrome, Mozilla Firefox, Microsoft Edge를 지원해야 합니다.”**
profile
'기록되지 않으면 기억되지 않는다. '

0개의 댓글