⛳️ 본격적으로 프로젝트 들어가기 전
팀 별 상시 커뮤니케이션 진행 방법을 정하면서 노션 페이지를 만들어 기록을 시작했다.
우리 팀은 능이 버섯 아닌 능히 할 수 있는 팀!
지난 금요일 첫 시작날부터 회의를 기록하고 있다. 프로젝트의 기록이 곧 자산이 될거라는 생각으로 가볍게 대화하는 커피챗도 기록하기.
매일 오전 10시에 소통하는 시간을 가져서 이슈가 없더라고 오버 커뮤니케이션을 지향하려고한다.
월요일에는 15분만 이야기 한다는데 1시간을 하기도했다. 대화를 하다보니 이것 저것 물어보고 질문하게 되니 서로 모르는 부분에 대해 알아가고 감을 잡을 수 있었다.
오늘은 요구사항 정의서를 작성했고 스택 오버 플로우 페이지의 메인 기능만 봤는데도 30개 가량의 리스트가 나왔다. 👀
이제 진짜 시작!
⛳️ 프로젝트 기획과 분석
📌 프로젝트 개요
프로젝트에서 SRS가 중요한 이유
SRS (Software requirements specification)은 다음과 같이 정의되어 있습니다. 소프트웨어가 무엇을 할 것이며 어떻게 작동할 것으로 예상되는지를 설명하는 문서입니다. 또한 제품이 모든 이해 관계자(비즈니스, 사용자)의 요구를 충족시키는데 필요한 기능을 설명합니다. SRS는 프로젝트의 전체적인 그림을 제공합니다.
개발 프로젝트 구분
- 솔루션 : 솔루션이라고 함은 기업에서 개발한 제품이다. 기업의 솔루션을 개발하는 회사를 의미하며 대표적으로 카카오톡이나 배달의 민족 애플리케이션이 있다.
- SI (System Integration) : 시스템을 구축하는 행위를 의미한다. 시스템이 복잡해지고 더 높은 전문성이 요구됨에 따라 특화된 기업과 계약을 맺고 진행하는 형태로 발전했다.
- SM (System Management) : 시스템 운영 및 유지보수를 의미한다. 시스템 개발보다는 개발 완료되어 서비스되는 시스템을 관리하는 관리자로 운영에 초점이 맞춰진 형태이다.
SRS의 구성
소개, 전체 설명, 시스템 특징, 외부 인터페이스 요구사항, 기능 이외의 다른 요구사항,다른 요구사항 등으로 내용을 구성하여 SRS 문서를 완성한다.
📌 사용자 요구사항 정의서
- 화면 정의서를 문서화 할 수 있습니다.
- 테이블 명세서를 문서화 할 수 있습니다.
- REST API 작성 규칙을 학습하고 효과적인 API 설계를 할 수 있습니다.
화면 정의서
- 화면 ID : 설계된 화면에 고유값을 부여합니다.
- 화면명 : 알아볼 수 있는 화면에 대한 제목을 부여합니다.
- 화면 유형 : 입력 / 출력 중 알맞은 유형을 선택합니다. 기타 유형이 존재한다면 알맞게 작성합니다.
- 메뉴 경로 : 해당 화면이 서비스의 어디에 위치하는지 설명합니다.
- 화면 개요 : 화면의 간단한 설명을 추가합니다.
- 화면 미리보기 : 와이어 프레임과 같은 화면 설계 툴을 사용하여 작성된 화면 미리보기 이미지를 삽입하고 해당 화면에서 기능을 수행하는 항목을 번호를 매겨 표시합니다.
- 기능 번호 : 화면 미리보기에서 표시된 기능의 번호를 기입합니다.
- 요구사항 아이디 : 해당 기능이 사용자 요구사항 명세서에 기술된 어떤 항목인지를 아이디로 표시합니다.
- API 활용 여부 : 이 기능이 API를 활용하는 기능인지를 구분합니다.
- API 주소 : API 활용 여부가 YES라면 어떤 API를 호출하는지 기입합니다.
- 유효성 체크 : 기능이 동작하는 동안 화면 내에서 필수적으로 사용되어야 할 데이터에 대한 유효성 체크를 합니다. 예) 회원 가입을 할 때 아이디와 비밀번호는 필수로 작성되어야 한다. → 아이디, 비밀번호
테이블 명세서
1. 작성 목적
최종적으로 설계된 테이블과 인덱스를 데이터베이스 공간에 맵핑시키고 저장공간 등의 물리 모델을 기술한다.
2. 작성 방법
부서에서 운영하는 데이터베이스 목록을 작성하고, 데이터베이스의 물리적 상세내용을 기술한다.
3. 항목 설명
- 데이터베이스 명 : 데이터베이스 명칭을 기입합니다.
- 테이블 명 : 테이블 명칭을 기입합니다.
- 요구사항 ID : 테이블이 사용되는 요구사항 정의서의 ID를 맵핑합니다.
- 테이블 설명 : 테이블의 목적 및 역할을 간략하게 기술합니다.
- 컬럼명 : 테이블 컬럼의 내용과 특성을 인식할 수 있는 명칭을 기술합니다.
- 컬럼 ID : 테이블 컬럼 ID를 기술합니다.
- 타입 및 길이 : 컬럼의 타입과 최대 허용 길이를 기술합니다.
- NOT NULL : 필수항목 여부를 나타냅니다.
- PK (Primary Key) : 주키 여부를 나타냅니다.
- FK (Foreign Key) : 외래키를 의미합니다.
- INX (Index) : 인덱스를 의미합니다.
- 기본값 : 속성의 기본값이 있는 경우에 그 값을 기술합니다.
- 제약조건 : 속성의 특이한 제약조건이 있는 경우 기술합니다.
API 명세서
RESTful한 API란 모든 리소스에 대해 고유한 URI를 부여하고 HTTP Method를 적절히 사용하여 리소스를 제어할 수 있는 수단이다.
- 서버-클라이언트 구조 (Server-Client Architecture)
- 무상태성 (Stateless)
- 캐시 가능 (Cacheable)
- 일관된 인터페이스 (Uniform Interface)
- 자체적인 표현 구조 (Self-Descriptiveness)
- 계층 구조 (Layered System)