36일차 - 객체지향 JavaScript

김민찬·2021년 6월 14일
0

취업으로의 여정

목록 보기
37/196

오늘의 공부 주제는 객체지향 JS이다

객체지향을 공부하면서 느낀점은 객체 지향은 와플기계같다고 생각했다. 딸기 와플, 바닐라 와플 등등 다양한 와플을 만들때, 결국 근본은 와플이니 하나의 정해진 틀(class)은 만들어서 그걸 바탕으로 다양한 종류의 와플(instance object)를 만드는 것이다.

객체지향 프로그래밍(OOP, Object-oriented programming)은 4가지 중요한 특징이 있다.

  • 캡슐화
  • 추상화
  • 상속
  • 다형성

이렇게 4가지이다.

캡슐화는 우리가 아는 약의 캡슐을 생각하면 이해가 편하다.

데이터와 기능을 하나의 단위로 묶는것 (약을 캡슐 하나로 만드는 것)
은닉은 구현은 숨기고, 동작은 노출시키는 것 (안에 있는 것은 정확히 몰라도, 약의 효과는 아는 것)
등등으로 실제 캡슐과 비슷하다.

추상화는 기계식 시계를 생각하면 된다.

기계식 시계는 상상 이상으로 복잡하게 만들어져 있다. 하지만 우리가 보는 시계의 겉면은 시, 분, 초로 아주 단순하고 보면 바로 현재 시간을 알 수 있다.

캡슐화 vs 추상화

캡슐화와 추상화가 헷깔릴 수 있는데, 캡슐화는 코드나 데이터의 은닉을 추상화는 클래스를 사용하는 사람에 대한 단순함을 추구한다.

상속도 현실의 상속을 생각하면 된다.

부모님의 돈이 자녀에게 가면서 그대로 받는 것 처럼 생각하면 되는데, 더 정확히 말해보자면
"기본 클래스(base class)의 특징을 파생 클래스(derive class)가 상속받는 것이다."

다형성은 인종의 다양성을 생각하면 된다.

다양한 인종들이 지구에 살고 있지만, 본질은 같은 사람이라는 것 이다.

profile
두려움 없이

0개의 댓글