JS 객체 지향 프로그래밍

DaeHOON·2022년 11월 18일
0

<객체 지향 프로그래밍>

  • "클래스"라고 부르는 데이터 모델의 청사진을 사용해 코드 작성
  • 현대의 언어들은 대부분 객체 지향의 특징을 갖고 있음
    (대표적으로 Java, C++, C# 등)
  • JavaScript: 객체 지향으로 작성 가능

OOP

  • OOP는 프로그램 설계 철학이다.
  • OOP의 모든 것은 "객체"로 그룹화된다.
  • OOP의 4가지 주요 개념을 통해 재사용성을 얻을 수 있다.

OOP Basic Concepts

  • Encapsulation (캡슐화)

  • Inheritance (상속)

  • Abstraction (추상화)

  • Polymorphism (다형성)

1. 캡슐화 Encapsulation

  • 데이터와 기능을 하나의 단위로 묶는 것
  • 은닉(hiding): 구현은 숨기고, 동작은 노출시킴
  • 느슨한 결합(Loose Coupling)에 유리: 언제든 구현을 수정할 수 있음

2. 추상화 Abstraction

  • 추상화는 내부 구현은 아주 복잡한데, 실제로 노출되는 부분은 단순하게 만든다는 개념이다.
  • 클래스를 사용하는 사람이 필요하지 않은 메서드 등을 노출시키지 않고, 단순한 이름으로 정의하는 것에 포커스가 맞춰져 있다.

3. 상속 Inheritance

  • 상속은 부모 클래스의 특징을 자식 클래스가 물려받는 것이다.

4. 다형성 Polymorphism

메서드가 조금씩 다르게 작동하는 것

정리

  1. 캡슐화는 코드가 복잡하지 않게 만들고, 재사용성을 높인다.

  2. 추상화는 마찬가지로 코드가 복잡하지 않게 만들고, 단순화된 사용으로 변화에 대한 영향을 최소화한다.

  3. 상속 역시 불필요한 코드를 줄여 재사용성을 높인다.

  4. 다형성으로 인해 동일한 메서드에 대해 if/else if와 같은 조건문 대신 객체의 특성에 맞게 달리 작성하는 것이 가능해진다.

profile
프론트엔드 개발 velog

0개의 댓글