📄 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' 파일 삭제