OOP (2) & OS I/O
Python|조회 9|2026.08.20 18:00
0:00 / 47:12
OOP (2) & OS I/O
47:12학습 목표
이 강의를 통해 객체 지향 프로그래밍(OOP)의 핵심 개념인 상속과 다형성, 그리고 캡슐화에 대해 깊이 이해하고 파이썬으로 구현하는 방법을 배웁니다. 특히 캡슐화의 세부 기법인 이름 맹글링(Name Mangling)과 프로퍼티(Property)를 활용한 접근 제어 방법을 익히고, 상속 관계에서 super() 키워드의 사용법과 메소드 오버라이딩을 통한 다형성 구현을 학습합니다.
핵심 개념
- 캡슐화 (Encapsulation):
- 데이터와 기능을 하나의 단위로 묶고, 내부 데이터에 대한 직접적인 접근을 제한하여 정보 은닉을 구현하는 원리입니다.
- 파이썬에서는
_(protected) 및__(private, 이름 맹글링) 접두사를 사용하여 접근을 제어합니다. - 이름 맹글링 (Name Mangling):
__변수명형태로 선언된 변수는_클래스명__변수명형태로 이름이 변경되어 외부에서의 직접 접근을 어렵게 만듭니다. - 프로퍼티 (Property):
@property데코레이터를 사용하여 메소드를 속성처럼 접근할 수 있게 하며, getter, setter, deleter를 통해 데이터 접근을 제어합니다.class MyClass: def __init__(self, value): self._value = value # Protected @property def value(self): return self._value @value.setter def value(self, new_value): if new_value >= 0: self._value = new_value else: print("Value cannot be negative.")
- 상속 (Inheritance):
- 부모 클래스의 속성과 메소드를 자식 클래스가 물려받아 사용하는 객체 지향 개념입니다.
super()키워드를 사용하여 부모 클래스의 메소드(특히 생성자__init__)를 호출할 수 있습니다.class Parent: def __init__(self, name): self.name = name class Child(Parent): def __init__(self, name, age): super().__init__(name) # Call parent's __init__ self.age = age
- 다형성 (Polymorphism):
- 동일한 인터페이스를 통해 다양한 타입의 객체를 참조하고 조작할 수 있는 능력입니다.
- 메소드 오버라이딩 (Method Overriding): 부모 클래스의 메소드를 자식 클래스에서 재정의하여 사용하는 기법입니다.
공부 방향성
이 영상을 시청하기 전에 객체 지향 프로그래밍의 기본 개념(클래스, 객체, 메소드)에 대한 이해가 있다면 더욱 효과적으로 학습할 수 있습니다. 영상 시청 후에는 배운 캡슐화, 상속, 다형성 개념을 직접 파이썬 코드로 작성해보며 익숙해지는 것이 중요합니다. 특히 __ (이름 맹글링)과 @property를 활용한 접근 제어, super()를 이용한 부모 클래스 메소드 호출, 오버라이딩을 통한 다형성 구현 예제를 직접 만들어보며 코드의 동작 방식을 체득하는 것을 권장합니다. 다음 학습으로는 SOLID 원칙이나 디자인 패턴 등 OOP 심화 개념으로 확장해 나갈 수 있습니다.