반응형
객체 지향 프로그래밍 (OOP, Object Oriented Programming)
❓
실세계에 존재하고 인지하고 있는 객체(Object)를 소프트웨어의 세계에서 표현하기 위해 객체의 핵심적인 개념 또는 기능만을 추출하는 추상화(abstraction)를 통해 모델링하려는 프로그래밍 패러다임
객체 지향 프로그래밍 4가지 주요 개념
- 객체 지향 프로그래밍 4가지 주요 개념
- Encapsulation(캡슐화)
➡️ 코드가 복잡하기 않게 만들고, 재사용성을 높임- 데이터(속성)과 기능(메소드)을 하나의 객체 안에 넣어서 묶는 것
- Loose Coupling(느슨한 결합)에 유리 : 코드가 상징하는 실제 모습과 닮게 코드를 모아 결합하는 것 (ex, 마우스의 속성(property)으로 정하고 클릭, 이동을 메소드(method)로 정해서 코드만 보고 인스턴스 객체의 기능을 상상할 수 있게 작성)
- hiding(은닉) : 내부 데이터나 구현은 숨기고, 동작은 노출시킴
- Abstraction(추상화)
➡️ 코드가 복잡하기 않게 만들고, 단순화된 사용으로 변화에 대한 영향을 최소화함- 복잡한 내부 구현에 비해 실제 노출되는 인터페이스(interface)를 단순하게 만드는 것
- Ingeritance(상속)
➡️ 불필요한 코드를 줄여 재사용성을 높임- 부모 클래스의 특징을 자식 클래스가 물려받는 것 (="기본 클래스(base class)의 특징을 파생 클래스(derived class)가 상속받는다”)
- Polymorphism(다형성)
➡️ 동일한 메소드에 대해 if/else if와 같은 조건문 대신 객체의 특성에 맞게 달리 작성 가능- 같은 이름을 가진 메소드라도 조금씩 다르게 작동
- Encapsulation(캡슐화)
반응형
'JavaScript' 카테고리의 다른 글
[JavaScript] 프로토타입 체인 (0) | 2023.03.16 |
---|---|
[JavaScript] Prototype (0) | 2023.03.15 |
[JavaScript] 클래스와 인스턴스 (0) | 2023.03.15 |
[JavaScript] 고차 함수 (higher order function) (0) | 2023.03.14 |
[JavaScript] addEventListener, 이벤트 종류 (0) | 2023.03.11 |
댓글