ABOUT ME

Today
Yesterday
Total
  • [CS / JavaScript] OOP
    CS/JavaScript 2022. 5. 16. 09:20

    OOP란?

    OOP(object-oriented programming)는 객체 지향 프로그래밍이다.  객체의 관점에서 프로그래밍을 하는 것이다.

    C언어는 절자 지향 프로그밍이라고 하는데, 절차 지향 프로그래밍은 프로세스가 함수 단위 순서대로 진행되는 것을 말한다.

     

    반면에 OOP는 객체들의 유기적인 관계를 통해 프로세스가 진행된다. 어플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍 하는 것을 말한다.

     

    OOP의 특징

    1. 추상화(Abstraction)

    • 복잡한 내부 구현을 숨기고, 노출되는 부분(interface)은 단순하게 만든다는 개념이다.
    • 공통적인 속성이나 기능을 묶어서 이름을 붙이는 것이다.
    • 인터페이스: 메소드와 속성만을 정의한 것. 추상화의 본질
    • 복잡성을 줄이고, 변화에 대한 영향을 줄인다.

     

    2. 캡슐화(Encapsulation)

    • 데이터와 기능을 하나의 단위로 묶는 것을 말한다.
    • 데이터를 은닉(Hiding)을 할 수 있다.
      - 은닉(Hiding) : 내부 데이터나 내부 구현이 외부로 노출되지 않도록 만드는 것이다.
    • 하나의 단위로 묶음으로써 (클래스 간의 독립적인 디자인을 함으로써) 약한 결합력(Weak Coupling)을 가진다.
    • 복잡성 줄이고 재사용성을 높인다.

    3. 다형성 (Polymorphism)

    • Polymorphism이라는 단어의 poly는 "많은", 그리고 morph는 "형태"라는 뜻을 가지고 있습니다. 즉, 다형성이란 다양한 형태를 가질 수 있다는 것을 뜻한다.
    • switch 문 대신 객체의 특성에 맞게 달리 작성하는 것이 가능하다.

    4. 상속 (Inheritance)

    • 기본 클래스(base class)의 특징을 파생 클래스(derive class)가 상속 받는 것이다.
    • 부모 클래스의 속성을 자식 클래가 물려 받는 것이라고 할 수 있다.
    • 반복되는 코드를 없도록 한다.

    'CS > JavaScript' 카테고리의 다른 글

    [CS / JavaScript] 프론트엔드 면접 정리  (0) 2022.05.17
Designed by Tistory.