[Javascript] 객체 지향 프로그래밍 (OOP)

Rose Jang·2022년 11월 18일
0

Section 2

목록 보기
2/4
post-thumbnail

객체 지향 프로그래밍 (OOP)

  • 우리가 주변의 실세계에서 사물을 인지하는 방식을 프로그래밍에 접목하려는 사상을 의미한다.
  • 함수들의 집합 혹은 단순한 컴퓨터의 명령어들의 목록이라는 전통적인 절차지향 프로그래밍과는 다른, 관계성있는 객체들의 집합이라는 관점으로 접근하는 소프트웨어 디자인으로 볼 수 있다.
  • 보다 유연하고 유지보수하기 쉬우며 확장성 측면에서서도 유리한 프로그래밍을 하도록 의도되었다.

OOP의 네 가지 주요 개념을 통해 재사용성을 얻을 수 있다.

1. 캡슐화

  • 데이터와 기능을 하나의 단위로 묶는 것
  • 은닉(hiding) : 구현은 숨기고, 동작은 노출시킴
  • 느슨한 결합(Loose Coupling)에 유리 : 언제든 구현을 수정할 수 있음
    - 느슨한 결합 : 코드 실행 순서에 따라 절차적으로 코드를 작성하는 것이 아니라, 코드가 상징하는 실제 모습과 닮게 코드를 모아 결합하는 것

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

2. 추상화

  • 내부 구현은 아주 복잡한데, 실제로 노출되는 부분은 단순하게 만든다는 개념

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

3. 상속

  • 부모 클래스의 특징을 자식 클래스가 물려받는 것

불필요한 코드를 줄여 재사용성을 높인다.

4. 다형성

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

0개의 댓글