객체 지향 JavaScript

seo-B·2021년 8월 23일
0

TIL

목록 보기
3/4

Achievement Goals

  • 클래스와 인스턴스라는 용어를 이해할 수 있다.
    • new 키워드의 사용법을 이해할 수 있다.
    • class 키워드의 사용법을 이해할 수 있다.
    • 현실 세계의 모델을 바탕으로 클래스의 메소드와 속성을 디자인할 수 있다.
  • 객체 지향 프로그래밍 특징을 이해할 수 있다.
    • 캡슐화
    • 상속
    • 추상화
    • 다형성
  • JavaScript에서 객체 지향 프로그래밍을 구현할 수 있다.
    • Prototype이 무엇인지 이해할 수 있다
  • 객체 지향 프로그래밍의 상속(Inheritance)의 개념을 이해하고 코드로 작성할 수 있다.
    • 상속관계를 가진 현실 세계의 모델을 코드로 작성할 수 있다.
    • 클래스 상속의 원리를 이해할 수 있다.
    • Prototype chain을 이해하고 설명할 수 있다. (proto)

객체

  • 객체 지향 프로그래밍(OOP, Object-oriented programming)은 하나의 모델이 되는 청사진(blueprint)을 만들고(=> class), 그 청사진을 바탕으로 한 객체를 만드는(=> instance object) 프로그래밍 패턴이다. 절차 지향 프로그래밍과는 다르게 데이터와 기능을 한 곳에 묶어서 처리한다.

  • 절차지향객체지향
    특성컴퓨터의 처리구조와 유사사람의 사고방식에 가까움
    메모리 사용적음많음
    처리 속도빠름느림
    재활용성낮음높음
    코드 이해어려움쉬움
    디버깅어려움쉬움

    ex) 메모리 관리가 중요하다면 -> 메모리를 적게 쓰는 절차지향
    ex) 사람들과의 협업이 필요하다면 -> 코드 이해가 쉬운 객체지향

  • 속성과 메소드가 하나의 '객체'라는 개념에 포함되며 이는 자바스크립트 내장 타입인 object 와는 다르게 클래스(Class) 라는 이름으로 불린다.

매소드 호출

  • 매소드 호출은 객체.메소드() 과 같이 객체 내에 메소드를 호출하는 방법을 의미하며 매소드 호출 방식은 화살표 함수를 쓰지 않는다.

클로저를 이용해 매번 새로운 객체 생성

  • Singletion 패턴은 단 하나의 객체만 만들 수 있다. 똑같은 기능을 하는 카운터가 여러개 필요하다면 코드를 그대로 복사/붙여넣기는 재사용성이 떨어지므로 클로저 모듈 패턴을 이용한다.

객체 지향 프로그래밍(oop)의 특성

  1. 캡슐화 : 데이터(속성)와 기능(메소드)을 하나의 객체 안에 넣어서 묶는 것이다.
  2. 추상화 : 내부 구현은 복잡하지만 실제로 노출되는 부분은 단순하다.
  3. 다향성 : 똑같은 메소드라 하더라도, 다른 방식으로 구현될 수 있다.
  4. 상속 : 부모 클래스의 특징을 자식 클래스가 물려받는 것이다.
profile
como una abeja! 오늘보다 one more thing!

0개의 댓글