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