Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 객체 지향 프로그래밍(OOP) 핵심 용어 완벽 정리

파이썬은 객체 지향 프로그래밍(Object-Oriented Programming, OOP)을 지원하는 대표적인 언어로, 코드를 구조화하고 재사용성을 높이는 데 매우 효과적입니다. OOP를 제대로 활용하려면 먼저 핵심 용어들을 정확히 이해하는 것이 중요합니다. 아래에서 파이썬 OOP의 주요 용어들을 하나씩 살펴보겠습니다.

1. 클래스(Class)

클래스는 객체를 생성하기 위한 사용자 정의 설계도(프로토타입)입니다. 클래스는 해당 클래스에 속한 모든 객체의 특징을 결정짓는 속성(attribute)들의 집합을 정의하며, 속성은 데이터 멤버(클래스 변수와 인스턴스 변수)와 메서드로 구성됩니다. 이러한 속성에는 점(.) 표기법(dot notation)을 통해 접근할 수 있습니다.

2. 클래스 변수(Class Variable)

클래스 변수는 해당 클래스의 모든 인스턴스가 공유하는 변수입니다. 클래스 내부에 정의되지만, 어떤 메서드 안에도 속하지 않는 위치에 선언됩니다. 클래스 변수는 인스턴스 변수만큼 자주 사용되지는 않습니다.

3. 데이터 멤버(Data Member)

데이터 멤버는 클래스와 그 객체와 관련된 데이터를 담고 있는 클래스 변수 또는 인스턴스 변수를 의미합니다.

4. 함수 오버로딩(Function Overloading)

함수 오버로딩은 하나의 함수에 여러 가지 동작을 부여하는 것을 말합니다. 실제로 수행되는 연산은 함수에 전달되는 객체나 인수의 타입에 따라 달라집니다.

5. 인스턴스 변수(Instance Variable)

인스턴스 변수는 메서드 내부에서 정의되며, 오직 현재 인스턴스에만 속하는 변수입니다. 즉, 각 객체마다 서로 독립적인 값을 가질 수 있습니다.

6. 상속(Inheritance)

상속은 한 클래스의 특성(속성과 메서드)을 그로부터 파생된 다른 클래스에게 물려주는 것을 의미합니다. 상속을 활용하면 코드 중복을 줄이고 체계적인 클래스 계층 구조를 만들 수 있습니다.

7. 인스턴스(Instance)

인스턴스는 특정 클래스에 속한 개별 객체를 뜻합니다. 예를 들어, Circle이라는 클래스에 속한 객체 obj가 있다면, obj는 Circle 클래스의 인스턴스라고 할 수 있습니다.

8. 인스턴스화(Instantiation)

인스턴스화란 클래스의 인스턴스, 즉 객체를 새로 생성하는 과정을 말합니다.

9. 메서드(Method)

메서드는 클래스 정의 내부에 선언된 특수한 형태의 함수입니다. 객체의 동작(behavior)을 정의하며, 일반적으로 첫 번째 매개변수로 self를 받아 해당 인스턴스에 접근합니다.

10. 객체(Object)

객체는 클래스가 정의한 데이터 구조의 고유한 인스턴스입니다. 객체는 데이터 멤버(클래스 변수와 인스턴스 변수)와 메서드를 모두 포함하며, 프로그램이 실제로 다루는 대상이 됩니다.

11. 연산자 오버로딩(Operator Overloading)

연산자 오버로딩은 하나의 연산자에 여러 가지 기능을 부여하는 것을 의미합니다. 예를 들어 '+' 연산자가 숫자 덧셈뿐만 아니라 문자열 연결처럼 다양한 동작을 수행하도록 만들 수 있습니다.

이러한 용어들은 파이썬 객체 지향 프로그래밍의 기초가 되는 개념입니다. 각 용어의 의미와 차이점을 명확히 이해해 두면 클래스를 설계하고 활용할 때 큰 도움이 될 것입니다.