기술면접 준비
**자기가 만들어 본 개발 프로젝트**에 대해서는 정확하게 답변할 수 있게 하기
Javascript
promise의 기능과 필요한 이유
프로미스는 자바스크립트 비동기처리에 사용되는 객체입니다.(비동기처리: 특정 코드의 실행이 완료될때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성) 프로미스를 사용하면 비동기 메서드에서 마치 동기 메서드처럼 값을 반환할 수 있습니다. 다만 최종 결과값을 반환하는 것이 아니라, 미래에 어떤 시점에 결과를 제공하겠다는 약속(프로미스)를 반환합니다. 대기중인 프로미스가 이행될때 프로미스의 then메서드에 의해 그 반환값을 자신의 결과값으로 하여 이행합니다. 프로미스는 주로 서버에서 받아온 데이터를 화면에 표시할때 사용합니다. 서버에서 데이터를 받아오기 전에 데이터를 화면에 표시하려고 하면 오류가 발생하거나 빈 화면이 뜹니다. 이와같은 문제점을 해결하기 위해 프로미스를 이용합니다.
[
pending 약속을 수행중인 상태
fulfilled 약속이 지켜진 상태
rejected 약속이 어떤 이유에서 못지켜진 상태
settled 약속이 지켜졌든 안지켜졌든 일단 결론이 난 상태
]
HTTP 메세지 구조에 대해 설명해주세요.
HTTP메세지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. HTTP는 요청과 응답으로 이루어져있습니다.
HTTP 요청의 시작줄에는 HTTP메서드, 요청타겟, HTTP버전으로 이루어져있습니다. HTTP메서드는 GET,PUT,POST,OPTIONS등이 있습니다. 요청타겟에는 주로 URL,포트 등으로 나타냅니다. 시작줄 다음에는 헤더가 들어갑니다. 여기에는 요청이나 본문에 대한 설명이 들어갑니다. 그 다음에는 요청에 대한 모든 정보가 전송되었음을 알리는 빈 줄이 삽입되고, body가 들어갑니다. body는 모든요청에 들어가지 않습니다. 리소스를 가져오는 요청은 본문이 필요없기 때문입니다. 보통 데이터를 업데이트하는 요청(PUT,POST)에 body가 들어갑니다.
HTTP요청과 응답의 구조는 서로 닮았습니다. 응답의 시작줄은 상태줄이라고 하는데 상태줄에는 프토로콜 버전, 상태코드,상태 텍스트를 포함합니다. 이 중 상태코드를 살펴보면 200,300,400,500이 있습니다. 200은 성공, 300은 리디렉션, 400은 클라이언트 실패, 500은 서버실패입니다. 헤더와 본문은 요청과 비슷합니다. 본문에는 응답과 관련된 문서 등이 들어갑니다.
GET 메서드와 POST 메서드의 차이점에 대해 설명해주세요.
GET메서드는 클라이언트에서 서버로 특정한 리소스를 가져오도록 요청합니다. GET요청은 데이터를 가져올때만 사용해야 합니다. GET요청은 주로 URL주소끝에 파라미터로 포함하여 전송합니다.(쿼리스트링) 데이터의 변형 위험이 없습니다.
POST메서드는 리소스를 생성/업데이트하기 위해 서버로 데이터를 전송합니다. (POST는 조회가 가능) 전송해야할 데이터를 HTTP메시지의 Body에 담아서 전송합니다. GET요청에는 데이터 길이에 대한 제한이 있지만 POST요청에는 데이터길이에 대한 제한이 없습니다. GET 메서드는 요청을 무한대로 보내도 같은 요청을 회신받을 수 있습니다.(멱등성이 있다.) 반면 POST는 요청을 무한대로 보내면 최초 응답과는 다른 회신을 받게 됩니다. 이미 해당 리소스가 생성이 되어있거나, 변경되기 때문입니다.(멱등성이 없다.)