목차
- 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) :
고수준 모듈과 저수준 모듈은 추상화(인터페이스나 추상 클래스 등)에 의존해야 한다.
'Java' 카테고리의 다른 글
[Java] 다형성과 클래스 상속 (1) | 2024.03.14 |
---|---|
[Java] 메서드 오버라이딩과 메서드 오버로딩 (0) | 2024.03.14 |
[TIL] 접근 제어 지시자와 정보 은닉 (0) | 2023.12.11 |
[TIL] 로그인에 관한 세션 그리고 JWT 토큰 방식 (0) | 2023.11.18 |
[Java] chapter_15 (0) | 2023.09.27 |