UseCase Diagram 그리기
- 서비스(System)와 사용자(Actor)간의 상호작용을 다이어그램으로 표현한 것
- 사용자 관점에서 개발하려는 서비스의 기능 및 요소들을 한 눈에 확인 가능
구성요소
- 시스템(System)
- 개발하고자 하는 것 그 자체, 시스템의 범위를 정의하며 흐름이 일어나는 영역의 경계를 정의
- 사격형의 형태로 표시, 상단에 시스템의 이름을 정의
- 액터(Actors)
- 시스템 외부에서 시스템과 상호작용하여 특정한 목적을취하는 객체(사람, 회사, 타 시스템, 외부 장비 등)
- 반드시 하나 이상의 Use Caes와 상호 작용해야 함, 액터의 이름은 개인적이거나 무언가를 특정해서 지정 x
- Primary Actor : 시스템을 사용하고, 직접 이득을 보는 액터 졸라맨으로 표기(보통 시스템 왼쪽에 위치)
- Secondary Actor : Primary Actor의 목적 달성을 돕는 액터, 사각형 박스에 <<Actor>>를 입력해 표기(보통 시스템 오른쪽에 위치)
- 유스케이스(Use Cases)
- 시스템 내에서 일련의 작업을 수행하기 위한 행위(시스템의 각종 기능)를 표현, 타원형으로 표기
- 은행 앱 : 로그인, 잔고 확인, 환전, 결제 등이 Use Cases
- 시스템 내에서 일련의 작업을 수행하기 위한 행위(시스템의 각종 기능)를 표현, 타원형으로 표기
- 관계(Relationships)
- 선 또는 화살표로 표기, 이어진 2개의 액터 도는 유스케이스 간의 상호작용을 나타냄
- 연관 관계(Association) : 액터와 유스케이스 사이의 상호작용이 있음(실선으로 표시)
- 예) 사용자 - 결제, 사용자 - 로그인, 결제 - 은행 앱
- 포함 관계(Include) : 두 개의 유스케이스 간의 의존성을 나타냄(유스 케이스 실행 시 포함 관계의 유스케이스는 반드시 실행되야 함을 의미(기존의 유스케이스에 포함된 유스케이스 방향을 가리키는 점선 화살표를 그리고 중앙에 <<Include>> 표시)
- 예) 로그인 --> 비밀번호 확인
- 확장 관계(Extend) : 두 개의 유스케이스 간의 확장성을 나타냄(하나의 유스케이스가 실행될 때 포함관계에 있는 유스케이스가 특정 상황에서만 실행) 확장 유스케이스에서 기존 유스케이스 방향의 점선 화살표를 그리고 중앙에 <<Extend>> 표시
- 예 로그인 <-- 로그인 에러 출력
- 일반화 관계 : 부모 유스케이스와 자식 유스케이스들 간의 상속 관계를 나타냄(자식 유스케이스에서 부모 유스케이스 방향으로 삼각형 실선 화살표를 표시)
- 자식 유스케이스는 부모 유스케이스가 해당된 모든 포함, 확장 관계를 만족해야 함
- 확장 관계의 경우 기존 유스케이스와 다른 유스케이스 간의 관계를 만족하지 않아도 됨
- 예) 결제 ◁ 체크 카드, 무통장 입금
- 작성 순서
- 시스템 정의(시스템 영역과 이름 정의)
- 액터 정의(Primary Actor) 정의 - 시스템과 상호작용하는 외부 시스템(Secondary Actor) 정의
- UseCase 정의 - 액터가 요구하는 서비스 식별, Actor들이 시스템과 상호작용하는 행위를 식별
- 관계 정의 - Actor와 UseCase, Actor와 Actor, UseCase와 UseCase 간의 관계를 정의
- 유스케이스 구조화 - 두개 이상의 유스케이스의 공통된 서비스를 추출하여 일반화
예제 - drawio 사용

