길잃은곰
길을 잃어 떠도는 곰
길잃은곰
전체 방문자
오늘
어제
  • 분류 전체보기 (87)
    • Algorithm (6)
    • HTML, CSS (9)
    • Frontend (1)
    • SW공학 (1)
    • WEB (4)
    • Javascript (29)
    • Typescript (0)
    • React (8)
    • Computer Science (11)
    • NEWS (0)
    • TIL(WIL) (4)
    • ETC (5)

블로그 메뉴

  • ✨깃허브
  • 홈
  • 태그
  • 방명록

인기 글

태그

  • VH
  • ES6
  • root-element
  • Pixel
  • 자바스크립트
  • 코테
  • REM
  • 연탄
  • %
  • 코드트리
  • EM
  • ES7
  • js2016
  • Es5
  • VW
  • javascript2016
  • ES8
  • element
  • JavaScript
  • PX
hELLO · Designed By 정상우.
길잃은곰

길을 잃어 떠도는 곰

Javascript

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

2023. 1. 18. 09:34

객체지향이란?

  • 프로그래밍 패러다임의 하나로, 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다.
  • 자바스크립트는 class 문이 포함되지 않은, prototype 기반의 객체지향 프로그래밍 언어이다.

객체지향 프로그래밍의 4가지 특징 (OOP의 4대 특징)

  1. 캡슐화 (Encapsulation)
    • 객체의 속성과 기능을 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉하는 것
    • 캡슐 알약에 비유할 수 있다. 알약의 내용물을 보려면 알약을 깨야 한다. 즉, 알약을 깨지 않으면 알약의 내용물을 알 수 없다. 이처럼 캡슐화는 객체의 속성과 기능을 하나로 묶고, 그 중 일부를 외부에 감추어 은닉하는 것이다.
  2. 추상화 (Abstraction)
    • 객체의 공통된 속성과 행위를 묶어 이름을 붙이고, 이를 통해 객체를 식별하고 분류하는 것
    • 예를 들면, 토끼, 코끼리, 호랑이 등은 모두 동물이라는 객체의 일종이다. 이 동물들은 모두 먹이를 먹고, 숨을 쉰다. 이처럼 객체들의 공통된 속성과 행위를 묶어 이름을 붙이고, 이를 통해 객체를 식별하고 분류하는 것이 추상화이다.
  3. 상속 (Inheritance)
    • 부모 객체의 속성과 기능을 그대로 물려받아 새로운 객체를 만드는 것
    • 예를 들면, 동물이라는 부모 객체가 가진 먹기, 자기, 숨쉬기 등의 기능을 그대로 물려받아 새로운 객체인 토끼를 만드는 것이다. 이처럼 부모 객체의 속성과 기능을 그대로 물려받아 새로운 객체를 만드는 것이 상속이다.
  4. 다형성 (Polymorphism)
    • 같은 객체임에도 상황에 따라 다르게 동작할 수 있는것을 의미합니다.
    • 예를 들어, 동물이라는 객체가 있을 때, 동물이라는 객체는 먹이를 먹는다는 기능을 가지고 있습니다. 이때, 동물이라는 객체가 토끼라는 객체로 변하면 토끼는 풀을 먹는다는 기능을 가지게 됩니다. 이처럼 같은 객체임에도 상황에 따라 다르게 동작할 수 있는 것을 다형성이라고 합니다.

객체지향 프로그래밍의 5가지 원칙 (SOLID)

  1. SRP (Single Responsibility Principle) 단일 책임 원칙
  • 하나의 클래스는 하나의 책임만 가져야 한다.
  1. OCP (Open Closed Principle) 개방 폐쇄 원칙
  • 확장에는 열려있고, 변경에는 닫혀있어야 한다.
  1. LSP (Liskov Substitution Principle) 리스코프 치환 원칙
  • 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있어야 한다.
  1. ISP (Interface Segregation Principle) 인터페이스 분리 원칙
  • 인터페이스를 클라이언트에 특화되도록 분리해야 한다.
  1. DIP (Dependency Inversion Principle) 의존 역전 원칙
  • 의존 관계는 추상화에 의존해야 한다.

Reference

  • 객체지향 프로그래밍 4가지 특성과 5가지 원칙
  • Javascript 객체지향 프로그래밍
저작자표시 비영리 동일조건 (새창열림)

'Javascript' 카테고리의 다른 글

Hoisting (호이스팅) 이란?  (0) 2023.03.28
[ Redux ] Redux 란 무엇인가?  (0) 2023.01.19
[ JavaScript ] 크로스 브라우징  (0) 2023.01.18
[ JavaScript ] Bundle 사이즈 줄이기  (0) 2023.01.18
SSR, CSR, SSG  (0) 2023.01.17
    'Javascript' 카테고리의 다른 글
    • Hoisting (호이스팅) 이란?
    • [ Redux ] Redux 란 무엇인가?
    • [ JavaScript ] 크로스 브라우징
    • [ JavaScript ] Bundle 사이즈 줄이기
    길잃은곰
    길잃은곰

    티스토리툴바