드림오구
article thumbnail

🌊 객체 지향 프로그래밍

 

객체 지향 vs 절차 지향

  객체 지향 (OOP) 절차 지향 (PP)
특징 캡슐화, 상속, 다형성, 추상화 순차적인 처리를 중요시되며, 프로그램 전체가 유기적으로 연결되도록 함
장점 재사용성, 생산성 향상, 자연적인 모델링, 유지보수의 우수성 빠른 실행 속도
단점 느린 개발 속도, 느린 실행 속도, 높은 난이도 유지보수의 어려움, 비효율적
언어 JAVA, Objective-C, Swift, C++, Python, etc. FORTRAN, C

 

자바스크립트는 객체 지향 언어는 아니지만, 객체 지향 패턴으로 작성할 수 있다.

 

객체 지향 프로그래밍 (Object Oriented Programming)

  • 사람이 세계를 보고 이해하는 방법을 흉내 낸 방법론
  • OOP는 프로그램 설계 철학이다.
  • OOP의 모든 것은 객체로 그룹화된다.
  • OOP의 4가지 주요 개념을 통해 재사용성을 얻을 수 있다.

클래스

: 일종의 원형, 객체를 생성하기 위한 아이디어나 청사진, 객체를 만들기 위한 생성자 함수를 포함한다.

 

인스턴스

: 클래스의 사례

 

OPP의 4가지 주요 개념

1. 캡슐화 (Encapsulation)

  • 하나의 객체에 대해 그 객체가 특정한 목적을 위한 필요한 변수나 메소드를 하나로 묶는 것
  • 한 곳에서 변화가 일어나도 다른 곳에 미치는 사이드 이펙트를 최소화 시키는 것을 의미한다.
  • 은닉 : 구현은 숨기고 동작은 노출
  • 느슨한 결합에 유리 : 언제든 구현을 수정할 수 있다.
  • 보호된 변수는 getter, setter 메서드로 간접적으로 접근 가능
  • 코드가 복잡하지 않게 만들고 코드의 재사용성을 높인다.

2. 상속 (Inheritance)

  • 부모 클래스의 특징을 자식 클래스가 물려받는다.
  • 불필요한 코드를 줄여 코드의 재사용성을 높이나, 기능의 확장 관점으로 보아야한다.

3. 추상화 (Abstraction)

  • 객체들이 공통적으로 필요로 하는 속성이나 동작을 하나로 추출해내는 작업.
  • 세부적인 사물들의 공통적인 특징을 파악한 후 하나의 묶음으로 만들어내는 것
  • 인터페이스를 단순화할 수 있다.
  • 코드가 복잡하지 않게 만들고 변화에 대한 영향을 최소화한다.

4. 다형성 (Polymorphism)

  • 똑같은 메서드라도 다양하고 다른 방식으로 구현할 수 있다.
  • 동일한 메서드에 대한 조건문 대신 객체의 특성에 맞게 달리 작성이 가능해진다.

 

💡 참고

객체지향(OPP) VS 절차지향 (PP) 프로그래밍

 

객체지향(OOP) VS 절차지향(PP) 프로그래밍

객체지향, 절차지향 프로그래밍의 정의, 특징, 장단점, 종류에 대해 알아보고 비교해보자 그전에, 🔥 간단 이해 🔥 ✔️ 절차식 방법은 프로그램을 위 그림같이 데이터와 기능(함수)으로 나누

lxxyeon.tistory.com

객체지향 프로그래밍 제대로 이해하기

 

객체지향 프로그래밍 제대로 이해하기

캡슐화를 핵심으로 두고 보는 OOP 의 핵심 포인트

velog.io

 

profile

드림오구

@드림오구