API 명세서 작성
- API 명, 요청 값(파라미터), 반환 값, 인증/인가 방식, 데이터 및 전달 형식 등 API를 정확하게 호출하고 그 결과를 명확하게 해석하는데 필요한 정보들을 일관된 형식으로 기술한 것
- 작성 방법 - Post Man 사용
- WorkSpace Collections에서 + 버튼을 눌러 폴더 추가(폴더 명은 시스템 명으로)
- 폴더 우측의 ... 버튼을 누르고 Add request를 눌러 API 추가
- API의 method type 및 주소를 입력하고 입력 값을 입력하고 저장
- 저장한 API 우측의 ... 버튼을 누르고 Add example을 눌러 예시 저장 가능
- view Documentation 버튼을 눌러 API 명세서 내용을 입력 가능




ERD 작성
- 구현해야 할 서비스의 영역 별로 필요한 데이터를 설계하고 각 영역간의 관계를 표현하는 방법
- E(Entity, 개체) : 서비스의 영역에서 필요로 하는 데이터를 담을 개체 의미
- 예) 책, 저자, 독자, 리뷰
- A(Attribute, 속성) : 각 객체가 가지는 속성을 의미
- 예) 책의 제목, 언어, 출판일, 저자, 가격
- R(Relationship, 관계) : 개체들 사이의 관계를 정의
- 예) 저자는 여러 권의 책을 집필할 수 있음, 이 때, 저자와 책의 관계는 1:N 관계.
- 그리는 방법 - ERD CLOUD
- ERD 생성(제목, 공유 여부 결정 후 만들기)
- 우측 상단의 설정 버튼을 눌러 설정
- 디스 플레이 항목의 도메인, 타입, Null 허용, 기본값, 코멘트 부분 중 사용할 기능을 체크 후 저장
- 왼쪽 메뉴 바에서 Entity 추가 버튼 클릭(위에서 4번째) 후 화면에 테이블 생성 가능
- 노란색 + 버튼으로 키를 생성할 수 있고, 파란색 + 버튼으로 필드를 생성 가능
- 테이블 우측의 ! 버튼을 눌러 테이블 행을 수정할 수 있음
- 사이드 메뉴에서 선을 선택하여 관계를 맺을 수 있음
예제 - ERD CLOUD 사용

참고
☁️ ERD CLOUD - ERD 다이어그램을 온라인에서 그려보자
ERD CLOUD 프론트엔드 작업을 하기전에 UI 와이어프레임을 그리는 과정은 중요하듯이, 백엔드에서도 데이터베이스 모델링 설계 과정은 매우 중요하다. 데이터베이스 모델링을 할 때 ERD 다이어그램
inpa.tistory.com
Intellij - GitHub 연동
- 생성한 프로젝트 GitHub Repository에 연동(원격 저장소)
- GitHub Repository Git Clone
생성한 프로젝트 Git Repository 연동
- 인텔리제이 세팅창에서 Version Control에서 GitHub 누르고 Add account 누르고 GitHub 계정 연동
- 상단 메뉴 VCS - Enable Version Control Integration을 선택 - Git 선택 후 OK
- 상단 메뉴 Git - Manage Remotes - Git Remotes + Define Remote - URL 입력(Git Repository 주소) 후 OK
GitHub Repostiory 깃 클론
- file - Project from Version Control
- Repository URL에 깃허브 Repository 주소 입력 후 디렉토리 저장 위치 설정
- Open Project
'항해 99 > Spring' 카테고리의 다른 글
| Spring - JPA Entity 연관 관계 (1) | 2024.02.27 |
|---|---|
| Spring - Bean, 로그인/회원가입, Security, Validation (2) | 2024.02.26 |
| RESTful API, 관심사 분리, @Setter 지양 (0) | 2024.02.25 |
| Spring - 입문 2 (1) | 2024.02.21 |
| Spring - 입문 (1) | 2024.02.20 |