🚀 OOP
🔥 객체지향(Object Oriented Programming)
정의
- 객체들이 서로 유기적으로 동작하는 프로그래밍 이론
특징
- 추상화 : 객체의 공통된 특징을 파악해 정의해 놓은 설계 기법
- 캡슐화: 외부에 노출할필요 없는 정보는 은닉
- 상속: 부모클래스가 자식 클래스에게 속성 물려주기
- 다형성: 같은 형태이지만 다른 기능을 하는것
장점
- 코드의 재활용성, 가독성, 디버깅 용이성 높음
단점
- 절차지향보다 느린 처리속도
- 설계에 많은 시간소요
대표 언어
5가지 원칙
- SRP(Single Responsibility Principle)
단일 책임 원칙: 클래스는 단 하나의 목적을 가져야 하며, 클래스 변경하는 이유는 단 하나의 이유
- OCP(Open-Closed Principle)
개방 폐쇠 원칙: 클래스는 확장에는 열려있고, 변경에는 닫혀있다
- LSP(Liskov Substitution Principle)
리스코프 치환 원칙: 상위 타입의 객체를 하위 타입으로 바꾸어도 프로그램은 일관되게 동작해야 된다
- ISP(Interface Segregation Principle)
인터페이스 분리 원칙: 클라이언트는 이용하지 않는 메소드에 의존하지 않도록 인터페이스를 분리해야 된다
- DIP(Dependency Inversion Principle)
의존 역전 법칙: 클라이언트는 추상화에 의존해야 하며, 구체화에 의존해선 안된다
🚀 PP
🔥 절차지향(Procedural Programming)
반대개념
장점
단점
- 실행순서가 정해져있어 코드의 순서가 바뀌면 동일한 결과 보장이 어려움
- 유지보수와 디버깅이 어려움
대표언어