JavaScript는 엄밀히 말해 객체 지향 언어는 아니지만 객체 지향 패턴을 작성 할 수가 있습니다.
OOP는 프로그래밍 방법론 중 하나입니다.
프로그래밍 할 때 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아닌 객체 단위로 나누고 이를 서로 상호작용할 수 있게 만들어 역할을 수행 할 수 있게 만듭니다.
OOP의 4가지 주요 개념을 통해 재사용성을 얻을 수 있습니다.
캡슐화는 데이터와 기능을 하나의 단위로 묶는 개념입니다.
캡슐화는 은닉화의 특성도 가지고 있는데, 내부 데이터나 구현이 외부로 노출되지 않도록 만드는 것입니다.
기능을 느슨하게 결합시킴으로서 코드 실행 순서에 따라 절차적으로 코드를 작성하는 것이 아니라, 코드가 상징하는 실제 모습과 닮게 코드를 모아 결합시킵니다.
추상화는 복잡한 내부 구현을 단순하게 노출시키는 개념입니다.
캡슐화가 코드나 데이터의 은닉에 포커스가 맞춰져있다면, 추상화는 클래스를 사용하는 사람이 필요하지 않은 메서드 등을 노출시키지 않고, 단순한 이름으로 정의하는 것에 포커스가 맞춰져 있습니다.
상속은 부모 클래스의 특징을 자식 클래스가 물려받는 것입니다.
객체 역시 똑같은 메서드라 하더라도, 다른 방식으로 구현될 수 있다는 특징입니다.
주요 개념 | 장점 |
---|---|
캡슐화 | 코드가 복잡하지 않게 만들고, 재사용성을 높입니다. |
추상화 | 코드가 복잡하지 않게 만들고, 단순화된 사용으로 변화에 대한 영향을 최소화합니다. |
상속 | 불필요한 코드를 줄여 재사용성을 높입니다. |
다형성 | 동일한 메서드에 대해 if/else if와 같은 조건문 대신 객체의 특성에 맞게 달리 작성하는 것이 가능해집니다. |