본문 바로가기
직무 면접 대비/웹 개발

[직무 면접 대비] 웹 개발 직무 인터뷰 모음 2

by CODESIGN 2022. 2. 12.

1. 웹 프로토콜이란?

  • 웹에서 쓰이는 통신규약입니다.

 

2. 통신규약이란?

  • 통신을 할 때 내가 이렇게 할게 너는 이렇게 해줘라고 약속하는 것입니다.

 

3. Http 란?

  • Hyper text Transfer Protocol입니다.
  • 웹 프로토콜 중 하나로 가장 많이 쓰이고 인터넷에서 데이터를 주고받을 수 있는 통신규약입니다.
  • 요청과 응답으로 이루어져 있어 어떤 데이터 주세요 하고 요청하면, 이 데이터 줄게요라고 응답합니다.

 

4. AJAX란 무엇인가?

  • Asynchronous javascript and xml
  • 자바스크립트를 이용해 비동기적으로 서버와 브라우저가 데이터를 교환할 수 있는 통신 방식입니다.
  • 보통은 서버로부터 웹페이지가 반환되면 전체를 갱신해야 하는데 / AJAX를 사용하면, 갱신이 필요한 부분만 로드하여 갱신하면 되므로 빠르고, 부드러운 화면효과가 나타납니다.
  • http를 이용해서 서버에게 데이터를 요청해서 받아올 수 있는 방법.

 

5. XMLHttpRequest란?

  • 브라우저의 API에서 제공하는 오브잭트 중의 하나로 간단하게 서버에게 데이터를 요청하고 받아올 수 있습니다.

 

6. XML이란?

  • html과 같은 마크업 언어 중 하나이다. 태그들을 이용해서 데이터를 나타낸다.
  • 많이 사용되지 않는다. 사이즈가 크고 가독성도 좋지 않기 때문이다.
  • xml대신 json을 많이 쓰고 있다.

 

7. JSON 이란?

  • Javascript Object Notation
  • 데이터를 주고받을 때 쓸 수 있는 가장 간다한 파일 포맷이다.

 

8. JSON은 무엇으로 이루어져 있는가?

  • 키와 value로 이루어진 파일 포맷이다.
  • 오브잭트가 스트링으로 변화되어 갔다가 string으로 와서 object로 변경된다.

 

9. Object에서 JSON으로 바꾸는 방법은 무엇인가?

  • let json = JSON.stringify(true);
  • console.log(json);
  • 결과 - true
  • json = JSON.stringify([’apple’, ‘banana’]);
  • console.log(json);
  • 결과 - [”apple”, “banana”] - 싱클 쿼트에서 더블 쿼트로 바뀐다.

 

10. reviver이란?

  • Object가 JSON으로 변경될 때 좀 더 세밀한 조정을 원하면 reviver함수를 사용하면 된다.

 

11. JSON에서  Object로 바꾸는 방법은 무엇인가?

  • const obj = JSON.parse(json);
  • console.log(obj);
  • 결과 - {”apple”, “banana”};

 

12. Promise와 Callback의 차이점은 무엇이며 각각의 장단점에 대해 설명, Promise란 무엇이며 코드가 어떻게 구성되어있는가?

  • 둘 다 자바스크립트에서 비동기 처리를 위해서 사용되는 패턴이며, Callback 같은 경우 함수의 처리 순서를 보장하기 위해서 함수를 중첩하게 사용되는 경우가 발생해 콜백 헬이 발생하는 단점과 에러 처리가 힘들다는 단점이 있다. 그래서 나온 게 Promise이다. ES6부터 정식 채택되어 사용 중이다.
  • Promoise 생성자 함수를 통해 인스턴스 화하며,
  • 비동기 처리에 성공하면 resolve메서드를 호출해서 비동기 처리 결과를 후속처리 메서드로 전달한다. 비동기 처리에 실패하면 reject메서드를 호출해서 에러 메시지를 후속처리 메서드로 전달한다. 후속처리 메서드는 then과 catch가 있다. 둘 다 Promise를 반환한다. then을 가지고 메서드 체이닝을 통하여서 콜백 헬 문제를 해결할 수 있다.
