SRS란?

고리·2022년 8월 18일
0

CS

목록 보기
6/6
post-thumbnail

학교에서 진행하는 산학연계 프로그램에서 기업체로 부터 외주?를 받게 되었다.

사내 서버에 여기저기에 저장 되어 있는 데이터를 클라우드 데이터베이스에 저장하고 키워드 검색을 통해 쉽게 찾을 수 있고 정렬 또한 가능하게 만들어 달라는 요구를 받았다.

어떤 데이터를 어떻게 검색하고 싶은지, 사내 데이터를 어떻게 제공할 것인지, 제공되는 파일의 형식이 어떤 것인지 아무런 정보도 제공하지 않아서 한번 당황했다.

이메일을 보내봤지만 팀의 자율에 맡긴다는 답변이 와서 두번 당황했다.

어디선가 no-sql이 요즘 유행이다, aws를 모르면 안된다는 말을 들어서 바로 공부 부터 시작을 하려고 가볍게 책을 추천받을 마음으로 현직자분께 연락을 드렸다가 엄청 혼났다.

공부를 위한 공부를 하지 말고 SRS가 무엇인지 부터 알아오라고 말씀하셔서 세번 당황했지만 이분이 없었다면 프로젝트가 제대로 시작 되지도 못했을게 분명하다. 다시한번 감사드린다.


그래서 SRS가 뭘까?

소프트웨어 요구사항 명세서(SRS, Software Requirement Specification)란 소프트웨어 개발 프로세스의 시작인 소프트웨어의 요구사항을 분석하고 정의하는 단계에서 작성되는 최종 산출물이다.

니가 뭘 만들건지는 제대로 알고 있니? 바로 이거였다.

파일을 저장한다.
에서
파일을 사내 서버에서 어떻게 가져올 것이고, 가져올 파일은 어디에 저장할 것인지, 저장하기 전 중요한 정보는 어떤 것인지, 그 중요한 정보를 어떻게 가져올 것이며 각각의 크기와 전체의 크기는 어떠한가
로 구체적인 정보를 알아야 했다.

작성을 하면서 낙천주의개발자 님의 게시글을 많이 참고했다.


기업의 요구사항을 어떻게 해결할 것인가?

기업 요구사항

  • 여러 서버(컴퓨터)에 설계 파일들이 중구난방으로 저장되어 있는데 이걸 클라우드에 저장해서 검색을 통해 필요한 자료를 찾고 싶다.

요구사항이 살짝 애매모호했다.

SRS작성 전

  • 파일을 전달 받아서 mongoDB에 저장한 후에 쿼리를 통해 제목 검색을 해야지 자 그럼 mongoDB를 공부해볼까?

SRS작성 후

  • 파일을 어떻게 전달 받을까
    -> 파일이 한개 혹은 여러개를 한번에 입력받을 수 있으니 doc to pdf 변환 사이트처럼 UI를 구성하자
    -> 사내 서버에 파일 전송 프로그램을 설치하기 어려울 수 있으니 웹 페이지로 만들자
    -> 파일 확장자가 .dwg파일이니 중요 키워드(인덱스)를 추출할 수 있는 방법을 찾아보자

  • 파일을 어떻게 저장 할까
    -> 파일 하나의 크기가 1MB 정도이니 파일이 많아질 경우 스토리지 사용을 고려하자
    -> 만약 스토리지를 사용한다면 DB에 옮기기 전에 어떤 전처리가 필요할지 생각하자
    -> 한번에 10GB의 파일을 업로드 할 수 있을까

  • 저장한 파일을 어떻게 검색할까
    -> 파일의 제목이 다음과 같을 때 0220906 서울 동작구 1호선 노량진역 철도 통신시스템 실시설계 개선안. 예상 검색 키워드를 물어보자
    -> 어떤 입력에 어떤 출력이 나와야 이상적일까
    -> 검색이 핵심 기능이니 Elasticsearch 사용을 고려하자

이밖에 작업에 사용되는 클라우드 비용은 누가 지불하고 유지보수, 소유권 등의 책임은 누구에게 있는지 등등등... 많은 협의가 필요했다.


무지성 mongoDB공부를 시작했다면 어떻게 됐을지.. 일단 만들다가 고치고 만들다가 고치고 다시 만들다가 전부 갈아엎고 다시 만들고..
이걸 어느정도 끝내고 그 다음에 아키텍처를 어떻게 설계할 것인가로 넘어가자고 말씀하셨다.

SRS

누구한테 보여주기 창피한 수준이지만 작성하고 안하고는 차이가 정말정말 컸다. 계속 수정이 필요하다고 하니 꾸준히 고쳐보자.

profile
Back-End Developer

0개의 댓글