WIL 3주차 (2022-01-30)

ccy·2022년 1월 30일
0

Week I Learned (WIL)

목록 보기
3/5
post-custom-banner

백엔드 노드 js 를 배우면서 이번주에는 REST API를 만들어서 CRUD하는 작업을 진행했었다.

파이썬에서는 pip을 하여 모듈? 인터프레터? 를 설치하는것이라면

자바스크립트에는 npm이 있다. 이것들을 사용하여 내 프로젝트의 package.json(npm인경우) 내 프로젝트의 사용될 모듈들을 저장하는것이고, 모듈의 버전들이 저장되어있기 때문에, 다른사람이 내 프로젝트에서 작업할때 같은 모듈의 버전을 다운받아서 사용하게 된다.

백엔드를 하면서 REST API를 구현해보았다.

REST API란

REST API 에서 REST는 Representational State Transfer 의 약자로 소프트웨어 프로그램 아키텍처의 한 형식 입니다.
즉, 자원을 이름 (자원의 표현) 으로 구분하여 해당 자원의 상태 (정보)를 주고 받는 모든 것을 의미한다.
월드 와이드 웹 (WWW) 과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식
REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.

REST API 개념

  • HTTP URI를 통해 자원을 명시하고, HTTP Method (POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD OPERATION을 적용하는 것을 의미한다.
  • 즉, REST는 자원 기반의 구조 (ROA: Resource Oriented Architecture) 설계의 중심에 Resoure가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다.
  • 웹의 모든 자원에 고유한 ID인 HTTP URI 를 부여한다.

REST API등장

  • 최근의 서비스 / 애플리케이션의 개발 흐름은 멀티 플랫폼, 멀티 디바이스 시대로 넘어와 있습니다. 단순히 하나의 브라우저만 지원하면 되었던 이전과는 달리, 최근의 서버 프로그램은 여러 웹 브라우저는 물론이며, 아이폰, 안드로이드 애플리케이션과의 통신에 대응할 수 있어야 합니다.
  • 따라서 플랫폼에 맞추어 새로운 서버를 만드는 수고를 들이지 않기 위해 범용적으로 사용성을 보장하는 서버 디자인이 필요하게 되었습니다.

Rest API에서 Restful 이란

  • REST API’를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있다.

  • RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아니다.
    즉, REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다

  • RESTful APIs 개발하는 가장 큰 이유는 Client Side를 정형화된 플랫폼이 아닌 모바일, PC, 어플리케이션 등 플랫폼에 제약을 두지 않는 것을 목표로 했기 때문 입니다.

  • 스마트 기기들이 등장하면서 TV, 스마트 폰, 테블릿 등 Client 프로그램이 다양화 되고 그에 맞춰 Server를 일일이 만다는 것이 꽤 비효율적인 일이 되어 버렸다.

  • 이런 과정에서 개발자들은 Client Side를 전혀 고려하지 않고 메시지 기반, XML, JSON과 같은 Client에서 바로 객체로 치환 가능한 형태의 데이터 통신을 지향하게 되면서 ServerClient의 역할을 분리하게 되었다.

이런 변화를 겪으면서 필요해진 것은 HTTP 표준 규약을 지키면서 API를 만드는 것이다.

REST의 구성

  • 자원(Resource) - URL
  • 행위(Verb) - Http Method
  • 표현(Representations)

    자원 (Resource) URL

    • 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
    • 자원을 구별하는 ID는 /orders/order_id/1 와 같은 HTTP URI 이다.

행위 (Verb) - Http Method

  • HTTP 프로토콜의 Method를 사용한다.
  • HTTP 프로토콜은 GET, POST, PUT, DELETE와 같은 메서드를 제공한다.

표현 (Representaion of Resource)

  • Client가 자원의 상태 (정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답 (Representation)을 보낸다
  • REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 Representation으로 나타낼 수 있다.
    -현재는 JSON으로 주고 받는 것이 대부분이다.

profile
개발배우는중
post-custom-banner

0개의 댓글