ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2022.09.05] 객체지향 프로그래밍이란
    TIL 2022. 9. 5. 22:39

     

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

    객체지향 프로그래밍은 프로그램을 명령어 또는 함수의 목록으로 보는
    전통적인 명령형 프로그래밍의 절차 지향적 관점에서 벗어나

    여러 개의 독립적 단위, 즉 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임을 말한다.

     

    객체 지향 프로그래밍의 장, 단점

    장점

    • 코드 재사용이 용이하다.
      남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있다.
    • 유지보수가 쉽다.
      절차 지향 프로그래밍에서는 코드를 수정해야 할 때 일일이 찾아 수정해야 하는 반면
      객체 지향 프로그래밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수 혹은 메서드로 존재하기 때문에
      해당 부분만 수정하면 된다.

    • 대형 프로젝트에 적합하다.
      클래스 단위로 모듈화 시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러 명, 여러 회사에서
      프로젝트를 개발할 때 업무 분담하기 쉽다.

    단점

    • 처리 속도가 상대적으로 느리다.
    • 객체가 많으면 용량이 커질 수 있다.
    • 설계 시 많은 시간과 노력이 필요하다.

     

    객체 지향 프로그래밍의 특징

    1. 추상화
      객체를 구성할 수 있는 다양한 속성(프로퍼티) 중에서 
      프로그램에 필요한 속성만 간추려 내어 표현하는 것을 추상화라 한다.

    2. 캡슐화
      - 데이터 구조와 데이터를 다루는 방법들을 목적에 따라 결합시켜 묶는 것.
        다시 말하자면 변수와 함수를 하나로 묶는 것을 말한다.
      - 또한 데이터를 절대로 외부에서 직접 접근을 하면 안 되고
        오로지 함수를 통해서만 접근해야 하는데 이를 가능하게 해주는 것이 바로 캡슐화이다.

    3. 상속
      상위 개념의 특징을 하위 개념이 물려받는 것

    4. 다형성
      부모 클래스에서 물려받은 가상 함수를 지식 클래스 내에서 오버 라이딩되어 사용되는 것

     

    자바스크립트는 객체지향 프로그래밍일까?

    자바스크립트는 객체지향 프로그래밍뿐만 아니라
    명령형, 함수형 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어이다.

    클래스 기반 객체지향 프로그래밍 언어와 달리 프로토타입 기반의 객체지향 프로그래밍이다.

     

     

    프로토타입이란?

    프로토타입은 상속을 구현하기 위해 사용된다.

    쉬운 예시로 붕어빵을 만들기 위한 붕어빵 틀이라고 생각하면

    기본적인 틀(프로토타입)에 우리가 원하는 앙금(인스턴스를 만들 때 생성자 함수에 들어가는 인수)을 넣어

    기존에 만들어 놓은 프로퍼티에 바인딩하여 인스턴스(붕어빵)를 반환한다.

     

    자바스크립트에서 기본적인 데이터 타입을 제외한 모든 것은 객체이다.

    객체가 만들어지기 위해서는 자신이 만드는 데 사용된 원형인 프로토타입 객체를 이용하여 객체를 만든다.

     

    이때 만들어진 객체 안에 __proto__속성이 자신을 만들어낸 원형을 의미하는 프로토타입 객체를

    참조하는 숨겨진 링크가 있다.

    이 숨겨진 링크를 프로토타입이라고 한다.

Designed by Tistory.