Flow Chart & 다이어그램

준우·2023년 9월 27일
1

CS 이야기

목록 보기
3/3
post-thumbnail

✅목록

  1. App FlowChart
  2. ER 다이어그램
  3. 시퀀스 다이어그램

1. App FlowChart

  • Flow Chart 작성 규칙
  1. 기본적으로 상 -> 하, 좌 -> 우 로 움직입니다.
  2. 동일 프로세스를 2회 이상 거쳐 자료가 재가공되는 경우나 차트가 상하로 길어질 경우에는 반시계 방향으로 그리기도 한다.

1) 시작 & 종료(Terminator)

  • 둥근 사각형 형태
  • 진행 과정의 시작과 끝을 표시한다. 단 2번만 등장함.
  • 형태 예시
  • 사용 예시

2) 진행 중(Process)

  • 직사각형 형태
  • 진행과정 표시
  • 형태 예시
  • 사용 예시

3) 데이터의 입력 & 출력(Data)

  • 기울어진 사각형 형태
  • 형태 예시

  • 사용 예시

4) 문서형태 출력(Document)

  • 하단 부분이 물결 형태 직사각형
  • 데이터가 문서 형태로 출력/전송 되는 것 -> 데이터의 최종 결과 값, 생성 문서 등
  • 해당 진행은 여기서 종료되고, 뒤에 다른 진행이 추가될 수 없음.
  • 형태 예시
  • 사용 예시

5) 결정(Decision)

  • 마름모 형태
  • 데이터의 유효성 체크해서 분기처리
  • 분기는 YES, NO 두 가지이다.
  • 형태 예시
  • 사용 예시

2. ER 다이어그램

1) ERD란?

  • ERD (Entity Relationship Diagram)
  • ERD는 데이터베이스 구조를 한 눈에 알아보기 위해 그려놓는 다이어그램이다.

2) ERD 표기법

1. 개체(Entity)

  • 개체란 단독으로 존재하는 객체를 의미하며, 동일한 객체는 존재하지 않는다.
  • ERD에서는 개체를 "사각형"으로 표기한다.

2. 속성(Attribute)

  • 속성은 개체가 가지고 있는 속성을 의미한다.
  • ERD에서는 속성을 "원"으로 표기한다.
  • 속성 중 "기본키"는 속성에 밑줄을 그어 표기한다.

3. 관계(Relationship)

  • 관계는 개체 간의 관계를 의미한다.
  • ERD에선 개체를 서로 이으며 어떤 관계를 가지는지 "마름모"로 표기한다.

4. 관계성 그리기 - 까치발 표기법

  • 추출된 관계를 ERD로 표기하기 위해 까치발 표기법을 많이 사용한다.
  • 까치발 표기법을 통해 개체(Entity)간 관계성을 표시할 수 있다.

3) 사용 예시

4) 총 정리

3. 시퀀스 다이어그램

1) 시퀀스 다이어그램이란?

  • 시퀀스 다이어그램은 특정 행동이 어떠한 순서로 어떤 객체와 어떻게 상호작용을 하는지 표현하는 행위 다이어그램
  • 시퀀스 다이어그램을 이용하면 API 등의 유즈 케이스를 디테일하게 알 수 있고 타 시스템의 API 호출 등의 로직을 모델링할 수 있어 시나리오를 파악하기 좋습니다.

2) Lifeline

  • 모델링 되는 인스턴스를 나타냅니다.
  • Lifeline은 네모와 점선으로 이루어져 있으며 네모가 객체의 관점으로 표현했다면 클래스이고 서비스 관점으로 표현했으면 컴포넌트가 됩니다.
  • 점선은 시간의 경과를 나타냅니다.

3) Activation

  • Activation은 Lifeline의 인스턴스가 다른 인스턴스와 상호 작용을 하며 활성화 되어 있는 것을 나타냅니다.
  • Activation은 직사각형의 막대로 Lifeline의 점선 가운데에 표시합니다.

4) Message

  1. Message : 메시지는 인스턴스 간 주고 받은 데이터를 나타냅니다. 일반적으로 요청과 응답 (HTTP 통신 기준)으로 나타냅니다.
  • 동기 메시지 (Sync message) : 요청을 보낸 후 반환이 올때까지 대기
  • 비동기 메시지 (Async message) : 요청을 보낸 다음 반환을 기다리지 않고 다른 작업을 수행
  • 자체 메시지 (Self message) : 자기 자신에게 요청을 보냄
  • 반환 메시지 (Reply/Return message) : 요청에 대해 메시지를 반환
  1. 동기 메시지 : 동기 메시지는 실선과 꽉 찬 화살표로 표현을 합니다. 동기 메시지 이므로 요청을 보낸 후, 결과가 올 때까지 기다립니다.
  1. 비동기 메시지 : 비동기 메시지는 실선과 선으로 이뤄진 화살표로 표현을 합니다. 비동기 메시지이므로 요청을 보낸 후, 결과를 기다리지 않습니다.

  2. 자체 메시지 : 자체적으로 작업을 처리할 때, 자체 메시지를 사용합니다. 자체 메시지는 본인의 Lifeline으로 회귀하는 화살표를 그립니다.

  3. 반환 메시지 : 동기 메시지에서 표현했던 것과 같이 요청에 대한 결과를 반환합니다. 점선과 선으로 이뤄진 화살표로 표현합니다.

5) 흐름 제어

  • Guard & Sequence Fragment

5-1) Guard

Guard는 단일 메시지에 대해 조건을 명시할 수 있는 방법입니다. 사용법은 메시지의 앞 쪽에 [ ] 대괄호로 감싼 후 조건을 명시합니다. 예를 들어, 가격이 10,000원 이상이라고 하면 [price > 10000]이라고 명시합니다. 아래는 가격이 10000원 이상이라면 배송비를 무료로 처리하도록 하는 예시입니다. 만약 가격이 10000원 미만이면 해당 메시지는 호출되지 않습니다.

5-2) Sequence Frag

  • Sequence Fragment는 범위로 조건을 명시할 수 있습니다. 특정 부분에 대해서 메시지를 반복하거나 조건을 명시할 때 사용됩니다.
  1. alternative
  • alternative는 alt로 줄여서 사용합니다.
  • alt는 조건문인 if/else문을 Guard를 사용해 표현할 수 있습니다.
  • 조건에 따라 선택 사항이 여러 개일 경우 사용됩니다.
  1. option
  • option은 opt로 줄여서 사용합니다.
  • opt는 조건문인 if문을 Guard를 사용해 표현할 수 있습니다.
  • 조건에 따라 선택 사항이 단 한 개일 경우에 사용됩니다.

guard와 option의 차이점 : 두 개의 차이는 Guard는 'A라면 B한다.' 와 같이 1개에 대해 1가지의 결과를 보여주는 반면, opt는 'A라면 B도 하고 C도 하고 D도 하고 등등을 한다.' 와 같이 1개에 대해 여러 결과를 나타낼 수 있습니다.

  1. loop
  • loop은 단어 의미 그대로 for, while과 같은 반복문을 표현합니다.
  1. parallel
  • parallel은 단어 그대로 병렬 처리를 의미하며 par로 줄여서 사용합니다.

0개의 댓글