TIL-211108

EBinY·2021년 11월 8일
0

TIL - Today I Learned

목록 보기
1/54
  • 클래스와 인스턴스라는 용어를 이해할 수 있다.
    • 용어 설명
      • class(일종의 prototype(원형 객체, original form), 객체 생성을 위한 청사진)
      • instance(instance object, 클래스의 사례)
      • constructor(생성자 함수, 인스턴스가 초기화될 때 실행)
      • this(함수가 실행될 때, 해당 scope마다 생성되는 고유한 실행 context(execution context))
    • class 키워드의 사용법을 이해할 수 있다.
      • blueprint, 일종의 설계도
      • 클래스는 대문자, 그리고 일반명사로 만든다
      • 클래스에 속성과 메소드를 정의, 인스턴트에서 사용한다
      • class Counter {
        constructor() {this.value = 0}
        increase() {this.value++}
        decrease() {this.value--}
        printValue() {return this.value}
        }
    • new 키워드의 사용법을 이해할 수 있다.
      • 설계도를 바탕으로 객체를 만든, instance object
      • let counter1 = new Counter()
    • 현실 세계의 모델을 바탕으로 클래스의 메소드와 속성을 디자인할 수 있다.
      • class Car {
        constructor(brand, name, kind) {...}
        refuel() {...}
        drive() {...}
        }
      • let sorento = new Car('kia', 'sorento', 'suv')
      • Car {
        brand: 'kia',
        name: 'sorento',
        kind: 'suv',
        proto: {
        constructor: ƒ Car(),
        refuel: ƒ refuel(),
        drive: ƒ drive()
        }
        }
      • sorento.proto === Car.prototype
  • 객체 지향 프로그래밍 특징을 이해할 수 있다.
    • 절차적 언어: 순차적 명령의 조합, 초기 프로그래밍 언어들(C, Fortran)
    • 객체 지향 언어: class라는 데이터 모델의 청사진을 사용해 코드 작성, 현대의 언어들은 대부분 객체 지향의 특징을 가짐(Java, c++, c#)
    • JavaScript는 엄밀히는 객체 지향 언어 X, but 객체 지향 패턴으로 작성 가능
    • OOP: Object Oriented Programming, 프로그램 설계 철학 중 하나
      • 객체로 그룹화, 만들고 메모리상에서 반환될 때까지 유지됨
      • 데이터와 기능이 객체 내에 함께 있음,
    • 캡슐화(Encapsulation): 코드가 복잡하지 않게 만들고, 재사용성을 높인다.
      • 데이터와 기능을 하나로 묶음, 은닉(구현은 숨김, 동작은 노출), 느슨한 결합(수정 가능)
    • 상속(Inheritance): 불필요한 코드를 줄여 재사용성을 높인다.
      • 부모 클래스의 특징을 자식 클래스가 물려받는 것을 말함
      • 학생 클래스는, 상위의 사람 클래스가 갖는 특징(자고, 먹고)을 물려 받아서 가지고 있음, 거기에 추가적으로 공부하고, 학교 가고하는 특징을 더하는 추가로 가지는 것.
    • 추상화(Abstraction): 코드가 복잡하지 않게 만들고, 단순화된 사용으로 변화에 대한 영향을 최소화한다.
      • 내부 구현은 복잡, 사용하는 기능은 단순하게 설계(인터페이스의 단순화)
    • 다형성(Polymorphism): 동일한 메소드에 객체의 특성에 따라 다르게 작성하는게 가능해짐
      - HTML element는 textarea, select, chechbox 등의 다양한 형태를 가진다
      - 셋 다 화면에 render된다는 공통 개념을 가진다, 이는 엘리먼트라는 부모가 갖고 물려줌
  • JavaScript에서 객체 지향 프로그래밍을 구현할 수 있다.
    • JavaScript는 프로토타입 기반 언어
    • Prototype이 무엇인지 이해할 수 있다
    • Prototype(원형 객체)
  • 객체 지향 프로그래밍의 상속(Inheritance)의 개념을 이해하고 코드로 작성할 수 있다.
    • 상속관계를 가진 현실 세계의 모델을 코드로 작성할 수 있다.
      • 사람과 학생과의 관계, 학생은 사람이 갖는 특성을 다 가지고 있다
    • 클래스 상속의 원리를 이해할 수 있다.
    • Prototype chain을 이해하고 설명할 수 있다. (proto)
      • 자식에서 속성을 조회할 경우, 자식이 갖지 않은 특성은 부모 또는 부모의 부모에서 조회한다,
  • 인터페이스(Interface)란 무엇일까요?
  • JavaScript에서 class 키워드를 사용하면, 메소드의 은닉이 가능한가요?
  • 클로저의 자세한 이해를 위한

0개의 댓글