객체지향 프로그래밍(OOP)의 탄생배경

  1. 초기의 프로그래밍 방식은 순차적/절차적 프로그래밍

    image.png

  2. 절차적 프로그래밍(PP)의 문제점

객체지향 프로그래밍(OOP)이란 ?

image.png

절차적 vs 객체지향

절차적 프로그래밍 (PP) 객체지향 프로그래밍 (OOP)
접근 방식 Top-down Bottom-up
구현 관점 전체 기능 고려 → 각 기능 구현 객체 설계 → 객체 상호 작용 설계
구성 요소 함수 객체
장점 오버헤드를 줄여 빠르게 동작 코드의 중복을 줄이고 재활용성이 높음
구조 파악 및 디버깅이 쉬움
단점 구조가 복잡, 코드 중복, 순서를 지켜야 해서 재활용성이 떨어짐 설계에 많은 시간이 요구됨
객체가 많아지면 오버헤드 발생
용도 한정된 자원/특수 목적 (보안 ,속도) 대규모 협업 프로젝트(생산성 중시)

프로그래밍 방식의 차이이지 서로 반대 개념이 아니 각각의 장단점를 인식하고 상황에 맞는 방법을 사용 (우월한것 X)


객체(Object)

사전적 의미 : 실세계에 존재하거나 생각할 수 있는 대상

프로그래밍 관점 : 어떠한 상태 값과 행위를 가지고 있는 데이터

image.png

$$ \downarrow $$

image.png