TIL 웹개발 - Class 개념 정리
클래스(class) : 클래스는 객체를 생성하기 위한 청사진(설계도)입니다. 클래스는 데이터(어트리뷰트)와 행동(메서드)을 정의합니다. 객체(object) : 객체는 클래스의 인스턴스입니다. 클래스는 객체의 구조와 동작을 정의하고, 객체는 클래스에 정의된 구조와 동작을 실제로 구현한 것입니다. 인스턴스(instance) : 인스턴스는 클래스로부터 생성된 개별 객체를 의미합니다. 각 인스턴스는 독립적인 값을 가지며, 클래스에 정의된 속성과 메서드를 사용할 수 있습니다. 인스턴스 어트리뷰트(속성) : 인스턴스 어트리뷰트는 각 인스턴스마다 개별적으로 저장되는 데이터를 의미합니다. 보통 __init__ 메서드 내에서 정의됩니다. 클래스 어트리뷰트(속성) : 클래스 어트리뷰트는 클래스 자체에 속하는 변수로, 모든 인스턴스가 공유합니다. 메서드(methods) : 메서드는 클래스 내부에 정의된 함수로, 객체의 행동을 정의합니다. 메서드는 첫 번째 인자로 self를 받아 인스턴스의 속성과 상호작용합니다. 상속(inheritance) : 상속은 기존 클래스를 바탕으로 새로운 클래스를 정의하는 것입니다. 새로운 클래스는 기존 클래스의 속성과 메서드를 물려받습니다. 다형성(polymorphism) : 다형성은 동일한 메서드가 다른 객체에서 다르게 동작할 수 있게 하는 것입니다. 이는 주로 메서드 오버라이딩을 통해 구현됩니다. 캡슐화(encapsulation) : 캡슐화는 객체의 속성과 메서드를 외부에서 직접 접근하지 못하게 하고, 객체 내부에서만 접근할 수 있게 하는 것입니다. 보통 접근자와 설정자를 통해 구현됩니다. 추상화(abstraction) : 추상화는 객체의 복잡성을 줄이고, 필요한 부분만 노출하는 것입니다. 이는 추상 클래스를 통해 구현될 수 있습니다.