67일차

6.OOP와 함수형 프로그래밍의 가장 큰 차이점은 무엇인가

각각의 프로그래밍에서 일급객체의 비교에따라 간접적 비교가 가능하다. 함수형 프로그래밍의 일급 객체는 함수 자체가 일급객체가 됩니다. 객체지향 프로그래밍에서는 객체, 클래스 등이 일급 객체가 됩니다. 객체지향은 객체의 특성에 의거하여 접근대상을 제어하고 속에있는 데이터를 제어하는 등 제어에 목적이 집중되어있는 반면 함수형 프로그래밍은 간결함을 모티브로 나온 프로그래밍 이기에 입력값이 있으면 출력값이 나오고 프로그램에 영향을 주지 않는다는 간단한 개념으로 상태의 변형을 주지 않기 때문에 간결한 프로그래밍에 적합합니다.

7.AJAX란 무엇인가

AJAX란 자바스크립트의 라이브러리 입니다. 자바스크립트를 이용한 비동기 통신 사용자와 서버간의 xml 데이터를 주고받는 기술입니다. 비동기 방식이란 웹페이지를 리로드 하지 않고도 통신이 가능한 구조를 말하는데, 이 방식의 장점은 리로드의 과정속에서 낭비되는 자원을 보존시킬 수 있습니다.

8.Promise란 무엇이며 코드가 어떻게 구성되어있는가

프로미스는 자바스크립트 비동기 처리에 사용되는 객체입니다. 여기서 자바스크립트의 비동기 처리란 ‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’을 의미합니다.
프로미스는 주로 서버에서 받아온 데이터를 화면에 표시할 때 사용합니다. 일반적으로 웹 애플리케이션을 구현할 때 서버에서 데이터를 요청하고 받아오기 위해 아래와 같은 API를 사용합니다.

$.get('url 주소/products/1', function(response) {
  // ...
});

위 API가 실행되면 서버에다가 ‘데이터 하나 보내주세요’ 라는 요청을 보내죠. 그런데 여기서 데이터를 받아오기도 전에 마치 데이터를 다 받아온 것 마냥 화면에 데이터를 표시하려고 하면 오류가 발생하거나 빈 화면이 뜹니다. 이와 같은 문제점을 해결하기 위한 방법 중 하나가 프로미스입니다.

9.Promise와 Callback의 차이점은 무엇이며 각각의 장단점에 대해 설명해달라

둘 다 자바스크립트에서 비동기처리를 위해서 사용되는 패턴이며,
Callback 같은 경우 함수의 처리 순서를 보장하기 위해서 함수를 중첩하게 사용되는 경우가 발생해 콜백헬이 발생하는 단점과 에러처리가 힘들다라는 단점이 있다.
그래서 나온게 Promise이며 ES6부터 정식 채택되어 사용중이다.
Promoise 생성자 함수를 통해 인스턴스화하며,

// Promise 객체의 생성
const promise = new Promise((resolve, reject) => {
  // 비동기 작업을 수행한다.

  if (/* 비동기 작업 수행 성공 */) {
    resolve('result');
  }
  else { /* 비동기 작업 수행 실패 */
    reject('failure reason');
  }
});

비동기 처리에 성공하면 resolve메소드를 호출해서 비동기 처리 결과를 후속처리 메소드로 전달한다.
비동기 처리에 실패하면 reject메소드를 호출해서 에러메시지를 후속처리 메소드로 전달한다.
후속처리메소드는 then과 catch가 있다. 둘다 Promise를 반환한다.
then 을 가지고 메소드 체이닝을 통하여서 콜백헬 문제를 해결 할 수 있다.

10.Async, Await가 무엇이며, 사용해본 경험이 있는가

async와 await는 자바스크립트의 비동기 처리 패턴 중 가장 최근에 나온 문법입니다. 기존의 비동기 처리 방식인 콜백 함수와 프로미스의 단점을 보완하고 개발자가 읽기 좋은 코드를 작성할 수 있게 도와주죠.
프로젝트를 하면서 사용해봤습니다.

좋은 웹페이지 즐겨찾기