CS/네트워크

REST API란

ari0930 2025. 5. 3. 17:05

API란?

클라이언트,서버와 같은 서로 다른 프로글챔에서 요청과 음답을 주고 받을 수 있게 만든 체계

REST API란?

  • REST API는 웹에서 데이터를 주고 받기 위한 아키텍처 스타일이며 규약을 의미한다.
  • 자원을 URI 로 표현하고 , HTTP 메서드(GET,POST,PUT,DELETE 등) 을 통해 자원을 다룬다.

특징

  • 상태 비저장성(무상태)
  • 각 요청이 독립적으로 처리되기 때문에 서버 확장서과 유지보수에 유리
  • 응답은 주로 JSOIN 형식으로 전달
  • 캐싱을 활용할 수 있어 성능면에서 우수하다. (이게 무슨 의미지 확인)
  • 계층화
  • 클라이언트/서버 구조

REST 구성요소

  1. 자원(Resource) : HTTP URL
  2. 자원에 대한 행위 : HTTP Method
  3. 자원에 대한 표현 : Representation

1.자원(Resource) : HTTP URL

  • 자원은 서버에 존재하는 데이터의 대상
  • 일반적으로 복수형 명사를 사용
  • /users , /post/1 이렇게 표현한다.

2.자원에 대한 행위 : HTTP Method

  • 클라이언트가 자원에 대해서 어떻게 동작 할 것인지 나타낸다.
  • HTTP 메서드(GET,POST,PUT,DELETE 등) 자세한거는 아래에 설명

3.자원에 대한 표현 : Representation

  • 자원의 상태나 정보를 클라이언트에게 전달하는것
  • 주로 json , xml 형식으로 전송
{
  "id": 1,
  "name": "Alice",
  "email": "alice@example.com"
}

HTTP Method

메서드 의미 예시

GET 조회 GET /users/1
POST 생성 POST /users
PUT 전체 수정 PUT /users/1
PATCH 일부 수정 PATCH /users/1
DELETE 삭제 DELETE /users/1

HTTP 상태코드(응답코드)

상태 코드 의미

100 진행중을 의미하는코
201 Created (생성 성공)
200 OK (성공)
204 No Content (삭제 성공 등)
400 Bad Request (잘못된 요청)
401 Unauthorized (인증 필요)
403 Forbidden (권한 없음)
404 Not Found (자원 없음)
500 Internal Server Error

1XX

클라이언트의 요청을 받았고 계속 처리 중임을 의미실제 응답 데이터는 아직 아님.

2XX

클라이언트의 요청을 정상적으로 처리했음을 의미

3XX

리다이렉션필요 ⇒ 클라이언트가 요청한 리소스가 다른 위치로 이동됨을 의미함

4XX

클라이언트의 요청에 문제가 있음을 의미합니다.

5XX

서버가 요청을 정상적으로 처리하지 못함을 의미합니다. 클라이언트 잘못 아님.

REST API 설계 규칙

  1. URI 명사를 이용해서 자원을 명시한다.
    1. GET /members/1
  2. HTTP메서드 활용하여 매핑
    1. GET / POST / PUT / PATCH / DELETE
  3. 계층적 URI 설계
    1. GET /users/1/orders # 1번 사용자의 주문 목록
  4. 파일 확장자명은 포함하지 않는다.
  5. URI가 길어지는 경우 _ 대 - 을 이용한다
    1. GET /users/profile_image (X) →GET /users/profile-image (O)
  6. 행위를 포함하지 않는다.

RESTful API란?

REST 원칙을 엄격하게 지킨 API를 의미하며 실제로 많은 웹 서비스와 백엔드-프론트 간 데이터 통신 표준으로 널리 사용되고 있다.

반응형

'CS > 네트워크' 카테고리의 다른 글

[네트워크] 소켓(Socket)이란?  (0) 2026.01.02
[네트워크]TCP/IP란?  (0) 2025.06.14
[네트워크]TCP/IP 와 OSI7 계층  (0) 2025.06.14
HTTP/HTTPS 란?  (0) 2025.05.02
[네트워크] 쿠키와 세션  (0) 2025.03.23