웹시스템개발 기말고사 핵심 정리 -1

 

클로저

어떤 함수 A에서 선언한 변수 a를 참조하는 내부함수 B를 외부로 전달할 경우 A의 실행 텍스트가 종료된 이후에도 변수 a가 사라지지 않는 현상

 

Javascipt 언어의 this 용법

1. 전역 공간에서의 This

    - Node 환경에서  this -> module.exports 객체

    - 웹 브라우저 환경에서 this -> 전역 객체

 

2. 함수를 다양한 형태로 호출시 this가 가르키는 것

    - 함수 함수로써 호출 시 this -> 전역 객체

    - 함수메소드로써 호출 시 this -> 메소드를 호출한 객체

    - 함수생성자로써 호출할 시 this -> 생성되는 객체

 

3. 화살표 함수 : this 바인딩(x), 상위 스코프의 this를 가리킴

4. call, apply 메소드는 this를 명시적으로 지정하면서 함수 or 메소드 호출

5. bind 메소드는 this를 명시적으로 지정하면서 새로운 함수 반환

 

* 바인딩 : 값과 식별자 사이의 속성을 선택하여 연결 해주는 것

* 스코프 : 범위 (변수에 접근할 수 있는 범위)

* 명시적 : 내용이나 뜻을 분명하게 드러내 보이는...  (= 분명히)

 

실행 컨텍스트 (= 실행 환경)

실행할 코드에 제공할 환경 정보들을 모아 놓은 객체 

 

쓰로틀링 Throttling  (마지막꺼 억압)

이벤트가 발생하여 실행 중일 때, 실행 중인 이벤트가 끝나기 전에 발생하는 이벤트는 무시하는 방법

 

디바운싱 Debouncing (마지막꺼 실행)

이벤트가 빈번하게 발생할 때, 마지막 이벤트만 실행하는 방법

 

객체지향


동작 방식 : 객체 간의 메시지 통신

사용 이유 : 재사용성

 

 

 

 

 

 

 

 

 

 

 

 

상태와 동작  (캡슐화, 은닉화, 상속, 제네릭)

 

캡슐화

객체의 상태와 동작을 하나의 클래스로 묶는 것

 

은닉화

외부의 감추고 싶은 상태와 동작은 숨기고, 공개하고 싶은 상태와 동작은 공개하는 것

 

상속

부모의 상태와 동작을 자식이 물려받는 

 

정의하는 것  (제네릭, 오버로딩, 오버라이딩)

 

제네릭

다양한 타입의 상태와 동작을 가질 수 있는 클래스의 틀을 정의하는 것

 

오버로딩

(이름은 같으나 인자의 개수와 인자의 타입이 다른) 메소드를 정의하는 것

-> 이름이 같은 메소드 여러 개가 있다~~~

 

* 인자 : 함수 호출 시, 함수에게 전달하는 값

 

오버라이딩 (= 부모를 라이딩 한다)

 부모의 메소드재정의 한다

 

메소드 (오버라이딩, 오버로딩)
클래스의 틀 ( 제네릭)

 

일급 객체의 조건

함수의 인자로 전달

함수의 리턴값으로 사용

변수 공간에 할당

 

고차함수

함수의 인자로 전달하거나 함수의 결과 값을 반환하는 것

 

컴포지션 ( = 객체 합성)

객체나 클래스를 더 복잡한 자료구조나 모듈로 묶는 행위

 

5가지 원칙 ( 단일책임, 개방-폐쇠, 리스코프 치환, 인터페이스 분리, 의존 역전)

 

단일 책임 원칙

클래스는 하나의 책임만을 가져야 한다

 

개방 폐쇠 원칙

소프트웨어 개체는 확장에 열려 있어야 하고, 수정할 때는 폐쇠되어야 한다.

 

리스코프 치환 원칙

상위 모듈은 공통 속성이나 추상화된 기능만을 가지고 있어야 한다. 

 

의존 역전 원칙

상위 클래스는 하위 클래스에 의존적이지 않아야 한다. 

 

인터페이스 분리 원칙

클래스를 사용하지 않는 인터페이스는 의존하지 않아야한다. 

 

 

 

그 외 학습 키워드

프로토타입

모든 객체가 클래스의 인스턴스가 아닌 다른 객체의 복제물

메모리 누수

더 이상 사용하지 않는 객체들이 힙(Heap) 영역에 남아 있어 불필요하게 메모리를 차지하고 있는 상황

호이스팅

environmentRecord의 수집 과정을 추상화한 개념

실행 컨텍스트가 관여하는 코드 집단의 최상단으로 '끌어올린다'

커링 함수

여러 개의 인자를 받는 함수를 단 하나의 인자만 받는 함수로 만

global

Node 환경에서 자바스크립트 언어의 전역 객체global 이라고 한다. 

** Node 환경에서  this는 module.exports 객체를 가르킨다. 

undefined

값을 할당하지 않은 상태

null

빈 값을 할당한 상태

Array

정렬된 값들의 집합

 

 


 

자바스크립트 언어의 데이터 타입의 기본형은 00성을가진다

-> 불변 (변할 수 없는 성질)

 

자바스크립트 언어는 데이터 타입을 000에 결정한다

-> 런타임

 

Node 환경에서 자바스크립트 언어의 전역 객체는 .... 이다.

-> global

 

.....은 이벤트가 빈번하게 발생할 때, 마지막 이벤트만 실행하는 방법이다. (영어로 작성)

-> debouncing