객체 지향 프로그래밍(Object-Oriented Programming, OOP)
컴퓨터 프로그램을 어떤 데이터를 입력받아 순서대로 처리하고 결과를 도출하는 명령어들의 목록으로 보는 시각에서 벗어나 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임.
객체 지향 프로그래밍의 4가지 특징
객체지향 프로그래밍의 5가지 설계 원칙, SOLID
단일 책임의 원칙 - SRP
하나의 메서드는 한 가지 책임만 가져야 한다.
개방 폐쇄 원칙 - OCP
확장에는 열려있으며, 수정에는 닫혀있어야 한다.
리스코프 치환 원칙 - LSP
자식 클래스는 부모 클래스의 자리를 바꿔도 프로그램이 제대로 동작해야 한다.
인터페이스 분리 원칙 - ISP
인터페이스를 사용성에 맞게끔 잘 설계해야 한다.
의존 역전 원칙 - DIP
상위 모듈은 하위 모듈에 의존하면 안 되며, 둘 다 추상화에 의존해야 한다.