Skip to main content
객체지향 프로그래밍(Object-Oriented Programming, OOP)은 데이터(속성)와 기능(메서드)을 하나의 단위(객체)로 묶어 설계하는 프로그래밍 패러다임입니다.

절차적 vs 객체지향

특성절차적객체지향
중심함수와 데이터 분리데이터와 함수를 객체로 통합
재사용함수 호출클래스 상속/조합
확장성새 함수 추가새 클래스/메서드 추가
적합 사례간단한 스크립트복잡한 시스템, 프레임워크

OOP 4대 원칙

머신러닝 프레임워크(PyTorch, scikit-learn)는 OOP로 설계되어 있습니다. nn.Module을 상속하여 모델을 만들고, Dataset__getitem__을 구현하는 것이 모두 OOP 패턴입니다.

클래스와 인스턴스

class, init, self, 메서드 종류

상속과 다형성

상속, super(), MRO, 메서드 오버라이딩

매직 메서드

str, len, getitem, call

OOP 심화

dataclass, Protocol, 디자인 패턴