Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

yhimsdokdo

파이썬 클래스와 상속: 실무에서 활용하는 마스터 가이드 본문

카테고리 없음

파이썬 클래스와 상속: 실무에서 활용하는 마스터 가이드

yhimsdokdo 2025. 4. 18. 21:31

파이썬 클래스 개념과 상속 실무 예제

파이썬은 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 언어로, 클래스와 객체를 통해 코드를 구조화하고 관리하는 데 매우 유용합니다. 이 글에서는 파이썬의 클래스 개념과 상속에 대해 알아보고, 실제 예제를 통해 이를 이해하도록 하겠습니다.

클래스의 개념

클래스는 객체를 생성하기 위한 청사진(blueprint)입니다. 객체는 클래스의 인스턴스로, 클래스에서 정의된 속성과 메소드를 갖습니다. 클래스를 사용하면 코드의 재사용성이 증가하고, 시스템의 구조를 더욱 이해하기 쉽게 만들 수 있습니다.

클래스의 정의

클래스를 정의하기 위해서는 class 키워드를 사용합니다. 기본적인 클래스 정의는 다음과 같습니다.

class ClassName:
    pass

여기서 ClassName은 클래스의 이름이며, 일반적으로 대문자로 시작합니다. 아무 내용도 없는 클래스는 pass 키워드를 사용하여 정의할 수 있습니다.

속성과 메소드

클래스는 속성과 메소드를 가질 수 있습니다. 속성은 클래스의 상태를 나타내고, 메소드는 클래스의 동작을 나타냅니다. 다음 예제는 속성과 메소드를 포함한 클래스의 정의를 보여줍니다.

class Dog:
    def init(self, name, age):
        self.name = name
        self.age = age
    
    def bark(self):
        return "멍멍!"

위의 예제에서 Dog 클래스는 nameage라는 두 개의 속성을 가지며, bark라는 메소드를 가집니다. init 메소드는 생성자로 객체가 생성될 때 초기화할 속성을 지정합니다.

객체 생성

클래스를 정의한 후에는 해당 클래스를 사용하여 객체를 생성할 수 있습니다. 객체 생성은 클래스 이름을 호출하는 것으로 이루어집니다.

my_dog = Dog("바둑이", 3)

위의 코드는 Dog 클래스의 인스턴스인 mydog를 생성합니다. 이제 mydog 객체를 통해 속성과 메소드에 접근할 수 있습니다.

속성과 메소드에 접근하기

객체의 속성이나 메소드는 점(.) 표기법을 통해 접근할 수 있습니다.

print(my_dog.name)

바둑이


print(my_dog.age)

3


print(my_dog.bark())

멍멍!


상속의 개념

상속은 기존 클래스(부모 클래스)의 속성과 메소드를 새로운 클래스(자식 클래스)에서 재사용할 수 있도록 하는 기능입니다. 상속을 통해 코드의 중복을 줄이고, 확장성을 높일 수 있습니다.

상속의 정의

부모 클래스를 상속받기 위해서는 클래스 정의에서 괄호 안에 부모 클래스의 이름을 포함해야 합니다.

class Animal:
    def speak(self):
        return "소리"
        
class Dog(Animal):
    def bark(self):
        return "멍멍!"

위의 예제에서 Dog 클래스는 Animal 클래스를 상속받아 speak 메소드를 사용할 수 있습니다.

자식 클래스의 메소드

자식 클래스에서 부모 클래스의 메소드를 호출할 수 있으며, 필요에 따라 메소드를 오버라이드(overriding)하여 변경할 수도 있습니다. 다음은 그 예시입니다.

class Dog(Animal):
    def speak(self):
        return "멍멍!"

위와 같이 speak 메소드를 정의하면, Dog 클래스의 인스턴스는 "소리" 대신 "멍멍!"을 반환합니다.

실무 예제

이제 실제로 파이썬 클래스를 사용하여 간단한 시스템을 만들어 보겠습니다. 예를 들어, 동물 관리 시스템을 구축한다고 가정하겠습니다.

클래스 정의

우선 동물의 기본 클래스를 정의해 보겠습니다.

class Animal:
    def init(self, name, age):
        self.name = name
        self.age = age
    
    def info(self):
        return f"이름: {self.name}, 나이: {self.age}살"

부모 클래스를 상속받는 자식 클래스

다음으로 고양이와 개 클래스를 정의하겠습니다.

class Dog(Animal):
    def speak(self):
        return "멍멍!"

class Cat(Animal):
    def speak(self):
        return "야옹!"

객체 생성 및 사용

이제 위에서 정의한 클래스를 사용하여 객체를 생성해 보겠습니다.

dog1 = Dog("맥스", 5)
cat1 = Cat("나비", 3)

print(dog1.info())

이름: 맥스, 나이: 5살


print(dog1.speak())

멍멍!



print(cat1.info())

이름: 나비, 나이: 3살


print(cat1.speak())

야옹!


결론

이번 글에서는 파이썬의 클래스와 상속 개념에 대해 살펴보고, 실무 예제를 통해 이러한 개념을 구체적으로 이해해 보았습니다. 클래스를 활용하면 코드의 재사용성을 높이고, 시스템을 더 잘 구조화할 수 있습니다. 파이썬을 사용하여 객체 지향 프로그래밍의 여러 이점을 경험해 보시기 바랍니다.