본문 바로가기
JavaScript

객체 지향 프로그래밍

by lvd-hy 2023. 3. 15.
반응형

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

실세계에 존재하고 인지하고 있는 객체(Object)를 소프트웨어의 세계에서 표현하기 위해 객체의 핵심적인 개념 또는 기능만을 추출하는 추상화(abstraction)를 통해 모델링하려는 프로그래밍 패러다임

객체 지향 프로그래밍 4가지 주요 개념

  • 객체 지향 프로그래밍 4가지 주요 개념
    • Encapsulation(캡슐화)
      ➡️ 코드가 복잡하기 않게 만들고, 재사용성을 높임
      • 데이터(속성)과 기능(메소드)을 하나의 객체 안에 넣어서 묶는 것
      • Loose Coupling(느슨한 결합)에 유리 : 코드가 상징하는 실제 모습과 닮게 코드를 모아 결합하는 것 (ex, 마우스의 속성(property)으로 정하고 클릭, 이동을 메소드(method)로 정해서 코드만 보고 인스턴스 객체의 기능을 상상할 수 있게 작성)
      • hiding(은닉) : 내부 데이터나 구현은 숨기고, 동작은 노출시킴
    • Abstraction(추상화)
      ➡️ 코드가 복잡하기 않게 만들고, 단순화된 사용으로 변화에 대한 영향을 최소화함
      • 복잡한 내부 구현에 비해 실제 노출되는 인터페이스(interface)를 단순하게 만드는 것
    • Ingeritance(상속)
      ➡️ 불필요한 코드를 줄여 재사용성을 높임
      • 부모 클래스의 특징을 자식 클래스가 물려받는 것 (="기본 클래스(base class)의 특징을 파생 클래스(derived class)가 상속받는다”)
    • Polymorphism(다형성)
      ➡️ 동일한 메소드에 대해 if/else if와 같은 조건문 대신 객체의 특성에 맞게 달리 작성 가능
      • 같은 이름을 가진 메소드라도 조금씩 다르게 작동
반응형

댓글