📄 Document/Project 설계
📄 개발환경 세팅 & 가이드 3 (프로젝트 설계)
신건우
2023. 4. 9. 20:58
💡 프로젝트 설계
소프트웨어 개발 단계
- 분석 단계
- 사용자 요구사항 정의서
- 유스케이스 명세서
- 요구사항 추적표 등
- 설계 단계
- 작성된 SRS기반 설계
- 클래스 설계서
- 사용자 인터페이스 설계서
- 컴포넌트 설계서
- 인터페이스 설계서
- 통합 시험 시나리오
- 단위시험 케이스
- 데이터 전환 및 초기데이터 설계서 등
- 구현 단계
- 개발 진행도의 가시화
- 단위시험 결과서
- DB 생성 스크립트 등 문서화
- 시험 단계
- 전체적인 테스트
- 통합시험 결과서
- 시스템시험 결과서
- 사용자 지침서
- 운영자 지침서
- 시스템 설치 결과서
- 인수시험 시나리오
- 인수시험 결과서 등
💡 사용자 요구사항 정의서
- 작성 목적
- 시스템 요구사항 합의, 업무단위로서 가치를 가지고 수행될 수 있는 업무를 도출하여 업무내용 기술
- 작성 방법
- 쉽게 구체적인 언어표현 사용, 기능 & 비기능적 요구사항을 그룹핑하여 표로 작성
- 항목
요구사항 ID | 요구사항 명 | 구분 | 요구사항 설명 | 중요도 | 비고 |
---|---|---|---|---|---|
SS_FQW2001 | 출금 기능 | 기능 | 입력받은 금액을 차감하여 현금 전환 | 상 | 자동화 기기의 공통 인터페이스 (출금) |
SS_FKZ3001 | 권한 변경 | 부기능 | 조직 내 변경에 따른 권한 변경 시 3분 이내에 적용하도록 한다 | 상 |
💡 화면 정의서
- 작성 목적
- 시스템의 유저 인터페이스, 전체구조와 메뉴형식, 화면 목록과 상세 설계 내역 기술
- 작성 방법
- 전체 시스템의 유저 인터페이스 구조를 메뉴형식으로 기술
- 화면 및 출력으로 구분하여 목록 작성, 상세 설계 내용을 화면별로 기술
- 항목
화면ID | SS_CB_010-01 | 화면 명 | 로그인 |
---|---|---|---|
화면 유형 | 출력 | 메뉴 경로 | 홈 -> 로그인 |
이곳에 설계된 화면 삽입 & 설계화면의 미리보기 확인 삽입된 화면의 '기능' 부분은 1번부터 넘버링하여 미리보기 화면 내 삽입 번호가 매겨진 기능에 대한 설명은 아래 표에 나타냄
기능 번호 | 요구사항 ID | API 활용 여부 | API 주소 | 유효성 체크 |
---|---|---|---|---|
1 | RK_01_06 | X | /abc/v5/login | ID, PW |
2 | RK_01_21 | O | /abc/v5 | PW |
3 | RK_01_55 | X | - | PW |
💡 테이블 명세서
- 작성 목적
- 최종 설계된 테이블 & 인덱스를 DB공간에 매핑, 저장공간 등의 물리 모델 기술
- 작성 방법
- 사내 DB 목록 작성, DB의 물리적 상세내용 기술
- 항목
데이터베이스 명 | mock_service | 테이블 명 | User |
---|---|---|---|
요구사항 ID | KA_01_66, KA_01_87 | 테이블 설명 | 로그인 대상 관리 |
컬럼명 | 컬럼ID | 타입&길이 | Not Null | PK | FK | IDX | 기본값 | 제약조건 |
---|---|---|---|---|---|---|---|---|
ID | user_id | CHAR(15) | Y | Y | USER060 | |||
PW | user_pw | VARCHAR(20) | Y | Y |
💡 Rest API
API를 정의할때 어플리케이션은 보통 Restful한 API를 정의 & 구현함
- 모든 리소스에 대한 고유한 URI부여
- 적절한 HTTP Method 사용으로 인한 리소스 제어 수단
- 요청에 대한 응답은 JSON & XML 같이 사전 정의된 형식 사용
Rest의 특징
- 서버 & 클라이언트 구조 (Server-Client Architecture)
- 무상태성 (Stateless)
- 캐시 가능 (Cacheable)
- 일관된 인터페이스(Uniform Interface)
- 자체적인 표현 구조 (Self-Descriptiveness)
- 계층 구조 (Layered System)
관계 나타내기
users & files : 복수로 표현되는것들을 복수형 표시한다, Collection 이라고 부름
- 1 : 컬렉션에 포함된 대상 리소스는 단수형 표시, Document 라고 부름
Scheme ex) scheme:[//[user[:password]@host[:port]][/path][?query][#fragment]
- scheme - http & https 사용
- user & pw - 데이터가 있는 서버의 ID,PW
- host & port - 서버의 호스트 & 포트
- path - 서버의 상세경로
- query - path 접근 추가정보 (파라미터)
- fragment - 서브 리소스에 대한 접근 식별 정보
Rest API 규칙
규칙 | X | O |
---|---|---|
/ 로 끝나지 않게 함 | http://abc.com/abc/ | http://abc.com/abc |
_ 말고 - 사용 | http://abc.com/a_b_c | http://abc.com/a-b-c |
소문자 사용 | http://abc.com/ABC | http://abc.com/abc |
명사 사용 | http://abc.com/add/2 | http://abc.com/2 |
확장자 표시 X | http://abc.com/abc/abc.jpg | http://abc.com/abc/abc Accept: image/jpg |
HTTP Method
Ex) | GET (SELECT) | POST (INSERT) | PUT (UPDATE) | DELETE (DELETE) |
---|---|---|---|---|
/files | 전체 조회 | 신규 파일 등록 | 405 Err (Method Not Allowed) | 전체 삭제 |
/files/1 | '1' 파일 조회 | 405 Err (Method Not Allowed) | '1' 파일 수정 | '1' 파일 삭제 |