면접 대비 Lev.1

이제우·2023년 9월 19일
0

한문장으로 결론을 먼저 말하고 결론을 뒷받침할 근거를 얘기하자.


1. GET과 POST의 차이점에 대해서 설명해보세요.

GET은 주로 데이터를 가져오고 조회할 때 사용하고, POST는 데이터를 추가 또는 수정하기 위해 사용하는 방식이다.

GET은 ?로 URL의 끝을 알리고 그 뒤에 key와 value로 전송하는데 이 부분을 쿼리스트링이라고 한다.

wwww.ex_url.com/item?lev=99&power=99

GET은 이렇게 url에 정보가 다 노출되기에 보안에 취약하다.

POST는 body에 값을 넣어서 전송하는 방식이다.
body에 넣어서 전송하기 때문에 쿼리스트링 같은 문자열 뿐만 아니라 객체들의 값도 전송이 가능하다. 또한 url에 정보를 노출하지 않기 때문에 기본적인 보안은 지켜진다. 하지만 개발자 도구 등을 통해 확인할 수 있으니 민감한 데이터는 꼭 암호화를 거쳐야한다.


두 방식의 특징을 정리하자면

GET

  • url에 정보를 담아서 전송
  • 캐싱이 가능하다.
  • 북마크가 가능하다.
  • 브라우저마다 길이 제한이 있다.
  • 멱등이다

POST

  • body에 담아서 전송
  • 데이터 길이 제한이 없다.
  • 캐싱할 수 없다.
  • 멱등이 아니다.

멱등 : 여러번 요청을 하더라도 같은 응답이 오는 것.

결론 : GET은 데이터를 요청할때 사용. POST는 새로 추가하거나 수정할 때사용. GET은 url에 정보를 담기에 body가 없음. POST는 body에 값을 담아서 보냄. GET은 멱등. POST는 아님


2. PUT과 PATCH의 차이점에 대해서 설명해보세요.

PUTPATCH 모두 데이터 수정과 관련된 HTTP METHOD이지만 PUT은 데이터의 전체를 수정하거나 대체하는 경우 PATCH는 일부를 수정하는 경우 사용한다.

nameage
lee20
park22

이런 데이터가 있다고 했을 때 PUT으로 name의 lee를 kim으로 바꾸는 요청을 한다면

nameage
kimnull
park22

이렇게 보내지 않은 age의 값은 null이 된다. 하지만 PATCH로 보낸다면

nameage
kim20
park22

이렇게 보내지 않은 데이터는 그대로 유지되고 일부만 수정이 된다.

또한 PUT은 자원이 없는 데이터를 요청하면 새로 자원을 생성하지만
PATCH는 자원이 없을 경우 새로운 자원을 생성하지 않고 서버는 오류를 응답한다.

PUT은 멱등이고 PATCH는 멱등이 아니다.

nameage
lee20
park22

방금 전 이 데이터에 lee의 age를 한살 늘리는 요청을 4번 한다고 가정했을 때
PUT의 경우

nameage
lee21
park22

PATCH의 경우

nameage
lee24
park22

이렇게 여러번의 요청에 같은 응답이 오지 않아 PATCH는 멱등이 아님을 알 수 있다.

결론 : PUT은 데이터 전체를 수정하거나 대체할 때 사용. PATCH는 일부만 수정할 때 사용. PUT은 자원이 없으면 생성하지만 PATCH는 생성하지 않음.
PUT는 멱등이며 PATCH는 아님


3. HTTP Method와 이것이 하는 역할에 대해서 설명해보세요.

HTTP METHOD는 서버 구조에서 요청과 응답이 이루어지는 방식이다.
HTTP METHOD는 리소스와 동작을 구분하기 위해서 사용한다.
HTTP METHOD로 동작을 지정해주면 url은 리소스만 식별하면 된다.


4. HTTP Method의 종류에 대해서 아는 대로 설명해주세요.

HTTP METHOD는 크게 8가지 종류가 있다.

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • HEAD
  • OPTIONS
  • CONNECT

GET은 주로 조회 목적으로 사용되며 요청 시 url에 데이터를 담는데 이 부분을 쿼리스트링이라고 한다. 멱등이며 북마크나 캐싱이 가능하다.

POST는 데이터를 새로 생성할 때 사용된다. 멱등이 아니며 요청 시 데이터는 BODY에 담는다.

PUT은 데이터 전체를 수정하거나 대체할 때 사용한다. 멱등이며 자원이 없을 시 자원을 새로 생성한다.

PATCH는 데이터 일부를 수정할 때 사용한다. 멱등이 아니며 자원이 없을 시 자원을 새로 생성하지 않는다.

DELETE는 데이터를 삭제할 때 사용한다. 성공 시 성공 응답만 받는다.

HEAD는 GET과 동일하지만 Body부분을 제외하고 조회한다.

OPTIONS는 서버가 브라우저와 통신하기 위한 통신 옵션을 확인한다.

  • method, header, content-type을 제공하는지 알 수 있다.

CONNECT는 대상이 자동으로 식별되는 서버에 대한 연결 요청을 한다.

profile
게으른 사람 중에 제일 부지런하게 사는 사람이 꿈

0개의 댓글