1. 퀴즈

  1. API는 두 소프트웨어가 무엇을 주고받을 때 사용되는 약속인가요? 두 소프트웨어가 서로 \*\요청(request)\\과 \\응답(response)\\*을 주고받을 때 사용하는 규칙(약속)입니다.
  2. RESTful API가 오늘날 가장 널리 사용되는 API 형식 중 하나인 이유는 무엇인가요? RESTful API는 명확하고 직관적인 설계 원칙(자원 URI, HTTP 메서드 매핑, 상태 없는 통신 등)을 따르기 때문에 구현과 이해가 쉽고, 다양한 클라이언트·서버 구조에 잘 맞아 널리 사용됩니다.
  3. CREATE, READ, UPDATE, DELETE는 RESTful API에서 어떤 종류의 작업들을 나타내나요?
  4. RESTful API 요청에서 URI의 역할은 무엇인가요? URI는 “어떤 자원(Resource)에 대해” 요청하는지를 식별하는 문자열로, 가능하면 자원 자체를 명확히 나타내야 합니다.
  5. HTTP 메서드는 RESTful API 요청에서 어떤 정보를 표현하나요? HTTP 메서드는 “URI로 식별된 자원에 대해 어떤 작업(생성·조회·수정·삭제 등)을 수행할 것인가”를 나타냅니다.
  6. GET 메서드는 주로 어떤 종류의 작업을 수행할 때 사용되며, 왜 편지 봉투에 비유되나요? GET은 자원 조회(Read) 용도로 사용되며, 요청 바디에 크게 보낼 내용이 없기 때문에 “편지 봉투에 주소만 적어 보내는 것”처럼 비유됩니다.
  7. POST, PUT, PATCH 메서드가 소포 상자에 비유되는 이유는 무엇인가요? 이 메서드들은 요청 바디에 내용을 담아(생성·전체 또는 일부 수정) 서버로 전송하기 때문에, “물건을 넣어서 보내는 소포 상자”에 비유됩니다.
  8. RESTful API 응답에서 상태 코드의 역할은 무엇인가요? 200번대, 400번대, 500번대 상태 코드는 각각 무엇을 의미하나요? 상태 코드는 요청 처리 결과를 알려줍니다.
  9. RESTful API의 “상태가 없는 통신(Statelessness)” 원칙은 무엇을 의미하나요? 서버가 클라이언트의 이전 요청 상태를 저장하지 않는다는 의미입니다. 즉, 각 요청에는 필요한 모든 정보가 포함되어 있어야 하며, 서버는 요청만 보고 독립적으로 처리합니다.
  10. 캐싱(Caching)은 RESTful API 통신에서 어떤 이점을 제공하나요? 캐싱은 한 번 받은 데이터를 임시 저장해 두었다가 재사용함으로써, 서버 요청/응답 횟수를 줄여 부하를 감소시키고 응답 속도를 높이는 이점을 제공합니다.

2. 에세이 형식 질문

  1. RESTful API의 핵심 원칙인 Statelessness가 대규모 시스템 설계에 어떤 영향을 미치는지 설명하시오.
  2. HTTP 메서드(GET, POST, PUT, PATCH, DELETE)의 사용 목적과 RESTful API 설계에서 각 메서드가 어떤 작업을 나타내는지 사례를 들어 비교 설명하시오.
  3. URI 설계 시 자원의 표현 방식과 동사의 사용을 지양하는 RESTful 원칙이 API의 가독성과 유지보수성에 어떻게 기여하는지 논하시오.
  4. RESTful API의 응답에서 HATEOAS(Hypermedia as the Engine of Application State)가 어떤 역할을 하며, 개발자가 API를 탐색하고 사용하는 데 어떤 도움을 주는지 설명하시오.
  5. RESTful API 통신에서 JSON 형식의 데이터가 널리 사용되는 이유와 그 장점에 대해 논하시오.