Chap 03. 클래스 다이어그램(in 정적 다이어그램)
정적(구조) 다이어그램이다.
UML 모델링에서 가장 일반적으로 사용한다.
시스템의 구조와 구조 간 상호 관계를 나타낸다.
시스템의 논리적 및 물리적 구성 요소 설계 시 주로 활용한다.
클래스와 클래스 사이에 관계를 설정하기도 한다.
🔸 접근제한자
🔸 클래스 이름 / 속성 / 연산 으로 구성된다.
- 클래스 이름 기울임 = 추상 클래스
- 변수명이 대문자 = 상수형 필드를 나타낸다.
- 속성에 밑줄 = static
- 연산에 기울임 = 추상 메소드
클래스 다이어그램의 관계
✔️ 연관 관계
한 클래스가 필드로 다른 클래스를 참조할 때를 의미한다.
클래스 간의 관련성을 뜻하는 것으로 메시지 전달의 통로 역할을 한다.
서로 연결되어 있으면 방향성이 없고 실선으로 연결되어있다.
▪️ 방향성이 있는 연관 관계
방향성은 메시지 전달의 방향을 뜻하며 반대 방향은 불가능하다.
▪️ 연관 관계의 다중성
관계를 맺을 수 있는 실제 상대 객체의 수를 다중성을 통해 지정이 가능하다.
동일한 의미, 역할의 복수 개의 객체와의 관계이다.
▪️ 다중 연관
동일한 클래스 간의 존재하는 복수 개의 연관 관계를 뜻한다.
다른 의미, 역할의 복수 개의 객체와의 관계이다.
✔️ 집합 관계와 합성 관계
두 대상 간의 포함(소속) 표현으로 항상 Has-a 의미가 성립되어야 한다.
▪️ 집합 관계
부분 객체가 다수의 전체 객체에 의해 공유 될 수 있다.
→ 전체 객체가 사라져도 부분 객체는 존재한다.
▪️ 합성 관계
부분 객체가 오직 하나의 전체 객체에 포함될 수 있다.
→ 전체 객체가 사라지면 부분 객체도 사라진다.
✔️ 일반화 관계와 실체화(인터페이스 실현) 관계
▪️ 일반화 관계
보다 일반적인 클래스와 보다 구체적인 클래스 간의 관계를 뜻한다.
한 클래스(상위 클래스)가 다른 클래스(하위 클래스)보다 일반적인 개념, 대상 임을 의미하는 관계이다.
상속의 구조를 나타내기도 한다.
▪️ 실체화(인터페이스 실현)관계
인터페이스에 명세 된 기능을 클래스에 의해서 구현한 관계를 뜻한다.
상속받는 부모가 클래스가 아니라 인터페이스이다.
점선으로 표시된다.
✔️ 의존 관계와 인터페이스 의존 관계
▪️ 의존 관계
두 클래스 연산 간의 호출 관계를 표현한 것으로 제공자의 변경이 이용자에 영향을 미칠 수 있음을 의미(제공자의 변경이 이용자의 변경 유발)
이용자는 의존 관계를 통해서 제공자의 연산을 호출할 수 있다.
- 연관 관계 : 실선, 의존 관계 : 점선
- 메소드 내부에서 다른 클래스를 참조하고 있을 때 의존 관계라고 한다.
- ex. 자식 클래스의 메소드 안에 매개변수로 부모 클래스를 참조하고 있을 때
▪️ 인터페이스 의존관계
인터페이스와 인터페이스 이용자 간의 이용관계를 표현할 때 사용될 수 있다.
// A : 이용 클래스
// B : 인터페이스
// C : 인터페이스 실현 클래스
// 클래스 A는 인터페이스 B에 의존한다. = 인터페이스 의존 관계
// 클래스 C는 인터페이스 B를 실현한다. = 인터페이스 실현 관계
// 인터페이스는 생성되지 않는다. new ~ 불가능
public interface B{
void test();
}
public class C implements B{
public void test(){...}
}
public class A{
public void op1(){
B b = new C();
b.test();
}
}
// op1() 메소드는 B 인터페이스를 참조하고 있다.
// B b = new B(); 가 될 수 없기 때문에(인터페이스는 생성이 안된다.)
// 다형성을 적용해서 B라는 인터페이스를 구현한 자식 클래스 C로 생성하게 된다.
// b.test(); 하는 순간
// B에 있는 test() 메소드를 강제 오버라이딩한 인터페이스 실현 클래스인 C안에 있는 메소드가 실행이 된다. -> [by. 동적 바인딩]
- 서로 다른 클래스를 참조하고 있는 관계 ( 내가 참조하고 있는 그 클래스에 접근하기 위해서 )
- 연관 관계 : A 클래스와 B 클래스가 항상 연결되어 있다. A 클래스가 없어질 때까지 B 클래스는 살아있다.
- 의존 관계 : A클래스의 메소드 실행시에 B 클래스가 생기고, 메소드 종료 시 B 클래스는 소멸한다.
MVC 패턴
Model : 데이터 처리를 담당, (Service : 트랜잭션 처리 , VO/DTO : 클래스들 간에 값을 전달 할 때 값들을 보관, Dao : DB에 직접 접근하는 용도) Controller : 사용자가 요청한 기능을 받아오는 역할, 사용자가(view에서) 보낸 값을 컨트롤러에서 받는다. 기능처리 완료 후 결과 값을 어떤 화면에 보여질지 화면 선택의 역할도 한다. View : 사용자의 눈에 보이는 화면 [과정 순서] View → Controller - > Service → Dao → DB → Dao → Service → Controller (View Reserve) → View |
▪️ Model
데이터 처리 부분 담당
- VO(Value Object) : 계층 간 데이터 교환을 위한 객체
- DAO(Data Access Object) : DB에 접근하기 위한 용도
- Service : DB에서 전달 받은 데이터 or DB에 전달할 데이터들을 가공처리 (비즈니스 로직)
▪️ View
전달 받은 데이터들을 클라이언트에게 전송하여 보여준다.
▪️ Controller
모델과 뷰를 연결하는 역할
Service(로직) 처리 후 전달 받은 데이터를 View로 전송하거나 View 에서 사용자가 입력한 값을 전달 받는다.
'Study > Concepts' 카테고리의 다른 글
DAY 72. DB - DB 모델링 (0) | 2021.10.29 |
---|---|
DAY 71. UML - 시퀀스 다이어그램 (0) | 2021.10.28 |
DAY 69. UML - 개념 & 유스케이스 다이어그램 (0) | 2021.10.26 |
DAY 23. 객체지향 프로그래밍 언어 (0) | 2021.09.08 |
[정보처리기사 5과목] 보안 솔루션 (0) | 2021.08.30 |