이번 주차는 여러모로 바빴다. 추석도 껴있었고 주특기 기초 주차가 시작되는 주이기도 했다. 참고로 필자는 Node.js를 선택했다.Node.js를 선택한 이유는 백엔드,서버에 대해서 폭넓고 빠르게 이해하고 직접 만들어보고 싶었다. 그리고 자바스크립트를 기반으로 하기 때문에 진입 장벽이 리액트,스프링보다 낮다고 생각했다.
하지만 공부해보니 역시 자바스크립트도 만만치 않았다. 문법을 공부했다고 했는데 모르는 문법이 수두룩 나온다. 뭔가 파이썬이랑은 또 다른 느낌이었다. 아무튼 아직도 개념을 익히는데 초점을 두고 열심히 한다고 하지만 막막하다.
코드를 봐도 이게 무슨 의미인지 잘 모르는 경우가 다반사다.
배운 내용중 Restful API, package.json 개념이 있다.
보통 rest하면 '쉬다','휴식하다'라는 뜻이라고 알고있을것이다.
하지만 여기서의 뜻은 “Representational State Transfer”
즉,자원을 자원(resource)의 표현(representation) 으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.
RESTful API를 통해 요청이 수행될 때 RESTful API는 리소스 상태에 대한 표현을 요청자에게 전송한다. 이 정보 또는 표현은 HTTP: JSON(Javascript Object Notation), HTML, XLT 또는 일반 텍스트를 통해 몇 가지 형식으로 전송된다.
JSON은 그 이름에도 불구하고 사용 언어와 상관이 없을 뿐 아니라 인간과 머신이 모두 읽을 수 있기 때문에 가장 널리 사용된다.
자원(Resource): URI
모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
자원을 구별하는 ID는 ‘/groups/:group_id’와 같은 HTTP URI 다.
Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청한다.
행위(Verb): HTTP Method
HTTP 프로토콜의 Method를 사용한다.
HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드를 제공한다.
표현(Representation of Resource)
Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.
REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 Representation으로 나타내어 질 수 있다.
JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.
package.json은 프로젝트의 정보를 정의하고, 의존하는 패키지 버전 정보를 명시하는 파일을 말하는데,일반적으로 루트 디렉토리에 위치한다.
작성되는 정보를 크게 2개로 나누면 프로젝트 정보, 패키지 정보로 나눌 수 있다.