면접 - restAPI와 HTTP methods

bw1611·2024년 3월 10일

면접을 보면서 기초적인 부분을 잘 이해하지 못해서 허둥지둥 됐던 적이 있다.
알고 있던 내용이지만 설명하라고 하니 정리가 바로 되지 않았다. 앞으로는 이런 실수를 하지 않기 위해서 생각을 정리해서 기록하기로 했다.

질문은 이러했다.

질문 : Rest API에 대해서 설명해주세요.

지금 생각해보면 정말 쉬운 내용이고 기본적인 내용인데 그 당시에는 긴장도 하고 복잡하게 대답했던 것 같다.

그렇다면 이거에 대해서 예상 답변을 정리해보자.

rest api의 3단계

  • level 0

    • 웹 매커니즘을 사용하지 않고 HTTP를 원격 호출을 위한 전송 시스템으로 사용할 경우이며 구분없이 설계되 HTTP API다.
    • ex) http://server/getPosts, http://server/deletePosts
  • level 1

    • 리소스의 개념을 도입, 모든 요청을 하나의 end-point로 보내는 것이 아니라 개별 리소스와 통신하는 형태 (적절하게 리소스의 형태를 url로 나타내는 형태)
    • ex) http://server/accounts, http://server/accounts/10
  • level 2

    • level1 단계에서 HTTP methods가 추가된 형태
    • GET http://server/accounts, POST http://server/accounts
  • level 3

    • level2 단계에서 HATEOAS를 추가한 단계
    • 무슨 행위를 하였을 경우 다음에 어떤 행위를 할 수 있을지 보여주는 단계
    • ex) 글을 작성했다면 다음으로 조회를 어떻게 할 수 있는지에 대해서 말해주는 형태

REST API 설계할 때 주의해야할 점

  • 개발자 위주의 설계보다는 해당 API를 사용하는 소비자 입장에서 알아볼 수 있도록 설계
  • HTTP methods가 알맞도록 설계 (POST, GET, DELETE, PUT)
  • response Status를 제대로 전달 (get은 200, post는 201 같은 느낌)
  • URI에는 보안에 민감한 정보를 넣지 말야아 함
  • 복수를 사용하고 만약 단수 값이 필요하다면 /users/1 이런식으로 표현
profile
Java BackEnd Developer

0개의 댓글