객체 지향 프로그래밍

Joon·2022년 7월 22일
0

Javascript

목록 보기
4/4

개요

객체 지향 프로그래밍에 대해 알아보자.


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

  • 객체 지향 프로그래밍 이란 독립적인 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임이다.

  • 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.


👉🏻 자바스크립트가 객체 지향 프로그래밍을 어떻게 구현 하였을까?


👉🏻 특징

1. 추상화

  • 불필요한 정보는 숨기고 중요한 정보만 표현함으로써 프로그램을 간단히 만드는 것이다.
    즉, 공통적인 특징(기능,속성)을 도출하는 것이다.
  • 객체지향적 관점에서 클래스를 정의하는 것을 추상화 라고 할 수 있다.

2. 캡슐화

  • 데이터와 기능을 하나의 단위로 묶는 것
  • 구현은 숨기고, 동작은 노출시킨다.(은닉화)
  • 코드가 묶여있어서 수정에 용이하다.

3. 상속성

  • 클래스가 가진 특징(Property,Method)을 다른 클래스가 그대로 물려받는것,
    기본 클래스에 파생 클래스가 상속받아 공통된 특징을 갖게되고 추가적으로 파생 클래스에 특징을 추가해
    새로운 특징의 클래스를 만들 수 있다.

  • 상속이 있기 때문에 코드를 재활용 할 수 있고 그렇기 때문에 유지보수와 생산성이 증가한다.

4. 다향성

  • 하나의 메소드나 클래스가 있을 때 이것들이 다향한 방법으로 동작하는 것을 의미

  • 오버라이딩(Overriding), 오버로딩(Overloading)

    오버라이딩(Overriding) - 부모클래스의 메소드와 같은 이름을 사용하며 매개변수도 같되 내부 소스를 재정의하는 것
    
     오버로딩(Overloading) - 같은 이름의 함수를 여러 개 정의한 후 매개변수를 다르게 하여 같은 이름을 경우에 따라 호출하여 사용하는 것

5. 동적바인딩

  • 실행 시간 중 일어나거나 실행 과정에서 변경될 수 있는 바인딩이다.

  • 동적바인딩은 런타임에 호출될 함수가 결정된다.

  • 프로그래밍의 유연성을 높여주며 파생 클래스에서 재정의한 함수의 호출을 보장된다.


😃 장점

소프트웨어의 생산성 향상

  • 신뢰성 있는 소프트웨어를 손쉽게 작성할 수 있다. (개발자가 만든 데이터를 사용하기 때문에 신뢰할 수 있다.)
  • 코드를 재사용하기 쉽다 (상속, 캡슐화, 다형성으로 인해 재사용할 수 있다.)
  • 업그레이드가 쉽다.
    -디버깅이 쉽다.

실세계에 대한 쉬운 모델링

  • 실세계에 대한 모델링을 좀 더 쉽게 해준다. (모든 것을 객체들의 상호작용으로 생각)

보안성 향상

  • 보안성이 높다 (캡슐화, 데이터 은닉, 다형성으로 인해 필요한 정보를 재정의하거나 getter, setter를 이용하기 때문에 보안성이 높다.)

😡 단점

느린 실행속도

  • 절차지향 프로그래밍에 비해 느린 실행 속도 ( 소규모 프로젝트에는 절차지향 프로그래밍이 적합하다 )
  • 필요한 메모리양의 증가

0개의 댓글