
Unified Modeling Language의 약자로, 통합 모델링 언어
정적 다이어그램으로 클래스의 구성요소 및 클래스간의 관계를 표한하는 대표적인 UML
-> 시스템의 일부 또는 전체의 구조를 나타낼 수 있음
클래스는 보통 3개 구역으로 나뉜 사각형으로 그립니다.
클래스의 이름, 속성, 기능을 표기할 수 있으며 이름만 필수로 명시!!
보통 속성과 기능을 생략해 다이어그램을 그리는 경우는 주로 클래스의 흐름 분석 위주의 작업


클래스에는 클래스의 이름, 속성, 그리고 메서드가 존재
+ : public- : private# : protected
우리가 일반적으로 알고 있는 상속을 의미 : 실선에 비어있는 화살표로 표시

public class Board {
private String title;
private String contents;
private List<Comment> comments;
// 기본 getter / setter 메서드들
}
class SchedulerBoard extends Board {
private LocalDate startDate;
private LocalDate endDate;
public void validateDateLine() {
...
}
}
pec을 오버라이딩하여 실제로 구현하는 것 : 점선과 비어있는 화살표로 표현

public class Board {
private String title;
private String contents;
private List<Comment> comments;
// 기본 getter / setter 메서드들
}
class SchedulerBoard extends Board {
private LocalDate startDate;
private LocalDate endDate;
public void validateDateLine() {
...
}
}
클래스간의 참조가 일어나는 것 중 하나 : 점섬과 화살표 표시
메서드 내에서 대상 클래스의 객체를 생성하거나 사용, 리턴받아 사용하는 것
이 참조는 해당 클래스와의 관계를 계속 유지 X

public interface OpenCloseable {
void open();
void close();
}
public class Board implements OpenCloseable {
public void open() {
System.out.println("open method");
}
public void close() {
System.out.println("close method");
}
}
다른 객체의 참조를 가지는 필드를 의미 : 실선으로 표현되며 방향성이 존재하는 경우에는 화살표를 넣어 표시

public class Board {
private String title;
public String getTitleWithRanking(Ranking ranking) {
return title + ranking.getRank();
}
}
public class Ranking {
private int rank;
public int getRank() {
return rank;
}
}
https://velog.io/@khyunjiee/UML-Class-Diagram#%EC%8B%A4%EC%B2%B4%ED%99%94-realization