📄 개발환경 세팅 & 가이드 3 (프로젝트 설계)

2023. 4. 9. 20:58·📄 Document/Project 설계

💡 프로젝트 설계


소프트웨어 개발 단계

  • 분석 단계
    • 사용자 요구사항 정의서
    • 유스케이스 명세서
    • 요구사항 추적표 등
  • 설계 단계
    • 작성된 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' 파일 삭제
저작자표시

'📄 Document > Project 설계' 카테고리의 다른 글

Hexagonal Architecture 구현 - 1 (Multi-Module, Kotlin)  (3) 2024.09.07
Agile  (0) 2023.04.30
Sequence Diagram  (0) 2023.04.27
📄 개발환경 세팅 & 가이드 2 (SRS 개념)  (0) 2023.04.09
📄 개발환경 세팅 & 가이드 1 (Git)  (0) 2023.04.09
'📄 Document/Project 설계' 카테고리의 다른 글
  • Agile
  • Sequence Diagram
  • 📄 개발환경 세팅 & 가이드 2 (SRS 개념)
  • 📄 개발환경 세팅 & 가이드 1 (Git)
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      Lock #Thread #Concurrency
      GStreamer #Pipeline
      React #Markdown
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    📄 개발환경 세팅 & 가이드 3 (프로젝트 설계)
    상단으로

    티스토리툴바