// Promise 객체의 생성
const promise = new Promise((resolve, reject) => {
  // 비동기 작업을 수행한다.

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

 

13. Async, Await와 Promise의 차이는?

  • Await 연산자는 Promise를 기다리기 위해 사용된다.
  • async function 내부에서만 사용 가능.
  • async, await를 사용할 경우 코드가 간결해지지만, 에러 처리를 잡기 위해 try catch를 사용해야 한다. 동기적인 코드 흐름으로 개발이 가능하다.

 

14. Await의 장점은 무었가요?

  • await의 기능은 프라미스가 처리되길 기다리는 동안엔 엔진이 다른 일(다른 스크립트를 실행, 이벤트 처리 등)을 할 수 있기 때문에, CPU 리소스가 낭비되지 않습니다

 

15. Await 진행 현상 설명 ('Promise를 기다리기 위해 사용'이라는 게 무슨 말일까?)

  • await문은 Promise가 fulfill 되거나 reject 될 때까지 async함수의 실행을 일시 정지하고, Promise가 fulfill 되면 async함수를 일시 정지한 부분부터 실행합니다. 이때 await문의 반환 값은 Promise에서 fulfill 된 값이 됩니다. 만약, reject가 되면, await 문은 reject 된 값을 throw 합니다.
  • 즉, await 키워드는 프라미스가 처리될 때까지 기다려 그 후 해당하는 결괏값을 반환하는 것이다.#1의 f1 함수 안에 변수 x가 await이 사용되었다.
  • 해당 함수가 실행되면서 변수 x가 있는 줄에서 실행이 잠시 중단되었다가 Promise가 이행(resolved) 될 때까지 기다렸다가 실행이 됩니다. 이때 변수 x에 값이 할당되게 되어 2초 뒤에 콘솔에 10이 찍히게 됩니다.

 

16. 페이로드 란 무엇입니까?

모든 HTTP 메시지의 본문 부분에 존재하는 요청 데이터를 '페이로드'라고 합니다. Restful 웹 서비스에서 페이로드는 POST 메서드를 통해서만 수신자에게 전달될 수 있습니다.

POST 방법을 통해 페이로드로 데이터를 보내는 데에는 제한이 없지만 유일한 문제는 더 많은 데이터가 더 많은 시간과 대역폭을 소비한다는 것입니다. 이것은 또한 사용자의 많은 시간을 소비할 수 있습니다.

 

17. 메시징 기술을 설명하십시오.

메시지는 모든 유형의 통신이 발생하기 위해 데이터를 교환하는 모드입니다. 같은 방식으로 HTTP 프로토콜은 HTTP Request 및 Response 방식을 통해 클라이언트와 서버 간의 메시지 통신 역할을 합니다. HTTP 요청은 데이터에 대한 정보를 포함하는 클라이언트가 보내고 서버에서 HTTP 응답을 받습니다.

메시지는 데이터 (예 : 메타 데이터)에 대한 정보 모음입니다.

 

18. RESTful 웹 서비스와 관련하여 '무국적 상태'라는 용어를 설명하십시오.

REST에서 ST 자체는 State Transfer를 정의하고 Statelessness는 완전한 격리를 의미합니다. 즉, 클라이언트 응용 프로그램의 상태가 서버에 저장되지 않고 전달됩니다.

이 프로세스에서 클라이언트는 서버가 보낸 HTTP 요청을 수행하는 데 필요한 모든 정보를 보냅니다. 따라서 모든 클라이언트 요청 및 응답은 필요한 정보를 제공한다는 완전한 보증으로 서로 독립적입니다.

모든 클라이언트는 각 세션의 식별자 역할도 하는 '세션 식별자'를 전달합니다.

 

19. '무국적'의 장단점을 입력하십시오.

  • 위의 질문에서 우리는 클라이언트-서버 통신과 관련하여 상태 비 저장의 의미를 이해했습니다. 이제 몇 가지 장점과 단점을 살펴보겠습니다.
    • 장점 :
      • 통신에 필요한 모든 방법은 독립적인 방법으로 식별됩니다. 즉, 다른 방법에 대한 종속성이 없습니다.
      • 클라이언트 및 서버와의 이전 통신은 유지되지 않으므로 전체 프로세스가 매우 단순화됩니다.
      • 이전에 사용된 정보 나 메타 데이터가 다른 방법에 필요한 경우 클라이언트는 HTTP 요청과 함께 해당 정보를 다시 보냅니다.
      • HTTP 프로토콜과 REST 웹 서비스는 모두 상태 비 저장 기능을 공유합니다.
    • 단점 :
      • 클라이언트의 모든 HTTP 요청에서 클라이언트 상태에 대한 일부 정보의 가용성이 웹 서비스에 필요합니다.

 

20. 자원의 적절한 표현이 필요한 이유는 무엇입니까?

  • 표현은 자원의 쉬운 식별을 결정하기 때문에 매우 중요합니다. 적절한 형식의 리소스를 적절하게 표현하면 클라이언트가 형식을 쉽게 이해할 수 있습니다.

 

 

댓글