객체 지향 프로그래밍이란?

2020. 10. 29. 13:30·개발/JavaScript

객체 지향 프로그램이란 각 객체의 집합으로 프로그램을 구성하는 방법을 의미합니다. 이는 전통적인 명령형 프로그래밍의 절차 지향적 관점을 벗어나는 것입니다.

 

객체 지향의 의미와 추상화

객체 지향 프로그래밍은 사람이 실생활의 사물이나 개념을 인식하는 방법을 '추상화(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
'개발/JavaScript' 카테고리의 다른 글
  • 자바스크립트 타이머 setTimeout / setInterval 설명
  • 자바스크립트 프로토타입이란?
  • 자바스크립트 call, apply, bind 설명
  • 자바스크립트 this 의 개념과 바인딩 설명
휘Hwi
휘Hwi
여행, 사진, 개발, 책 이야기를 기록하는 여행자 휘의 블로그 𓂍
  • 휘Hwi
    휘: 끝나지 않은 이야기
    휘Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 기록
        • 일상 에세이
        • 인사이트
        • 투자와 재테크
        • 코인 이야기
        • 아카이빙
        • 집무실 레터
        • 사랑에 대하여
        • 번역 이야기(完)
        • 프리랜서 일지(完)
      • 여행
        • 🌎 세계 여행기 S1 (完)
        • 🌊 삼삼한 여행기 (完)
        • 🚶 온더로드
        • 🇯🇵 일본
        • 🏝️ 발리
        • 🇻🇳 베트남
        • 🇱🇰 스리랑카
        • 🇮🇳 인도
        • 🇹🇭 태국
        • 🇸🇬 싱가포르
        • 🇦🇺 호주
        • 🇭🇰 홍콩
        • 🇰🇷 한국
        • 🍚 여행자의 한 끼
        • ℹ️ 여행 정보
      • 사진
        • 사진가
        • 사진 이론과 생각
        • 사진 관련 정보
      • 영상
        • 파이널컷 모션 공부
        • 고프로 GoPro
        • 영상 관련 정보
      • 책
        • 책 읽고 쓰기
      • 개발 N
        • 티스토리
        • Internet
        • HTML
        • CSS
        • JavaScript
        • Typescript
        • React
        • Node.js
        • Express
        • NestJS
        • Python
        • Django
        • MySQL
        • MongoDB
        • AWS
        • Deployment
        • Terminal
        • Git N
        • Glossaries
        • Articles
        • Projects
        • TIL;
      • 미분류
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
휘Hwi
객체 지향 프로그래밍이란?
상단으로

티스토리툴바