OOPS 관계를 다시는 절대 잊지 않을 거예요
발행: (2026년 4월 4일 AM 05:42 GMT+9)
3 분 소요
원문: Dev.to
Source: Dev.to
OOP 관계 개요
객체‑지향 관계 네 가지를 이해하는 것은 견고한 시스템을 구축하고 면접에서 좋은 성과를 내는 핵심입니다.
Association (uses)
- 정의: 두 객체는 서로 관련이 있지만 독립적으로 존재할 수 있습니다.
- 예시: 교사가 학생들을 가르칩니다.
- 기억법: “Association → uses.”
Aggregation (has – weak)
- 정의: 하나의 객체가 다른 객체를 포함하지만, 포함된 객체는 독립적으로 존재할 수 있습니다.
- 예시: 팀이 삭제되어도 선수들은 여전히 존재합니다.
- 기억법: “Aggregation → has (weak).”
- 핵심 질문: 부모 없이 자식이 존재할 수 있나요? → YES → Aggregation.
Composition (has – strong)
- 정의: 하나의 객체가 다른 객체를 완전히 소유하며, 부모가 파괴되면 자식도 함께 파괴됩니다.
- 예시: 집을 파괴하면 방도 사라집니다.
- 기억법: “Composition → has (strong).”
- 핵심 질문: 부모 없이 자식이 존재할 수 있나요? → NO → Composition.
Inheritance (is‑a)
- 정의: 클래스가 다른 클래스의 속성과 동작을 상속합니다.
- 예시: 개는 모든 일반적인 동물 특성을 가집니다.
- 기억법: “Inheritance → is.”
- 핵심 질문: “is‑a” 관계인가요? → YES → Inheritance.
빠른 결정 가이드
| 관계 | 질문 | 답변 |
|---|---|---|
| Aggregation | 부모 없이 자식이 존재할 수 있나요? | YES |
| Composition | 부모 없이 자식이 존재할 수 있나요? | NO |
| Inheritance | “is‑a” 관계인가요? | YES |
| Association | 그 외 | Association |
면접에서는 암기보다 명확한 이해를 평가합니다. 이 OOP 관계들을 지금 마스터하면 오늘의 질문은 물론 내일의 꿈의 직업에서도 확실한 우위를 점할 수 있습니다. 🚀