객체지향 프로그래밍(OOP)은 소프트웨어 개발에서 가장 널리 사용되는 프로그래밍 패러다임 중 하나입니다. OOP는 코드를 클래스와 객체로 구성하여 추상화, 캡슐화, 상속 등의 개념을 통해 코드를 구성합니다.
객체지향 프로그래밍의 주요 키워드와 원칙은 다음과 같습니다.
- 클래스 (Class) : 객체를 정의하는 템플릿입니다. 클래스는 객체의 속성과 메서드를 정의합니다.
- 객체 (Object) : 클래스의 인스턴스입니다. 객체는 클래스에서 정의된 속성과 메서드를 가집니다.
- 캡슐화 (Encapsulation) : 객체의 속성과 메서드를 하나로 묶어 외부에서 직접 접근하지 못하게 하는 것을 말합니다. 이는 객체의 내부 동작을 숨기고 객체 간 상호작용을 제한하므로 코드의 유지 보수성을 높입니다.
- 상속 (Inheritance) : 부모 클래스에서 정의된 속성과 메서드를 자식 클래스에서 재사용할 수 있도록 하는 것을 말합니다. 상속을 통해 코드의 재사용성을 높이고 객체의 계층 구조를 구성할 수 있습니다.
- 다형성 (Polymorphism) : 하나의 메서드나 클래스가 다양한 형태로 동작할 수 있는 것을 말합니다. 다형성을 통해 코드의 재사용성과 유연성을 높일 수 있습니다.
- 추상화 (Abstraction) : 객체의 공통된 특징을 추출하여 클래스로 정의하는 것을 말합니다. 추상화를 통해 코드를 단순화하고 객체 간의 관계를 명확하게 정의할 수 있습니다.
- 인터페이스 (Interface) : 객체가 외부와 상호작용하기 위한 메서드의 집합을 정의하는 것을 말합니다. 인터페이스를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.
- SOLID 원칙 : 객체지향 설계 원칙 중에서 가장 널리 알려진 것으로, SRP(Single Responsibility Principle), OCP(Open-Closed Principle), LSP(Liskov Substitution Principle), ISP(Interface Segregation Principle), DIP(Dependency Inversion Principle) 다섯 가지 원칙으로 구성됩니다. 이 원칙들은 객체지향 설계의 핵심 원칙으로, 코드의 유연성, 확장성, 유지 보수성을 높이기 위해 따라야 하는 원칙입니다.