HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
[KDT] SpringBoot Part4/강의자료/2022 LIVE SECTION - 3기/
01. 클래스 다이어그램

01. 클래스 다이어그램

학습 목표

클래스 다이어그램을 해석방법을 학습한다.
  • 객체지향을 설명하기 위해서는 클래스다이어그램을 그리고 읽을 줄 알아야 한다.
  • 객체들간 관계를 설명하는 클래스 다이어그램에 대해 학습한다.

UML

  • Unified Modeling Language 의 약자로 통합 모델링 언어 라고 읽는다.
  • 시스템 상호작용, 업무흐름, 시스템 구조, 컴포넌트 관계 등을 표현한다.
  • UML 은 아래의 목적으로 사용한다.
    • 다른 사람들과의 의사소통 또는 설계 논의
    • 전체 시스템의 구조 및 클래스의 의존성 파악
    • 유지보수를 위한 설계의 backend 문서
구분
설명
Use case Diagram
요구 분석 과정에서 시스템과 외부와의 상호 작용을 묘사함
Activity Diagram
업무의 흐름을 모델링하거나 객체의 생명주기를 표현함
Sequence Diagram
객체 간의 메세지 전달을 시간적 흐름에서 분석함
Collaboration Diagram
객체와 객체가 주고받는 메세지 중심의 작성함
Class Diagram
시스템의 구조적인 모습을 그림
Component Diagram
소프트웨어 구조를 그림
Deployment Diagram
기업 환경의 구성과 컴포넌트들 간의 관계를 그림
표1) 주요 UML 다이어그램의 종류

클래스 다이어그램

그림1) UML 다이어그램의 종류
그림1) UML 다이어그램의 종류
  • UML diagram 은 구조(Structure) 다이어그램 과 행위(Behavior) 다이어그램으로 구분된다.
  • 구조 다이어그램
    • 시스템의 개념, 관계 등의 측면에서 요소들을 나타내고 각 요소들의 정적인 면을 보기 위해 작성한다.
  • 행위 다이어그램
    • 각 요소들 혹은 요소들간의 변화나 흐름, 주고받는 데이터 등의 동작을 보기 위해 작성한다.
  • 클래스 다이어그램
    • 시스템의 관계를 파악할 수 있는 구조 다이어그램이다.
    • 클래스간의 관계를 표현하는 대표적인 다이어그램이다.

클래스

일반화 (Generalization)

  • 부모 클래스와 자식 클래스의 상속관계를 표현할때 사용된다.
상속구조를 나타내는 일반화는 빈 실선 삼각형으로 표기한다.
public class Product { private String id; private long price; private long quantity; public long calculateAmount() { return price * amount } } public class Food extends Product { @Override public long caculateAmount() { return super.calculateAmount(); } } public class Device extends Product { @Override public long caculateAmount() { return super.calculateAmount(); } }

실제화 (Realization)

  • 인터페이스의 구현을 나타낼때 사용된다.
인터페이스에 대한 실제 구현(implementation)을 나타내는 실제화는 점선 삼각형으로 표기한다.
public interface Validator { public boolean validate(long amount); } public class AmountValidator implements Validator{ @Override public boolean validate(long amount) { if (amount < 0) { return false; } return true; } }

의존 (Dependency)

  • 대상 객체에 대한 의존을 나타낸다.
  • 메소드내에서 대상클래스에 대한 참조를 이야기하며 메소드 수행이후 참조는 종료됨을 의미한다.
객체 의존을 나타내며 점선 화살표로 표기한다.
public class Restaurant { public Food makeFood () { return new Food(); } } public class Food extends Product { @Override public long caculateAmount() { return super.calculateAmount(); } }

연관 (Association)

  • 연관은 다른 객체의 참조를 가지는 필드를 의미한다.
객체의 참조를 나타내며 실선 화살표로 표기한다.
public class Cart { private Food foods; }