HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 3기 교육생
/
📚
3기 스터디 가이드
/
🧑‍💻
CS 학습 및 면접대비 스터디
/
REST, RESTful API

REST, RESTful API

URL
발표자
수화
과목
네트워크

왜 알아야 할까?

이미지 출처: https://masssal.tistory.com/15
이미지 출처: https://masssal.tistory.com/15
  • 프론트엔드와 백엔드가 소통하는 엔드포인트에 관한 개념
  • 서로 더 원활한 의사소통을 위해 알아둬야함 (엔드포인트 회의갔는데..RESTful 개념을 모른다..? 안돼 😱)
    • REST스럽지가 않은걸..? REST스럽지 않아서 엔드포인트 수정합니다.

개념

RESTful API

: REST 아키텍쳐 스타일에 부합하는 api

REST

REpresentational State Transfer
: 표현된 상태 전송
표현된 상태 ? 클라이언트, 서버에서 데이터 원본을 주고받는 게 아니라 현재 시점에서 DB의 상태를 주고받는 것이다
// request -> 2번 유저정보를 줘! json 형태로(Accept) GET https://iamserver.com/api/users/2 Host: iamserver.com Accept: application/json // response -> 너가 말한 요청 이해했고(200), 응답보낸다~ Content-Type은 json이야! HTTP/1.1 200 OK Content-Length: 45 Content-Type: application/json { id: 2, name: 'Suhwa', nickName: 'Pur', }
  • Response로 온 값이 DB데이터 그 자체가 아니라, 현재 시점에서 데이터의 상태를 주고받음
    • 현재시점에선 이름이 Suhwa → 이름변경 CS → 이름변경 api로 변경됐다고 알려주지 않나요?
    • 원본 데이터를 받아왔다면, 알려줄 필요가 없죠! 하지만 DB의 상태를 주고받기때문에 변경됐다고 api로 알려주는 거죠!
  • 즉, 서버가 보내준 JSON은 데이터베이스에 저장되어있는 원본 데이터 리소스의 현재 상태를 표현한 것
✨
위에 적힌 Accept, Content-Type 같은 부분은 “HTTP 완벽가이드”책 참고해서 학습해보는 거 추천
❓
어떻게 엔드포인트를 정해야 서버/클라이언트가 소통하기 좋을까? Roy Fielding 아저씨: hey, how about REST concept?
notion image

RESTful API

REST 아키텍쳐 스타일에 부합하는 api
  • REST 아키텍쳐: Client-Server, Stateless, Cache, Uniform Interface, Layered System, Code-On-Demand 등
  • 핵심 포인트는, 리소스를 주고받을 때 어떻게하면 더 명확하게 표현할 수 있을지
  • 이해하기 쉬운 엔드포인트에 집중하는 아키텍쳐 스타일
 
✨
100번째 사용자의 이메일을 수정해주세요
  • 어떤 리소스? 100번째 사용자 이메일
  • 어떤 행위? 수정

URI를 통해 어떤 리소스인지 표현

URI: Uniform Resource Identifiers
GET /users/2/profile-image
  • 리소스 간의 계층구조를 / 를 사용해 표현함
    • 뒤로 갈수록 하위계층구조
      • notion image
 
  • 행위가 표현되면 안됨 → 행위는 HTTP 메서드가 담당
    • POST /users/2/delete // 생성인지? 삭제인지?
 

HTTP 메서드를 통해 어떤 행위인지 표현

  • 대부분 CRUD에 기반한 아래 5가지 메서드를 많이 사용
    • GET
      리소스 조회
      PUT
      리소스 전체 수정
      DELETE
      리소스 삭제
      POST
      리소스 생성
      PATCH
      리소스 일부 수정

정리

  • RESTful API는 엔드포인트의 가이드라인(엔드포인트 표준규칙)
  • 엔드포인트에 필요한 리소스 / 행위를 각각 따로 담당
      1. 어떤 리소스인지? - URI
      1. 어떤 행위인지? - HTTP 메소드(get, post, put, delete…)
  • RESTful API, 엔드포인트만 봐도 어떤 동작을 하는 API인지 이해할 수 있을 정도로 명확한 API
 

참고자료

프론트엔드와 백엔드가 소통하는 엔드포인트, RESTful API
이번 포스팅에서는 프론트엔드 개발자와 백엔드 개발자가 만나는 지점인 API에 대한 이야기를 해보려고한다. 일반적으로 앱이나 웹 상에서 작동하는 어플리케이션을 개발할 때는 주로 HTTP나 HTTPS 프로토콜을 사용하여 API를 만들게 되는데, 이 API의 정의가 얼마나 직관적이고 명확하냐에 따라 프로젝트의 복잡도가 크게 낮아지게 될 만큼 시스템 설계에 있어서 꽤나 중요한 자리를 차지하고 있다.
프론트엔드와 백엔드가 소통하는 엔드포인트, RESTful API
https://evan-moon.github.io/2020/04/07/about-restful-api/
프론트엔드와 백엔드가 소통하는 엔드포인트, RESTful API
REST
REST
https://ko.wikipedia.org/wiki/REST
REST
 

추천자료

  • RESTful 개념을 최초로 제안한 논문
    • Architectural Styles and the Design of Network-based Software Architectures
      Architectural Styles and the Design of Network-based Software Architectures
      https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
  • RESTful 영상자료 (47분)
    • Day1, 2-2. 그런 REST API로 괜찮은가
      더욱 다양한 영상을 보시려면 NAVER Engineering TV를 참고하세요. https://tv.naver.com/naverd2
      Day1, 2-2.  그런 REST API로 괜찮은가
      https://www.youtube.com/watch?v=RP_f5dMoHFc&ab_channel=naverd2
      Day1, 2-2.  그런 REST API로 괜찮은가