OOP Basic Concepts
Encapsulation (캡슐화)
데이터와 기능을 하나의 단위로 묶는 것.
은닉 : 구현은 숨기고, 동작은 노출시킴(Typescript 에서는 private 키워드가 있으나 JS 에서는 없음)
느슨한 결합에 유리 : 언제든 구현을 수정할 수 있음
Inheritance (상속)
상속은 부모 클래스(기본 클래스(base class))의 특징을 자식 클래스(파생 클래스(derived class))가 물려받는 것.
Abstraction (추상화)
실제로 노출되는 인터페이스 단순화.
캡슐화가 코드나 데이터의 은닉에 포커스가 맞춰져있다면, 추상화는 클래스를 사용하는 사람이 필요하지 않은 메서드 등을 노출시키지 않고, 단순한 이름으로 정의하는 것에 포커스가 맞춰져 있음.
Polymorphism (다형성)
같은 이름을 가진 메서드라도 조금씩 다르게 작동하는 것
OOP의 주요 개념에 대한 장점