🧭 객체지향 방법론 (Object-Oriented Methodology, 對象指向方法論)
**객체지향 방법론(對象指向方法論)**이란
현실 세계를 구성하는 사물이나 개념을 객체(Object) 로 모델링하고,
이 객체들 간의 관계와 상호작용을 중심으로 시스템을 설계·구현하는 소프트웨어 개발 방법론이다.
즉,
“프로그램을 함수나 절차 중심이 아닌, 객체 중심으로 바라보는 사고 방식이자 설계 방법”이다.
1. 개념 설명
전통적인 절차지향(Procedural) 방법론은
프로그램을 **‘어떤 일을 순서대로 처리할 것인가’**에 초점을 맞췄다.
반면, 객체지향 방법론은
“누가 그 일을 할 것인가(=객체)”에 초점을 맞춘다.
즉, 객체지향은
**‘현실 세계의 개체(實體)를 소프트웨어 속 객체로 추상화하여 모델링한다’**는 철학이다.
각 객체는
- 상태(state)를 나타내는 속성(Attribute) 과,
- 행위(behavior)를 나타내는 메서드(Method) 를 가진다.
그리고 시스템은 이 객체들이 서로 메시지를 주고받으며 협력하는 구조로 구성된다.
2. 객체지향 방법론의 목적
- 현실 세계의 복잡한 문제를 직관적으로 모델링
- 재사용성(Reusability) 과 유지보수성(Maintainability) 향상
- 모듈화(Modularity) 를 통한 개발 효율 향상
- 시스템의 확장성(Scalability) 과 유연성(Flexibility) 확보
요약하자면,
“객체지향 방법론의 목적은 복잡한 현실을 단순한 구조로 표현하면서,
변경에 강하고 유지보수가 쉬운 시스템을 만드는 것”이다.
3. 객체지향의 기본 구성 개념
객체지향(Object-Oriented)의 핵심은 네 가지 개념으로 요약된다.
① 객체(Object, 對象)
현실 세계의 사물이나 개념을 소프트웨어적으로 표현한 단위.
객체는 속성(Attribute) 과 행위(Operation) 를 가진다.
예:
학생(Student) 객체 → 속성: 이름, 학번 / 행위: 수강(), 휴학()
② 클래스(Class, 類)
공통된 속성과 행위를 갖는 객체들의 집합이다.
즉, 객체를 만들어내는 청사진(설계도) 역할을 한다.
예:
Student 클래스 → “홍길동”, “김철수” 객체가 생성됨
③ 캡슐화(Encapsulation, 包裝化)
객체의 속성과 행위(데이터와 메서드) 를 하나로 묶고,
외부에서 직접 접근하지 못하도록 숨기는 특성이다.
즉, “데이터 은닉(Data Hiding)”을 통해
불필요한 접근을 막고, 객체 간 독립성을 높인다.
④ 상속(Inheritance, 相續)
상위 클래스의 속성과 행위를 하위 클래스가 물려받는 관계.
코드의 재사용성(Reusability) 을 높인다.
예:
“사람(Person)” 클래스를 상속받은 “학생(Student)” 클래스
⑤ 다형성(Polymorphism, 多形性)
동일한 메시지(명령)에 대해
각 객체가 서로 다른 방식으로 반응하는 특성이다.
예:
동일한 “출력(print)” 명령이라도
문서 객체는 PDF를 출력하고, 그래픽 객체는 이미지를 출력할 수 있음.
4. 객체지향 방법론의 절차
객체지향 방법론은 단순한 개념이 아니라,
“분석 → 설계 → 구현”의 일련의 절차를 포함한다.
1️⃣ 객체지향 분석(Object-Oriented Analysis, OOA)
사용자의 요구사항을 기반으로, 시스템을 구성하는 객체와 그 관계를 식별한다.
2️⃣ 객체지향 설계(Object-Oriented Design, OOD)
분석 단계에서 정의된 객체를 구체화하여, 클래스 구조와 인터페이스를 설계한다.
3️⃣ 객체지향 구현(Object-Oriented Programming, OOP)
설계된 구조를 실제 프로그래밍 언어(Java, C++, Python 등)로 구현한다.
5. 객체지향 방법론의 장점
- 재사용성: 기존 클래스나 객체를 재활용할 수 있음
- 유지보수성: 코드 수정 시 영향이 제한적
- 확장성: 새로운 기능을 쉽게 추가 가능
- 현실 표현력: 현실 세계를 직관적으로 모델링 가능
- 모듈화: 독립적인 단위로 분리되어 협업 개발이 용이
6. 단점 및 주의점
- 설계 초기 단계가 복잡하고 시간이 많이 든다.
- 객체 간 관계를 잘못 정의하면 구조가 오히려 복잡해진다.
- 절차지향보다 초기 학습 비용이 높다.
즉, 잘못 설계된 객체지향 시스템은
“모듈이 아니라 미로(迷路)”가 되기도 한다.
7. 대표적인 객체지향 방법론 모델
객체지향 방법론에도 여러 접근 방식이 있다.
대표적인 것들은 다음과 같다.
- Rumbaugh 방법 (OMT: Object Modeling Technique)
→ 객체 모델, 동적 모델, 기능 모델로 구분하여 분석. - Booch 방법
→ 클래스와 객체의 관계를 그래픽으로 표현. - Jacobson 방법 (OOSE: Object-Oriented Software Engineering)
→ 유스케이스(Use Case)를 기반으로 시스템을 모델링. - Unified Method (UML 기반)
→ Rumbaugh + Booch + Jacobson 세 가지 방법론을 통합한 방식.
이 Unified Method가 발전해서 UML(Unified Modeling Language) 이 된 것이다.
2026 해커스 정보처리기사 필기 한권완성 이론 + 최신기출 + 핵심노트 (전2권)
deg.kr
8. 정처기 실기 정의 문장
“객체지향 방법론은 현실 세계의 개체를 객체로 모델링하여,
객체 간의 관계와 메시지 교환을 중심으로 시스템을 분석·설계·구현하는 소프트웨어 개발 방법론이다.”
시험 키워드:
객체, 클래스, 캡슐화, 상속, 다형성, 재사용성, 모델링, OOA, OOD, OOP
🪶 단어 정리 (한국식 한자 + 영어 어원 + 뜻풀이)
객체(對象) / Object
대할 대(對), 모양 상(象)
: 속성과 행위를 가진 독립적 존재. 영어 objectum(대상, 목적물)에서 유래.
지향(指向) / Oriented
가리킬 지(指), 향할 향(向)
: 어떤 방향으로 목표를 두는 것. 영어 orientare(방향을 잡다)에서 유래.
방법론(方法論) / Methodology
모 방(方), 법 법(法), 논할 론(論)
: 어떤 일을 수행하기 위한 체계적 절차나 원리.
속성(屬性) / Attribute
붙을 속(屬), 성품 성(性)
: 객체의 상태나 데이터를 표현하는 요소.
상속(相續) / Inheritance
서로 상(相), 이을 속(續)
: 상위 클래스의 속성과 기능을 하위 클래스가 물려받는 것.
다형성(多形性) / Polymorphism
많을 다(多), 모양 형(形), 성품 성(性)
: 동일한 명령이 상황에 따라 다르게 실행되는 성질.
캡슐화(包裝化) / Encapsulation
쌀 포(包), 꾸러미 장(裝), 될 화(化)
: 데이터와 기능을 하나로 묶어 은닉하는 것.
모델링(模型化) / Modeling
본뜰 모(模), 모형 형(型), 될 화(化)
: 현실을 단순화해 구조적으로 표현하는 행위.
🏷️ 해시태그 정리
#객체지향방법론
#ObjectOrientedMethodology
#OOA
#OOD
#OOP
#클래스
#객체
#캡슐화
#상속
#다형성
#정처기실기
#소프트웨어공학
#UML
#시스템설계
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
소프트웨어 재사용 (Software Reuse, 再使用)이란? (0) | 2025.10.15 |
---|---|
정보공학 개발 방법론 (Information Engineering, 情報工學開發方法論)이란 ? (0) | 2025.10.15 |
커뮤니케이션 다이어그램 (Communication Diagram, 通信圖) (0) | 2025.10.15 |
순차 다이어그램 (Sequence Diagram, 順次圖) (0) | 2025.10.15 |
연관 클래스 (Association Class, 連關類) (0) | 2025.10.15 |