OOP vs. PP

김한준·2021년 10월 6일
0

🚀 OOP

🔥 객체지향(Object Oriented Programming)

정의

  • 객체들이 서로 유기적으로 동작하는 프로그래밍 이론

특징

  • 추상화 : 객체의 공통된 특징을 파악해 정의해 놓은 설계 기법
  • 캡슐화: 외부에 노출할필요 없는 정보는 은닉
  • 상속: 부모클래스가 자식 클래스에게 속성 물려주기
  • 다형성: 같은 형태이지만 다른 기능을 하는것

장점

  • 코드의 재활용성, 가독성, 디버깅 용이성 높음

단점

  • 절차지향보다 느린 처리속도
  • 설계에 많은 시간소요

대표 언어

  • python
  • javascript

5가지 원칙

  • SRP(Single Responsibility Principle)
    단일 책임 원칙: 클래스는 단 하나의 목적을 가져야 하며, 클래스 변경하는 이유는 단 하나의 이유
  • OCP(Open-Closed Principle)
    개방 폐쇠 원칙: 클래스는 확장에는 열려있고, 변경에는 닫혀있다
  • LSP(Liskov Substitution Principle)
    리스코프 치환 원칙: 상위 타입의 객체를 하위 타입으로 바꾸어도 프로그램은 일관되게 동작해야 된다
  • ISP(Interface Segregation Principle)
    인터페이스 분리 원칙: 클라이언트는 이용하지 않는 메소드에 의존하지 않도록 인터페이스를 분리해야 된다
  • DIP(Dependency Inversion Principle)
    의존 역전 법칙: 클라이언트는 추상화에 의존해야 하며, 구체화에 의존해선 안된다

🚀 PP

🔥 절차지향(Procedural Programming)

반대개념

  • 절자지향 프로그래밍

장점

  • 컴퓨터의 처리구조와 유사해 실행속도가 빠름

단점

  • 실행순서가 정해져있어 코드의 순서가 바뀌면 동일한 결과 보장이 어려움
  • 유지보수와 디버깅이 어려움

대표언어

  • c언어

0개의 댓글