목차
- Q1_객체 지향 프로그래밍이란?(사용하는 목적과 장, 단점)
- Q2_객체 지향 프로그래밍(OOP) SOLID 원칙에 대한 설명

- Q1_객체 지향 프로그래밍이란?

더보기

A. Object-Oriented-Progarmming을 의미하며, 각각의 객체를 만들어 상황에 맞게 객체들을 서로 연결시키는 방식을 통해 프로그램을 구현하는 방법론이다.

- 프로그래밍을 하는 이유는? 주 목적은 현실 세계에 문제를 모델링하고 해결하는 데 있으며, OS 명령어를 내려서 하드웨어를 동작시키는 행위를 하기 위해서이다.

- OOP 사용에 장점으로는
1. 코드의 재사용성과 확장성이 용이하여 빠르게 코딩을 할 수 있다.
2. 절차 지향 프로그램밍과 달리 객체로 코드가 나누어져 있기 때문에 유지 보수가 편하다.
3. 추상화와 캡슐화로 복잡한 코드 구현을 숨기고 사용자에게는 필요한 인터페이스만 제공함으로써 사용자의 이해를 돕고 오류 가능성을 줄일 수 있다.

- OOP 사용에 단점으로는
1. 성능 측면에서 객체들 간의 상호작용, 다형성, 가비지 컬렉션 등으로 인해 절차 지향 프로그래밍에 비해 속도가 느리다.
2. 코딩 구조 계획 및 객체 등에 완벽한 이해가 필요하여 설계와 관리의 중요성이 요함으로 코딩이 어렵고 시간이 오래 걸린다.

- 객체란?
 데이터(속성)와 그 데이터에 대한 연산(메서드)을 묶어 놓은 것. 예를 들어 '자동차' 객체는 색상, 모델 속도 등의 속성과 가 속, 정지 등   의 메서드를 포함할 수 있다.

 

- Q2_객체 지향 프로그래밍(OOP) SOLID 원칙

더보기

A.
- S 단일 책임 원칙(Single Responsibility Principle, SRP) :
 하나의 클래스에는 하나의 책임만을 가진다의 원칙을 의미하며
 구체적인 기능에 집중할 수 있고 유지 보수와 확장성이 용이하도록 해야 합니다.

- O 오픈 폐쇄 원칙(Open-Closed Principle, OCP) :
 클래스의 확장성은 개방적, 수정은  폐쇄적 원칙을 의미하며 기존 코드를 변경하지 않고도 시스템의 기능을 확장할 수 있도록 해야   합니다.

- L 리스코프 치환 원칙(Liskov Sussitituion Principle, LSP) :
 상위 타입의 객체를 하위 타입으로 치환해도 프로그램은 일관성을 유지해야 한다는 원칙을 의미하며 이를 통해 프로그램의 정확성을   유지하면서도 하위 클래스를 자유롭게 사용할 수 있도록 해야 합니다.

- I 인터페이스 분리 원칙(Interface Segregaton Principle, ISP) :

 클래스는 자신이 사용하지 않는 인터페이스의 영향을 받지 않아야 한다를 의미하며 강제로 구현하게 하는 것을 방지해야 합니다. 이   를 통해 자신에게 필요한 인터페이스만을 선택적으로 구현할 수 있으며, 이는 전체적인 소프트웨어 디자인의 품질을 향상합니다.

- D 제어의 역전 원칙(Dependency Inversion Principle, DIP) :
 고수준 모듈과 저수준 모듈은 추상화(인터페이스나 추상 클래스 등)에 의존해야 한다.