📌 면접 답변
REST는 자원을 URI로 표현하고, 자원에 대한 상태 전이를 HTTP 메서드를 통해서 처리하는 아키텍쳐 스타일
RESTful하기 위한 6가지 조건
1. Uniform Interface
- 일관된 인터페이스로 자원 표현 (가장 중요)
2. Stateless
- 서버는 클라이언트의 상태를 저장하지 않음
- 매 요청에 필요한 모든 정보 포함
3. Clinet-Server 구조
- 클라이언트는 UI, 서버는 자원처리
4. Cacheable
- 응답에 캐시 여부 명시하여 성능 최적화
5. Layered System
- 중간 계층(프록시, 로드밸런서) 존재
6. Code on Demand
- 서버가 클라이언트로 스크립트나 코드 전달 가능
REST는 결국 HTTP를 잘 활용하기 위한 원칙이다.
URI와 HTTP 메서드를 사용해 자원과 행위를 표현하고, API의 의미를 표현하기 쉽고 의미 파악도 쉽다.
REST API 예시
RESTful 하지 않은 URI
http://example.com/getUser?id=1 ❌ 동사가 포함됨
http://example.com/updateUser?id=1 ❌ 동사가 포함됨
http://example.com/userInfo ❌ 명확한 자원 이름이 아님
http://example.com/doLogin ❌ "동사(doLogin)"가 포함됨
http://example.com/products?id=42&edit=true ❌ 쿼리파라미터로 상태 변경 (RESTful하지 않음)
RESTful한 URI
http://example.com/users ✅ 모든 사용자 조회 (GET)
http://example.com/users/1 ✅ 특정 사용자 조회 (GET)
http://example.com/users ✅ 새 사용자 생성 (POST)
http://example.com/users/1 ✅ 사용자 정보 수정 (PUT)
http://example.com/users/1 ✅ 사용자 삭제 (DELETE)
- REST는 설계 원칙 (Architectural Style)로 하나의 가이드 라인으로 보면 된다.
- 규격같은게 아니기 때문에 100% RESTful 하지 않아도 된다.
📌 내 답변
REST란 URL을 Resource(자원)의 식별자로 표현하고, 상태를 HTTP 메서드를 통해서 변경하는 것을 의미한다.
RESTful 하기위해 6가지 조건이 있다.
1. Uniform Interface (자원을 직관적으로 표현)
2. Server와 Client 구조 분리
3. Stateless (서버는 클라이언트의 정보를 저장하지 않음)
4. Cacheable
5. 계층화 구조 ( 로드벨런싱, 서버, DB 등)
6. ???
[출처 및 참고 자료]
매일메일 - 기술 면접 질문 구독 서비스
기술 면접 질문을 매일매일 메일로 보내드릴게요!
www.maeil-mail.kr
면접 내용 출처
What is REST?: REST API Tutorial
REST is an acronym for REpresentational State Transfer. It is an architectural style for hypermedia systems and was first presented by Roy Fielding.
restfulapi.net
REST API 공식 문
'😀 Jerry > 면접 질문' 카테고리의 다른 글
[1분 면접] 캐시 스탬피드 현상에 대하여 설명해주세요. (0) | 2025.03.26 |
---|---|
[1분 면접] ACID에 대해 설명해주세요. (0) | 2025.03.25 |
[1분 면접] 캐싱 전략에 대해서 설명해주세요. (0) | 2025.03.17 |
[1분 면접] 자료구조 스택에 대해서 설명해주세요. (1) | 2025.03.15 |
[1분 면접] 동시성과 병렬성의 차이 (0) | 2025.03.14 |