1. RESTful은 REST 원칙을 지켜서 설계된 API를 RESTful API라고 부름 다시 말하면 RESTful은 일관성 있는 설계를 위한 규칙세트이다.

    REST란

    1. 특징

      1. 자원 기반
        1. 모든 데이터를 자원으로 보고 URI로 식별
      2. 행위 명확
        1. HTTP 메서드를 활용해 자원에 대한 행위 표현
        2. GET /users 사용자 목록 조회
        3. POST /users 사용자 생성
        4. PUT /users/1 사용자 수정
        5. DELETE /users/1 사용자 삭제
      3. 무상태성
        1. 서버는 클라이언트 상태를 보관하지 않음
        2. 클라이언트의 상태를 보관하지 않으니까 요청마다 필요한 정보를 담아야 함
      4. 계층 구조
        1. 클라이언트는 서버의 내부 구조(데이터베이스, 캐시 서버 등)에 신경 쓸 필요 없음
      5. 캐시 가능
        1. GET 응답은 캐시 가능 → 성능 향상
    2. 장점

      HTTP 메서드와 URI 규칙으로 직관적 설계

      1. 클라이언트랑 서버 부리로 독립 개발 가능
      2. 여러 플랫폼/ 언어에서 사용 가능
      3. 캐시 활용 가능으로 GET 조회할 때 좀더 빠르게 조회함
    3. 단점

      1. 표준이 없어서 무질서할 수도 있음(RESTful 규칙을 안지키면)
      2. 요청마다 데이터를 담아야 되서 데이터 크기가 커질수 있음 → 그러면 프로그램 속도가 느려질 수도 있음
      3. 대규모 API 설계시 엔트포인트 관리가 복잡해짐
    4. 예시

      GET /users → 사용자 목록 조회
      GET /users/1 → 특정 사용자 조회
      POST /users → 사용자 생성
      PUT /users/1 → 사용자 수정
      DELETE /users/1 → 사용자 삭제