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

Hayden·2022년 9월 21일

Concept

목록 보기
2/3

객체 지향 프로그래밍(OOP)의 주요 개념

1. Encapsulation (캡슐화)

캡슐화는 데이터(속성)와 기능(메서드)을 따로 정의하는 것이 아니라, 하나의 객체 안에 넣어서 묶는 것이다. 캡슐화는 은닉화의 특징도 포함한다. 은닉화는 내부 데이터나 내부 구현이 외부로 노출되지 않도록 만드는 것이다. 따라서, 디테일한 구현이나 데이터는 숨기고, 객체 외부에서 필요한 동작(메서드)만 노출시켜야 한다.

2. Inheritance (상속)

상속은 부모 클래스의 특징을 자식 클래스가 물려(상속)받는 것이다.
기본 클래스(base class)의 특징을 파생 클래스(derived class)가 받는다고 표현하는 것이 더 정확하다.
상속을 통해 효율적인 코드 작성이 가능하다.

3. Abstraction (추상화)

추상화는 간단하게 말해서 복잡한 것을 간단하게 보여주는 것이다. 실제 구현은 복잡한 반면 사용자가 볼 수 있는 부분은 단순하기 때문에 너무 많은 기능들이 노출되지 않아 예기치 못한 사용상의 변화가 일어나지 않도록 만들 수 있다.
클래스를 정의할 때, 메서드와 속성만 정의한 것을 인터페이스라고 부르는데 이것이 추상화의 본질이다.

4. Polymorphism (다형성)

Polymorphism에서 poly는 "많은", 그리고 morph는 "형태"라는 뜻으로 "다양한 형태"를 가질 수 있다고 해석할 수 있다. 동일한 메서드에 대해 조건문 대신 객체에 특성에 맞게 달리 작성할 수 있게 해준다.

profile
개발 블로그

0개의 댓글