객체지향의 이해와 클래스/인스턴스 완벽 정리
오늘은 파이썬 프로그래밍의 핵심이자 대규모 소프트웨어 개발의 기반이 되는 '객체지향 프로그래밍(OOP)'에 대해 알아보려고 합니다.
한국방송통신대학교(KNOU) 컴퓨터과학과 정재화 교수님의 강의 내용을 바탕으로, 초보자분들도 쉽게 이해할 수 있도록 핵심 개념을 체계적으로 정리했습니다.

객체지향의 4대 특징부터 클래스와 인스턴스의 차이, 그리고 데이터 은닉(Data Hiding)을 위한 접근자와 변경자까지 한눈에 파악하실 수 있습니다.
본문 하단에는 복습을 위한 확인 기출문제 5개와 상세한 정답 해설도 준비되어 있으니 끝까지 읽어보시고 파이썬 마스터에 한 걸음 더 다가가세요.
1. 핵심 내용 요약
01. 객체지향의 이해
- 객체지향 패러다임: 객체와 객체 사이의 상호작용으로 프로그램을 구성하는 방식입니다. 프로그램의 유연성과 변경 용이성을 높여주어 대규모 소프트웨어 개발에 필수적입니다.
- 객체지향의 4대 특징:
- 추상화 (Abstraction): 실세계 사물에서 공통의 속성이나 기능을 도출하는 것
- 캡슐화 (Encapsulation): 데이터 구조와 데이터 연산(메서드)을 하나로 결합하는 것
- 상속 (Inheritance): 상위 개념의 특징을 하위 개념에 그대로 전달하는 것
- 다형성 (Polymorphism): 유사한 객체들의 사용성을 그대로 유지하며 다양하게 동작하는 것
02. 클래스와 인스턴스
- 클래스(Class)와 객체(Object): 클래스는 객체를 만들기 위한 '설계도(틀)'이며, 객체는 그 설계도를 바탕으로 실세계의 상태(데이터 필드)와 연산(메소드)을 표현한 실체입니다. 클래스를 통해 생성된 실제 객체를 인스턴스(Instance)라고 부릅니다.
- 초기자(Initializer): __init__ 메소드는 객체가 생성될 때 상태를 초기화하는 특수한 메서드입니다.
- self 매개변수: 모든 메서드의 첫 번째 매개변수로 지정되며, 메소드 호출 시에는 명시하지 않지만 클래스 내부에서 객체 자신을 참조하고 멤버에 접근할 때 사용됩니다.
- UML 클래스 다이어그램: 클래스의 이름, 데이터 필드, 메소드 구조를 표준화하여 시각적으로 표현하는 도구입니다.
03. 객체지향의 활용 및 데이터 은닉
- 데이터 은닉(Data Hiding): 객체 외부에서 데이터 필드에 직접 접근하여 비정상적인 값(예: 음수 반지름)을 입력하는 것을 방지하기 위한 기술입니다.
- private 데이터 필드: 파이썬에서는 데이터 필드 이름 앞에 두 개의 밑줄(__)을 붙여 클래스 내부에서만 접근 가능하도록 제한합니다. (예: self.__r)
- 접근자와 변경자: private 필드에 안전하게 접근하기 위해 사용합니다.
- 접근자 (Getter): 데이터 필드의 값을 반환하는 메소드 (예: get_r())
- 변경자 (Setter): 데이터 필드의 값을 올바르게 설정/검증하는 메소드 (예: set_r(radius))
2. 기출문제 5
1. 다음 중 객체지향 패러다임의 특징에 대한 설명으로 올바르지 않은 것은?
① 추상화: 공통의 속성이나 기능을 도출하는 과정이다.
② 캡슐화: 데이터 구조와 데이터의 연산을 하나로 결합하는 것이다.
③ 상속: 하위 개념의 특징이 상위 개념으로 전달되는 역방향 구조를 가진다.
④ 다형성: 유사 객체의 사용성을 그대로 유지하면서 다양하게 표현하는 특징이다.
2. 파이썬 클래스 내부에서 객체의 상태를 초기화하는 특수 메소드의 이름으로 올바른 것은?
① __start__
② __init__
③ __main__
④ __construct__
3. 파이썬 메소드 정의 시 반드시 첫 번째 매개변수로 사용되며, 객체 자신을 참조하여 클래스 내 멤버에 접근할 때 사용하는 키워드는?
① this
② object
③ self
④ super
4. 파이썬에서 외부의 직접적인 접근을 차단하기 위해 private 데이터 필드를 정의할 때 변수 이름 앞에 붙여야 하는 기호는?
① @ (At sign)
② _ (밑줄 1개)
③ __ (밑줄 2개)
④ $ (Dollar sign)
5. private 데이터 필드의 값을 안전하게 반환받기 위한 메서드(Getter)와 값을 설정하기 위한 메서드(Setter)를 일컫는 용어의 조합으로 올바른 것은?
① 생성자 - 소멸자
② 접근자 - 변경자
③ 입력자 - 출력자
④ 추상자 - 구현자
3. 정답 및 해설
- 1 정답: ③
- 해설: 상속은 상위(부모) 개념의 특징이 하위(자식) 개념에 전달되는 구조입니다. 하위에서 상위로 전달되는 역방향이 아니므로 3번이 잘못되었습니다.
- 2 정답: ②
- 해설: 파이썬에서 객체의 초기화를 담당하는 초기자(Initializer) 메서드는 반드시 언더바 2개를 앞뒤로 붙인 __init__으로 명명해야 합니다.
- 3 정답: ③
- 해설: 파이썬의 클래스 메소드는 첫 번째 인자로 항상 self를 받도록 설계되어 있습니다. 호출 시에는 생략되지만 내부 멤버 접근을 위해 필수적입니다.
- 4 정답: ③
- 해설: 파이썬에서 변수명 앞에 두 개의 밑줄(__)을 붙이면 데이터 은닉(Data Hiding)이 적용되어 외부에서 직접적인 접근 및 수정이 불가능한 private 멤버가 됩니다.
- 5 정답: ②
- 해설: private 데이터 필드에 우회하여 안전하게 접근하는 메서드를 각각 값을 읽어오는 접근자(Accessor/Getter), 값을 수정하는 변경자(Mutator/Setter)라고 부릅니다.
마무리
오늘은 파이썬 프로그래밍 초급 단계를 넘어 중급으로 가기 위한 필수 관문인 객체지향(OOP)의 핵심 이론을 정리해 보았습니다.
단순히 코드를 위에서 아래로 작성하는 절차지향적 사고에서 벗어나, 데이터와 연산을 묶은 '객체' 단위로 생각하기 시작하면 훨씬 더 깔끔하고 확장성 높은 대규모 프로그램을 설계하실 수 있게 됩니다. 오늘 배운 class, self, __init__, 그리고 데이터 은닉(__) 개념을 직접 코드로 타이핑해 보며 손에 익혀보시길 권장합니다.
그림으로 배우는 파이썬 - 프로그래밍 언어 | 쿠팡
쿠팡에서 그림으로 배우는 파이썬 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 프로그래밍 언어 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'IT 이야기' 카테고리의 다른 글
| 방송통신대 파이썬프로그램 기초:: 9강. 콜렉션2 핵심 정리 & 기말시험 예상기출문제(정답및 해설) (0) | 2026.05.26 |
|---|---|
| 방송통신대 파이썬프로그래밍기초::8강 콜렉션1 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.24 |
| 방송통신대 파이썬프로그래밍기초::7강 함수 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.23 |
| 방송통신대 파이썬프로그래밍기초 :: 6강 반복 구조 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.22 |
| 방송통신대 파이썬프로그래밍기초::5강 선택 구조 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.21 |
댓글