heesue 2021. 4. 9. 23:54

1. OOP (Object Oriented Programming)

· OOP는 객체로 그룹화된다.

· 4가지 주요 개념(캡슐화, 상속, 추상화, 다형성)을 통해 재사용성을 얻을 수 있다.

· Class : 객체, 즉 Instance를 생성하기 위한 청사진, 아이디어

· Instance : Class의 사례 => new 키워드를 통해 클래스의 인스턴스를 만들 수 있다.

· Property & Method : Instance의 속성 및 기능

// ES5 함수로 정의
function Car(brand, name, color) {
  // 인스턴스가 만들어질 때 실행되는 코드
}

// ES6 class라는 키워드로 정의
class Car {
  constructor(brand, name, color) {
    // 인스턴스가 만들어질 때 실행되는 코드
  }
}

ex) Animal Class에서 파생된 강아지, 고양이, 소 등이 객체가 되며 Class의 Instance이다. 이때, Class는 Instance를 만들기 위한 생성자 함수를 포함한다. 강아지, 고양이, 소는 생김새도 다르고 색도 다른데 이를 각각 고유한 속성을 갖고 있다고 말한다. 메서드는 공통적으로 소리로 생각해보면 왈왈, 냐옹, 음메 등 모두 다른 메서드를 갖는다는 것을 알 수 있다.

 


2. 캡슐화 (Encapsulation)

· 데이터와 기능을 하나의 단위로 묶는 것

· 은닉 : 구현은 숨기고, 동작은 노출시키는 것

· 장점 : 느슨한 결합 -> 언제든 구현 수정 가능


3. 추상화 (Abstraction)

· 내부 구현은 복잡하지만, 실제 노출되는 부분은 단순해 보이게 하는 것 (인터페이스 단순화)

· 장점 : 코드 단순화 -> 변화에 대한 영향 최소화


4. 상속 (Inheritance)

· 부모(기본) 클래스의 특징을 자식(파생) 클래스가 물려받는 것

· 장점 : 불필요한 코드 X -> 재사용성 ↑

 


5. 다형성 (Polymorphism)

· 객체의 메서드가 똑같더라도 다른 방식으로 구현되는 것

· 장점 : 동일한 메서드에 대해 조건문 대신 객체의 특성에 맞게 작성 가능