길벗 코딩자율학습단 10일차

donghan378·2025년 1월 19일

10일차

~10.2 REST API 동작 살펴보기(종이책 p.275~301)

10장 REST API와 JSON

10.1 REST API와 JSON의 등장 배경

웹 서비스를 사용하는 클라이언트에는 웹 브라우저만 있는 것이 아니다. 스마트폰, 스마트워치, 태블릿 등등이 모두 클라이언트이다. 따라서 어떤 기기가 와도 거기에 맞는 뷰 페이지(view1, veiw2, view3, ・・・)를 응답해야 한다.

이때 사용하는 것이 REST API인데, REST API(Reprensentational State Transfer API)는 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식이다.

REST API 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환한다. 서버는 클라이언트의 요청에 대한 응답으로 화면(view)이 아닌 데이터(data)를 전송한다. 이때 사용하는 응답 데이터가 JSON(JavaScript Object Notation)이다.

JSON 데이터는 키(key)와 값(value)으로 구성된 정렬되지 않은 속성(property)의 집합이다.

{

	“name”: “망고”,

	“breeds”: “골든리트리버”,

	“age”: 2

}

키는 문자열이므로 항상 큰따옴표(””)로 감싸고, 값은 문자열인 경우에만 큰따옴표(””)로 감싼다.

10.2 REST API 동작 살펴보기

이 절에서는 연습용 REST API 서버에 접속해서 HTTP 요청과 응답을 실습한다. 연습용 REST API는 {JSON} Placeholder 사이트(https:/jsonplaceholder.typicode.com)에 가면 사용할 수 있다.

  • 사이트 사용 방법
    스크롤을 내리면 Try it 이 보인다. 이 부분에 HTTP 요청 코드가 작성돼 있는데, Run script 버튼을 클릭하면 그에 대한 응답으로 JSON 데이터를 확인할 수 있다.
  • 사이트에서 제공하는 자원
    스크롤을 더 내리면 Resources가 보이는데, 여기서는 가짜 더미 데이터로 HTTP 요청을 보내고 응답 결과를 확인할 수 있다.
    사이트에서 제공하는 자원은 게시글(post) 100개, 댓글(comments) 500개, 앨범(albums) 100개, 사진(photos) 5000개, 할 일 목록(todos) 200개, 사용자(users) 10명이다.
  • HTTP 메서드와 URL 경로
    스크롤을 더 내리면 Routes가 있는데, 이 부분을 보면 이 사이트에서 메서드별로 요청을 보낼 때 사용하는 URL 경로가 나와 있다.
    이 URL 경로를 어떻게 활용하는지 구체적인 예를 보기 위해서는 아래 Note 에 있는 guide를 클릭하면 된다.
    - 단일 데이터를 조회하는 예
    ![](https://velog.velcdn.com/images/donghan378/post/40522786-21c8-4d58-a9f4-4b841abdf2b0/image.png)
    URL 경로가 ‘http://・・・/post/1’이니 1번 게시글을 조회하는 요청이다.
    method 속성 값으로 GET을 써주지 않은 이유는 GET은 method 속성의 기본값이기 때문이다.
    • 모든 데이터를 조회하는 예

      URL 경로가 http://・・・/post이므로 모든 게시글을 조회해 보여 달라는 뜻
    • 새 게시글을 등록하는 예

      데이터 생성 요청이므로 method의 속성 값은 POST이다.
      body 부분을 보면 JSON 데이터로 새 게시글의 title, id, body 값도 보낸 것을 확인할 수 있다.
    • 게시글을 수정하는 예


      데이터 수정 요청이므로 method의 속성 값은 PUT과 PATCH를 사용한다.
      PUT과 PATCH는 약간의 차이가 있는데
      • PUT : 새 데이터를 전부 새 내용으로 변경하고 만약 기존 데이터가 없다면 새로 생성한다.
      • PATCH: 기존 데이터 중에서 일부만 새 내용으로 변경한다.
    • 게시글을 삭제하는 예

      데이터 삭제 요청이므로 method 속성값으로 DELETE를 사용했다.

Talend API Tester 설치하기

크롬 웹 브라우저에 Talend API Tester라는 확장 프로그램을 설치한다.

Talend API Tester 프로그램을 이용하면 HTTP 을 보내고 돌아온 응답을 확인할 수 있다.

  • HTTP 상태 코드
    • 200: 요청이 잘 처리됐다는 것을 의미
    • 404: 요청한 페이지를 찾을 수 없다는 의미
    • 201: 데이터가 잘 생성됐음을 의미
    • 500: 서버 내부에 에러가 발생했다는 것을 의미
  • HTTP 메시지 GET, POST 등의 요청과 응답은 HTTP 메시지에 실려 전송된다. 요청할 때는 HTTP 요청 메시지에, 응답할 때는 HTTP 응답 메시지에 내용이 실린다.
    HTTP 메시지는 시작 라인(start lien), 헤더(header), 빈 라인(blank line), 본문(body)로 구성된다.
    • 시작 라인: HTTP 요청 또는 응답 내용이 있다. 시작 라인은 항상 한 줄로 끝난다.
    • 헤더: HTTP 전송에 필요한 부가 정보(metadata)가 있다.
    • 빈 라인: 헤더의 끝을 알리는 빈 줄로, 헤더가 모두 전송되었음을 알린다.
    • 본문: 실제 전송하는 데이터가 있다.

요청 메시지

응답 메시지(성공한 경우)




0개의 댓글