객체 지향 프로그램이란 각 객체의 집합으로 프로그램을 구성하는 방법을 의미합니다. 이는 전통적인 명령형 프로그래밍의 절차 지향적 관점을 벗어나는 것입니다.
객체 지향의 의미와 추상화
객체 지향 프로그래밍은 사람이 실생활의 사물이나 개념을 인식하는 방법을 '추상화(asbstraction)'를 통해 구현합니다. 여기서 추상화란 현실 세계의 특정 객체(예를 들면, 자동차)의 여러 속성 중에서 프로그램에 필요한 속성(예를 들면, 차량 모델, 번호판, 가격 등)을 추출해 내는 것을 의미합니다.
// 차량번호AA6301, 가격 54000불, 테슬라3 차량의 추상화
const car = {
model: tesla3
number: AA6301
price: 54000
};
객체 지향 프로그램에서는 각 객체의 상태 데이터와 동작이 하나의 논리적인 단위로 취급되며, 데이터 상태를 프로퍼티(property), 동작을 메서드(method)라 합니다. 다음은 한 대의 차(Car)에 대한 객체의 구성 예시입니다.
-
Class: 객체의 특성을 정의(포괄적인 의미의 한 대의 차)
-
Instance: Class를 실체화한 특별한 차를 지칭것(테슬라 Model X)
-
Property: 객체의 특성(자동차의 색)
-
Method: 객체의 기능(기어 변속)
-
Constructor: 인스턴스화 되는 시점에 호출되는 메소드
-
Class Method: 특별한 인스턴스를 지칭하지 않는 클라스와 관련된 메소드(예를 들면, 번호판)
객체 지향은 이러한 객체들의 집합을 통해 프로그램을 구성하는 방법입니다. 여기서 각 객체는 독립적인 기능을 수행하면서 동시에 다른 객체와 관계성을 가질 수 있습니다.
객체 지향과 상속
상속(inheritance)은 특정 객체의 프로퍼티 또는 메서드를 다른 객체에서 사용하는 것을 의미합니다. 상속은 객체 지향의 핵심 개념으로, 자바스크립트는 프로토타입을 기반으로 상속을 구현합니다. 생성자 함수는 이러한 상속의 특성을 활용해 인스턴스에서 부모 객체의 프로토타입을 사용할 수 있게 합니다.
참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript https://webclub.tistory.com/155 https://namu.wiki/w/%EA%B0%9D%EC%B2%B4%20%EC%A7%80%ED%96%A5%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
https://jeong-pro.tistory.com/95
https://www.youtube.com/watch?v=vrhIxBWSJ04
'개발 > JavaScript' 카테고리의 다른 글
자바스크립트 프로토타입이란? (0) | 2020.10.30 |
---|---|
자바스크립트 call, apply, bind 설명 (0) | 2020.10.27 |
자바스크립트 this 의 개념과 바인딩 설명 (0) | 2020.10.25 |