Chapter 10. 객체지향 기초

IT 지식 / Python·2026.08.25
OBJECT-ORIENTED PROGRAMMING
Chapter 10. 객체지향 기초
객체지향 프로그래밍의 기본 개념과 문법을 배웁니다.

10.1 객체지향(Object-Oriented Programming)이란?

객체지향(Object-Oriented Programming, OOP)은 프로그램을 객체(Object) 단위로 개발하는 방법입니다. 객체는 데이터(속성)와 기능(메서드)을 하나로 묶은 것입니다.

예를 들어 학생은 다음과 같은 정보를 가지고 있습니다.

속성(데이터) 기능(메서드)
이름 공부한다.
나이 출력한다.
학년 시험을 본다.
점수 점수를 계산한다.

프로그램에서도 학생 한 명을 하나의 객체로 만들어 관리합니다. 객체지향은 현실 세계를 프로그램으로 표현하는 가장 대표적인 개발 방법이며, Python, Java, C++, C# 등 대부분의 프로그래밍 언어에서 사용됩니다.

객체지향의 특징

객체는 다음 두 가지로 구성됩니다.

  • 데이터(Data)
  • 기능(Method)

예를 들어 자동차 객체는 다음과 같이 표현할 수 있습니다.

데이터 기능
색상 출발한다.
속도 멈춘다.
연료 가속한다.
제조사 후진한다.
절차지향과 객체지향 비교
절차지향 객체지향
순서대로 실행 객체 중심 개발
함수 중심 클래스 중심
데이터와 기능이 분리 데이터와 기능을 함께 관리
유지보수가 어렵다. 유지보수가 쉽다.
실습 10-1

다음 중 객체(Object)가 될 수 있는 것을 모두 고르시오.

  • ① 학생
  • ② 자동차
  • ③ 휴대폰
  • ④ 강아지
  • ⑤ 더하기(+)

정답

  • ① 학생
  • ② 자동차
  • ③ 휴대폰
  • ④ 강아지
10.2 클래스(Class)

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 클래스(Class)와 객체(Object)를 이용하여 프로그램을 작성하는 방법입니다. 클래스(Class)는 객체를 만들기 위한 설계도입니다.

예를 들어 붕어빵을 만들기 위해서는 먼저 붕어빵 틀이 필요합니다.

붕어빵 틀 → 클래스(Class)
실제 만들어진 붕어빵 → 객체(Object)

기본 문법
Python
class 클래스명:
    내용

아직 작성할 내용이 없다면 pass를 사용합니다.

Python
class Student:
    pass

pass는 아무 동작도 하지 않는 예약어이며, 나중에 내용을 작성하기 위해 미리 클래스를 만들어 둘 때 사용합니다.

Python
class Car:
    pass

print("클래스 생성 완료")
실행 결과
클래스 생성 완료
10.3 객체(Object)

클래스를 만들었다면 이제 객체(Object)를 생성할 수 있습니다. 객체는 클래스를 이용하여 실제 메모리에 만들어진 실체입니다.

기본 문법
Python
객체 = 클래스명()
예제
Python
class Student:
    pass

student = Student()

print(student)
실행 결과
<__main__.Student object at 0x...>

객체는 여러 개 생성할 수 있습니다.

Python
student1 = Student()
student2 = Student()
student3 = Student()

각 객체는 서로 다른 메모리 공간을 사용합니다.

10.4 생성자(init)

객체가 생성될 때 자동으로 실행되는 메서드를 생성자(Constructor)라고 합니다. 파이썬에서는 __init__() 메서드를 사용합니다.

기본 문법
Python
class Student:
    def __init__(self):
        실행할 내용
예제
Python
class Student:

    def __init__(self):
        print("학생 객체가 생성되었습니다.")

student = Student()
실행 결과
학생 객체가 생성되었습니다.

객체를 생성하면 생성자가 자동으로 실행됩니다.

10.5 self

self는 현재 생성된 객체 자신을 의미합니다. 클래스 안의 모든 메서드는 첫 번째 매개변수로 self를 사용합니다.

Python
class Student:

    def hello(self):
        print("안녕하세요.")

student = Student()
student.hello()
실행 결과
안녕하세요.

다음 두 문장은 같은 의미입니다.

Python
student.hello()
↓
Student.hello(student)

즉, self는 현재 객체를 가리킵니다.

10.6 인스턴스 변수

객체마다 따로 저장되는 변수를 인스턴스 변수라고 합니다. 인스턴스 변수는 self를 이용하여 만듭니다.

Python
class Student:

    def __init__(self):
        self.name = "홍길동"
        self.age = 20

student = Student()

print(student.name)
print(student.age)
실행 결과
홍길동
20

객체마다 서로 다른 값을 저장할 수 있습니다.

10.7 메서드(Method)

메서드는 클래스 안에 작성하는 함수입니다. 메서드는 객체가 수행하는 기능(동작)을 의미합니다.

기본 문법
Python
class 클래스명:
    def 메서드(self):
        실행할 내용
예제
Python
class Student:

    def hello(self):
        print("안녕하세요.")

student = Student()

student.hello()
실행 결과
안녕하세요.
매개변수가 있는 메서드
Python
class Student:

    def hello(self, name):
        print(name + "님 안녕하세요.")

student = Student()
student.hello("홍길동")
실행 결과
홍길동님 안녕하세요.
반환값이 있는 메서드
Python
class Calculator:

    def add(self, a, b):
        return a + b

cal = Calculator()

print(cal.add(10, 20))
실행 결과
30
전체 예제 : 붕어빵 클래스

지금까지 배운 클래스, 객체, 생성자, self, 인스턴스 변수, 메서드를 하나의 예제로 만들어 보겠습니다.

Python
class 붕어빵:
    # 생성자
    def __init__(self):
        # 인스턴스 변수
        self.반죽 = 0.0
        self.팥 = 0.0
        self.기름 = 0.0
        self.결과 = 0.0

    # 메서드
    def set(self, 반죽, 팥, 기름):
        self.반죽 = 반죽
        self.팥 = 팥
        self.기름 = 기름

    # 메서드
    def 만들기(self):
        self.결과 = self.기름 + self.반죽 + self.팥 + self.반죽

    # 메서드
    def 꺼내기(self):
        print("붕어빵 완성 :", self.결과)

# 객체 생성
붕어빵1 = 붕어빵()

# 메서드 호출
붕어빵1.set(10, 2, 1)
붕어빵1.만들기()
붕어빵1.꺼내기()
실행 결과
붕어빵 완성 : 23.0
붕어빵 예제로 객체지향 정리
객체지향 개념 붕어빵 예제
클래스(Class) class 붕어빵:
객체(Object) 붕어빵1 = 붕어빵()
생성자(Constructor) __init__()
self 현재 객체 자신
인스턴스 변수 반죽, 팥, 기름, 결과
메서드(Method) set(), 만들기(), 꺼내기()
a computer screen with a bunch of code on it
📌 Chapter 10 핵심 정리
  • 객체지향 프로그래밍은 객체 단위로 개발하는 방법이다.
  • 클래스는 객체를 만들기 위한 설계도이다.
  • 생성자는 객체가 생성될 때 자동으로 실행되는 메서드이다.
  • self는 현재 객체 자신을 가리킨다.
  • 인스턴스 변수는 객체마다 따로 저장되는 변수이다.
  • 메서드는 클래스 안에 작성하는 함수로, 객체의 기능을 의미한다.

프로그램·홈페이지·강의가 필요하신가요?

프로그램 판매, 무료 다운로드, 홈페이지 제작, IT 강의 상담을 도와드립니다.

상담 신청하기