🧭 연관 클래
스 (Association Class, 連關類)
**연관 클래스(連關類)**란
두 클래스 간의 연관 관계(Association) 에
속성(Attribute) 이나 행위(Operation) 가 추가로 필요한 경우,
그 관계 자체를 하나의 독립된 클래스 형태로 표현한 것을 말한다.
즉, 관계(Association)에 정보를 부여해야 할 때 사용하는 클래스다.
1. 개념 설명
보통 클래스 다이어그램에서 “연관(Association)”은
두 클래스가 서로 연결되어 있음을 의미한다.
예를 들어,
학생(Student) 클래스와 강의(Course) 클래스가 있을 때
“학생은 강의를 수강한다”라는 관계가 있다면,
이는 단순한 연관 관계로 표현된다.
그런데 이 관계에 추가 정보가 필요할 수도 있다.
예를 들어,
“학생이 어떤 강의를 수강했는가”뿐 아니라,
수강일(Date), 성적(Grade) 같은 정보가 존재할 수 있다.
이런 경우, 단순한 연관 관계만으로는 부족하다.
그때 등장하는 것이 바로 **연관 클래스(Association Class)**다.
2. 연관 클래스의 역할
연관 클래스는 단순히 “두 클래스의 연결”을 넘어서
그 관계 자체에 속성이나 동작을 부여하는 역할을 한다.
즉, “관계 자체를 데이터로 다루기 위한 클래스”다.
예시로 보면,
- 학생(Student) ↔ 강의(Course)
→ 관계명: 수강(Enrollment)
이때 “수강” 관계에는
- 수강일(date)
- 성적(grade)
- 출석률(attendance)
같은 속성이 존재할 수 있다.
이 속성들은 학생에도, 강의에도 속하지 않는다.
관계 자체의 속성이다.
그래서 “수강”을 **연관 클래스(Enrollment Class)**로 표현한다.
3. UML에서의 표현 방법
UML 클래스 다이어그램에서 연관 클래스는
연관선(Association Line) 위에
점선(dotted line)을 연결하여 클래스 상자로 표현한다.
즉, 두 클래스 사이에 연결선을 긋고,
그 선에서 점선을 빼서 연관 클래스를 달아 놓은 형태다.
예시 설명:
이때 Enrollment(수강) 클래스가 바로 연관 클래스다.
4. 연관 클래스의 특징
- 두 클래스 간의 연관 관계 자체를 객체로 표현한다.
- 관계에 대한 속성이나 연산이 필요할 때 사용한다.
- 연관 클래스는 실제로는 별도의 클래스이지만,
두 클래스 간 관계에 “붙어 있는 형태”로 표현된다. - 다대다(N:N) 관계를 해소할 때도 자주 활용된다.
예를 들어,
학생과 강의는 N:N 관계이므로,
그 사이에 “수강(Enrollment)”이라는 연관 클래스를 만들어
이를 1:N + N:1 관계로 분리한다.
5. 연관 클래스의 활용 예시
예시 1)
학생(Student) ↔ 강의(Course)
연관 클래스: 수강(Enrollment)
→ 속성: 수강일, 점수, 출석률
예시 2)
고객(Customer) ↔ 상품(Product)
연관 클래스: 주문(Order)
→ 속성: 주문일자, 수량, 결제금액
예시 3)
직원(Employee) ↔ 프로젝트(Project)
연관 클래스: 참여(Participation)
→ 속성: 투입기간, 역할, 공수
이처럼 **‘관계 자체가 하나의 개념이 되는 경우’**에 연관 클래스를 사용한다.
6. 연관 클래스와 일반 클래스의 차이
- 일반 클래스(Class): 객체 그 자체의 속성과 행위를 표현한다.
- 연관 클래스(Association Class): 두 객체 간의 관계에 대한 속성과 행위를 표현한다.
즉,
“일반 클래스는 사물, 연관 클래스는 관계”
“연관 클래스는 관계를 객체화(Objectify)한 개념”
7. 정처기 실기 정의 문장
“연관 클래스는 두 클래스 간의 연관 관계에서
그 관계 자체에 속성이나 행위가 필요한 경우,
그 관계를 하나의 별도 클래스 형태로 표현한 것이다.”
시험 키워드:
Association Class, 관계의 속성화, 관계 객체, 점선 연결, N:N 관계 해소
🪶 단어 정리 (한국식 한자 + 영어 어원 + 뜻풀이)
연관(連關) / Association
잇닿을 련(連), 관계할 관(關)
: 서로 연결되어 있는 관계.
클래스(類) / Class
무리 류(類)
: 공통된 속성과 행위를 가진 객체의 집합. 영어 classis(무리, 집단)에서 유래.
속성(屬性) / Attribute
붙을 속(屬), 성품 성(性)
: 객체가 가지고 있는 데이터나 특성.
관계(關係) / Relationship
관계할 관(關), 맬 계(係)
: 두 객체가 서로 연관되어 있는 상태.
수강(受講) / Enrollment
받을 수(受), 강의할 강(講)
: 학생이 강의를 등록하여 참여하는 행위.
합성(含成) / Composition
머금을 함(含), 이룰 성(成)
: 포함된 객체가 전체에 종속되는 관계.
🏷️ 해시태그 정리
#연관클래스
#AssociationClass
#클래스다이어그램
#UML
#객체지향설계
#정처기실기
#소프트웨어공학
#Association
#관계객체
#NtoN관계
#UML모델링
#시스템설계
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
커뮤니케이션 다이어그램 (Communication Diagram, 通信圖) (0) | 2025.10.15 |
---|---|
순차 다이어그램 (Sequence Diagram, 順次圖) (0) | 2025.10.15 |
UML 클래스 다이어그램 (Class Diagram) (0) | 2025.10.15 |
유스케이스 다이어그램 (Use Case Diagram) (0) | 2025.10.15 |
UML 다이어그램 (UML Diagram) (0) | 2025.10.15 |