객체 지향 프로그래밍(OOP)은 컴퓨터 프로그램을 객체들의 유기적인 협력과 결합으로 파악하고자 하는 프로그래밍 패러다임을 말합니다.
OOP의 특징 4가지
1. 추상화 : 객체의 공통적인 속성과 기능을 추출하여 정의합니다.
2. 캡슐화 : 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 외부로부터 데이터를 보호합니다.
이유 : 데이터 보호(클래스에 정의된 속성과 기능)와 은닉(내부의 동작을 감추고 필요한 부분만 노출)
3. 상속 : 반복적인 코드를 최소화하고 공유하는 속성과 기능에 간편하게 접근하여 사용할 수 있습니다.
4. 다형성 : 객체의 속성이나 기능이 상황에 따라 바뀔 수 있습니다. 예) 오버로딩, 오버라이딩
SOLID 원칙
1. Single Responsibility Principle(SRP) : 단일 책임 원칙
하나의 객체(클래스)는 하나의 책임만을 가져야 하는 원칙입니다.
2. Open-Closed Principle(OCP) : 개방 폐쇄 원칙
확장에는 개방적이고 수정에는 폐쇄적이어야 한다는 원칙입니다.
3. Liskov Substitution Principle(LSP) : 리스코프 치환 원칙
자식 클래스는 항상 부모 클래스를 대체할 수 있다는 원칙입니다.
4. Interface Segregation Principle(ISP) : 인터페이스 분리 원칙
클라이언트가 사용하지 않는 메서드에 의존하지 않아야 한다는 원칙입니다.
5. Dependency Inversion Principle(DIP) : 의존성 역전 원칙
고수준 모듈이 저수준 모듈의 구현에 의존해서는 안 되고 저수준 모듈이 고수준 모듈에 의존해야 한다는 원칙입니다.
'기술면접' 카테고리의 다른 글
| 제네릭이란? (0) | 2023.03.29 |
|---|---|
| MSA란? (0) | 2023.03.29 |
| 인덱스를 사용하는 이유 (0) | 2023.03.28 |
| 의존성 주입이란? (0) | 2023.03.28 |
| REST API란? (0) | 2023.03.27 |