객체 지향 프로그래밍(OOP) 은 소프트웨어를 객체 단위로 나누고 이 객체들 간의 상호 작용을 통해 프로그램을 설계하는 프로그래밍 패러다임입니다.
OOP의 특징
1. 캡슐화(Encapsulation)
데이터와 메서드를 하나의 단위로 묶어 캡슐화함으로써 객체의 내부 구현을 숨깁니다. 객체는 자체적으로 데이터를 관리하고 외부에서는 접근이 제한
2. 상속(Inheritance)
부모 클래스의 특징을 자식 클래스가 물려받아 재사용할 수 있게 해주는 개념입니다. 코드의 재사용성을 높이고 구조를 단순화
3. 다형성(Polymorphism)
동일한 메서드나 인터페이스를 서로 다른 방식으로 구현할 수 있는 능력을 의미합니다. 이는 코드의 유연성을 향상시키고 객체 간의 교환이 용이
객체지향 프로그래밍의 다섯 가지 원칙( SOLID 원칙)
- SRP (단일 책임 원칙): 클래스는 단 하나의 책임만 가져야 하며, 수정 이유는 오직 한 가지여야 합니다.
- OCP (개방/폐쇄 원칙): 소프트웨어 엔티티는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 합니다.
- LSP (리스코프 치환 원칙): 자식 클래스는 부모 클래스를 대체할 수 있어야 하며, 상속 관계에서 하위 클래스는 상위 클래스의 기능을 완전히 포함해야 합니다.
- ISP (인터페이스 분리 원칙): 클라이언트는 자신이 사용하지 않는 인터페이스에 의존하지 않아야 하며, 작은 여러 개의 인터페이스가 큰 덩어리의 인터페이스보다 나음.
- DIP (의존 역전 원칙): 고수준 모듈과 저수준 모듈 모두 추상화에 의존해야 하며, 추상화는 세부 사항에 의존해서는 안 되며, 세부 사항은 추상화에 의존해야 함.
'cs 공부' 카테고리의 다른 글
| 동기와 비동기의 차이 (0) | 2023.12.18 |
|---|---|
| OSI 7계층 (0) | 2023.12.15 |
| 대용량 트래픽 발생 시 어떻게 대응해야 하나요? (0) | 2023.12.12 |
| DI, IoC에 대해 설명해주세요. (0) | 2023.12.12 |
| http, https 차이점에 대해 설명해주세요 (0) | 2023.12.11 |