포스트

스프링 부트3 제 10장

웹 브라우저 말고 다른 기기에서도 서비스 되나요?

스프링 부트3 제 10장

REST API(Representational State Transfer API)

REST API는 서버 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식이다. 클라이언트가 요청을 보내면, 서버는 특정 기기에 종속되지 않고 모든 기기에서 통용할 수 있는 JSON 데이터를 응답으로 보낸다.

REST란 HTTP URL로 서버의 자원을 명시하고, HTTP 메서드로 해당 자원에 대해 CRUD하는 것을 뜻한다.

REST APIREST API 동작 방식

API(Application Programming Interface)란 앱을 간편하게 사용할 수 있게 하는 일종의 약속. 즉, 메뉴판 같은 거라고 생각하면 쉬움.

JSON(JavaScript Object Notation)

자바스크립트 방식을 차용한 객체 표현식이다. 키와 값으로 구성된 정렬되지 않은 속성의 집합이다. 키는 항상 큰 따옴표로 감싸고, 값은 문자열인 경우에만 큰 따옴표로 감싼다.

1
2
3
4
5
{
    "name": "초코",
    "breed": "푸들",
    "age": 2
}

REST API 실습

{JSON} Placeholder 사이트로 가짜 API를 사용해 테스트를 할 수 있다. 또한, Talend API Tester로 사이트에 여러 요청을 보내고 수신한 데이터를 확인했다.

HTTP

상태 코드

  • 100번대(정보): 요청이 수신돼 처리 중
  • 200번대(성공): 요청이 정상적으로 처리 됨
  • 300번대(리다이렉션 메시지): 요청을 완료하려면 추가 정보 필요
  • 400번대(클라이언트 요청 오류): 클라이언트 요청이 잘못돼 서버가 요청 수행 불가
  • 500번대(서버 응답 오류): 서버 내부에 에러 발생

메시지

  • 시작 라인: HTTP 요청 또는 응답 내용. 항상 한 줄로 끝남
  • 헤더: 전송에 필요한 metadata 존재
  • 본문: 실제 전송하는 데이터

요청 메시지

1
2
GET /posts/1 HTTP/1.1 # 시작 라인
Host: jsonplaceholder.typicode.com # 헤더

응답 메시지

1
2
3
4
5
6
7
8
9
10
11
HTTP/1.1 200 # 시작 라인
date: Tue, 25 Feb 2025 08:16:13 GMT # 헤더
content-type: application/json; charset=utf-8
# ... 생략

{ # 본문(JSON 데이터)
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.