[게임 서버] 5.1 UML

게시:     수정

카테고리:

태그:

📦 5. 게임 네트워킹

👉🏻 1. UML

📐 UML이란?

정의:

  • 프로그램 구조 명세를 표현할 수 있다
  • 여러 가지 다이어그램 종류가 있다

📊 1. UML 시퀀스 다이어그램

---
config:
  look: handDrawn
  theme: dark
  layout: dagre
---
sequenceDiagram
	participant C1 as 클라이언트 1
    participant S as 서버
    participant C2 as 클라이언트 2
    participant C3 as 클라이언트 3

    C1->>S: Chat()
    S->>C2: ShowChat()
    S->>C3: ShowChat()

구성 요소:

객체 (Object):

  • 상호 작용의 주체로, 네모 상자로 표현된다
  • 예: 클라이언트, 서버

메시지 (Message):

  • 상호 작용의 내용으로, 화살표로 표현된다
  • 예: Chat(), ShowChat()

한계점:

  • 주고받은 메시지 처리 방식에 대한 표현은 한계가 있다

🔄 2. 액티비티 다이어그램

---
config:
  look: handDrawn
  theme: dark
  layout: dagre
---
flowchart TB
 subgraph C1["클라이언트"]
    direction TB
        A(["사용자 입력 텍스트"])
        B(["RMI Chat"])
  end
 subgraph S["서버"]
    direction TB
        C(["RMI Chat 호출"])
        D(["유효성 검사"])
        E(["로그 경고"])
        F(["다른 클라이언트 목록 얻기"])
        G(["RMI ShowChat"])
  end
 subgraph C2["클라이언트"]
    direction TB
        H(["RMI ShowChat 호출"])
        I(["채팅 텍스트 출력"])
  end
    A --> B
    C --> D
    D -- 해커 --> E
    D -- 실제 사용자 --> F
    F --> G
    H --> I
    B --> C
    G --> H

구성 요소:

타원 도형:

  • 활동 상태를 의미한다

최초 도형:

  • 각 서브 다이어그램 내 최초 도형은 최초 상태를 의미한다

조건 분기:

  • 조건 분기문도 쓸 수 있다
  • 예: “해커” vs “실제 사용자”

🧐 정리

시퀀스 다이어그램 vs 액티비티 다이어그램

구분 시퀀스 다이어그램 액티비티 다이어그램
목적 시간 순서에 따른 상호작용 표현 처리 흐름과 로직 표현
표현 방식 객체 간 메시지 전달 활동 상태와 전환
강점 시간적 순서 명확 조건 분기, 병렬 처리 표현
약점 복잡한 로직 표현 어려움 시간적 순서 불명확
사용 시기 통신 프로토콜 설계 게임 로직 흐름 설계

GameServer 카테고리 내 다른 글 보러가기

댓글남기기