1. 클래스 다이어그램이란
- 클래스 다이어그램은 UML에서 가장 널리 사용되는 구조 다이어그램으로, 시스템의 정적 구조를 표현합니다.
- 객체지향 시스템에서 클래스들과 그들 간의 관계를 시각적으로 나타내어 시스템의 전체적인 구조를 이해할 수 있게 해줍니다.
- 설계 단계에서 시스템의 구조를 계획하고, 개발 완료 후에는 시스템 문서화의 핵심 역할을 담당합니다.
정보
클래스 다이어그램은 '정적 모델'입니다. 즉, 시스템이 실행되는 동안의 동작이나 상태 변화가 아닌, 시스템의 구조적 관점을 보여줍니다.
1.1 클래스 다이어그램의 중요성
- 설계 검증: 구현 전에 클래스 구조의 타당성을 검토할 수 있습니다.
- 의사소통: 개발팀 간의 공통 이해를 도모합니다.
- 문서화: 시스템의 구조를 체계적으로 기록합니다.
- 유지보수: 기존 코드의 구조를 빠르게 파악할 수 있습니다.
- 리팩토링: 코드 개선 방향을 시각적으로 계획할 수 있습니다.
2. 클래스 표기법
2.1 기본 클래스 구조
- 클래 스는 3개 구획으로 나뉜 직사각형으로 표현됩니다
- 첫 번째 구획은 클래스 이름, 두 번째 구획은 속성(필드), 세 번째 구획은 메서드를 나타냅니다.
2.2 가시성 표시자 (Visibility)
- 각 속성과 메서드 앞에는 접근 제한자를 나타내는 기호가 붙습니다:
- + (public): 모든 클래스에서 접근 가능
- - (private): 해당 클래스 내부에서만 접근 가능
- # (protected): 해당 클래스와 하위 클래스에서 접근 가능
- ~ (package): 같은 패키지 내에서만 접근 가능
2.2.1 Java 코드와의 대응
public class User {
private String name; // - name: String
protected int age; // # age: int
public String email; // + email: String
String phoneNumber; // ~ phoneNumber: String
public void setName(String name) { // + setName(String): void
this.name = name;
}
private boolean isValid() { // - isValid(): boolean
return name != null && !name.isEmpty();
}
}