카테고리 없음
객체 지향이란?
락돌
2023. 9. 21. 12:06
객체지향의 4가지 특징
- 추상화 (Abstraction):
추상화는 복잡한 시스템을 단순화하고 중요한 부분에 초점을 맞추는 과정입니다.
객체지향에서는 클래스로 추상화를 구현하며, 이로써 현실 세계의 개념을 모델링하고 문제를 해결할 수 있습니다. - 다형성 (Polymorphism):
다형성은 하나의 인터페이스나 추상 클래스를 사용하여 여러 다른 클래스를 처리할 수 있는 능력을 가리킵니다.
이로써 코드의 재사용성을 높이고 유연성을 확보할 수 있습니다. - 캡슐화 (Encapsulation)
캡슐화는 데이터와 해당 데이터를 다루는 메서드를 하나로 묶는 개념입니다.
이로써 데이터의 은닉화와 보호가 가능하며, 객체의 내부 상태를 외부로부터 숨길 수 있습니다. - 상속 (Inheritance)
상속은 이미 존재하는 클래스로부터 속성과 메서드를 물려받는 것을 의미합니다.
이로써 코드 재사용성을 높이고 클래스 간의 계층 구조를 형성할 수 있습니다.
객체지향의 5가지 설계 원칙 (SOLID)
- SPR: Single Responsibility Principle (단일 책임의 원칙):
클래스는 하나의 책임만 가져야 하며, 그 책임을 완전히 캡슐화해야 합니다. 이렇게 하면 클래스가 변경되어야 하는 이유가 단 하나이며, 유지보수가 쉬워집니다. - OCP: Open/Closed Principle (개방 폐쇄의 원칙):
소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하지만, 수정에는 닫혀 있어야 합니다. 즉, 새로운 기능을 추가할 때 기존 코드를 수정하지 않아야 합니다. - LSP: Liskov's Substitution Principle (리스코프 치환의 원칙):
하위 클래스는 상위 클래스의 역할을 완전히 대체할 수 있어야 합니다. 즉, 하위 클래스는 상위 클래스와 동일한 인터페이스를 유지하고, 이를 준수해야 합니다. - ISP: Interface Segregation Principle (인터페이스 분리의 원칙):
클라이언트는 자신이 사용하지 않는 인터페이스에 의존해서는 안 됩니다. 큰 범용 인터페이스보다 작은 구체적인 인터페이스를 사용함으로써 이 원칙을 따릅니다. - DIP: Dependency Inversion Principle (의존성 역전의 원칙):
고수준 모듈은 저수준 모듈에 의존하면 안 되며, 둘 모두 추상화에 의존해야 합니다. 이렇게 하면 시스템의 유연성을 향상시킬 수 있습니다.
객체지향 패러다임
객체지향 패러다임은 현실 세계의 복잡성을 낮추기 위해 객체에게 적절한 역할과 책임을 할당하고,
객체 간에 메시지를 주고 받아 협력하는 개념을 강조합니다.
이를 통해 소프트웨어의 유지보수성을 향상시키고 재사용 가능한 코드를 작성할 수 있습니다.
객체지향 패러다임은 소프트웨어 개발에서 중요한 개념 중 하나로, 코드의 가독성과 확장성을 향상시킵니다.