1. 왜 callback을 사용하는가
- 일반 함수의 return logic은 javascript의 실행구조상 undefined 문제가 발생할 수 있다.
- 이 undefined 문제를 방지하기위해 logic의 순차처리를 보장받기 위해 사용한다.
2. 왜 promise를 사용하는가
- promise 객체를 이용하여 내부적으로 logic을 작성하고, 이를 비동기처리 하는데 유용하기 때문에 사용한다.
- 비동기 처리 작업에 대한 resolve(성공), reject(실패)시 logic 처리를 쉽게 구현할 수 있다.
3. 왜 closure를 사용하는가
- 내부적으로 선언된 함수를 통해 외부함수의 변수에 지속적으로 접근하여 사용할 수 있다.
- 비동기처리 관점에서 logic 구현이 유용할 수 있기 때문에 clousre를 사용하지만, 이보다는 async - await 구문이 더 효율적이다.
- 메모리누수, IIFE관점에서 함수를 return하는 것이기 때문에 직접적인 변수에 접근할 때 별도의 함수를 선언하거나 접근자가 필요하다.
4. 왜 class를 사용하는가
- 객체개념으로 JSON, string 등 node.js 와 server 작업처리에 있어 객체는 가장 중요한 구조이기 때문에 class를 사용한다.
- method를 통해 factory pattern(method 생성 및 접근지속)을 구현하기위해 사용한다.
- 한 class, 객체는 기본적으로 하나의 instance만 가질 수 있다.
- 한 객체의 지속적인 참조는 static method를 이용한다.