이번 주 배운 것들 리마인드, 중요한 개념정리
이번주 배운 것
1. jwt, refresh token (토큰 인증 방식의 로그인 흐름과 refresh token을 통한 방어적인 프로그래밍)
2. swagger
3. 관계형 디비인 mysql, 그리고 orm인 sequelize (sequezile의 db:migrate과 model 설정을 통한 싱크 맞추기)
Restful API
- Restful API (restful 하다 -> 내가 사용할 자원을 주로 구성된다.)
- restful하다는 것은 rest라는 구조를 구현한 웹 서비스를 나타낸다. 이러한 rest라는 구조는 api 설계를 통해 나타난다.
- rest란 “Representational State Transfer” 의 약자로 자원을 이름으로 구분하여 자원의 상태를 주고 받는 모든것을 의미한다고 하는데, 정리하자면 사용할 자원이 이름이고, 자원으로 할 작업이 method인 규칙을 따르는 api라고 할 수 있다.
- 해서 api의 uri를 자원의 이름으로 정하고, 자원으로 할 작업을 CRUD로 구분하여 정해놓은 메소드를 사용한다.
- 자원 -> url, 동작 -> method 로 구분한다. 또한 각 자원마다 나뉘기 때문에 생각하기도 편하겠죠?!
- 정해놓은 메소드
- CRUD Operation
Create : 생성(POST)
Read : 조회(GET)
Update : 수정(PUT, PATCH)
Delete : 삭제(DELETE)
package.json
- 우리가 node로 프로젝트를 진행할 시에, 해당 프로젝트에 대한 전반적인 정보와 그 프로젝트가 의존(사용)하고 있는 패키지들에 대한 정보를 명시해 주는 파일이다.
간단한 예시로 내가 진행한 프로젝트의 package.json 파일을 살펴보자.
- 상단 부의 이름, 버전, 상세 설명, 시작점 파일, cli 명령어 지정, 작성자, 저작권 허용 범위 등 프로젝트에 대한 전반적인 정보를 표시한다.
- dependencies 부터 이 프로젝트가 의존(사용)하고 있는 패키지들을 작성하여 해당 프로적트를 구성하기 위해서는 어떠한 환경이 주어져야 하는지 알 수 있게 한다.
-> 이처럼 package.json은 해당 프로젝트를 처음 보는 사람들로 하여금 대충 이것이 어떤 프로젝트이며, 어떤 특성을 가졌고, 어떠한 환경에서 실행 가능한 프로젝트인지를 한번에 인지할 수 있게 한다. 또한 이러한 패턴을 모두가 공유하고 통용하기 때문에 누구나 금방 프로젝트에 대해 인지할 수 있다.