다재다능 개발자 성장기 🚀
항해99 👩💻13일차 TIL 본문
🎉오늘의 한 일🎉
- 어제에 이어서 Node.js 2주차 강의를 들으면서 다양한 개념을 공부하였다. 💪👩💻
🐣 Today I Learned 🐣
⭐ Routing의 이해 및 Router 학습
1) Router이란 ?
Router은 클라이언트의 요청 조건(메서드, 주소 등)에 대응해 응답하는 방식을 말한다.
2) Router이란?
클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 Express.js기본 기능 중 하나이다.
3) Router 사용해보기
- routes 폴더를 생성해 goods.js라는 파일을 생성한다.
- express에서 제공되는 Router함수를 사용해 Router를 생성해준다.
// app.js
const express = require('express');
const router = express.Router();
- Router미들웨어를 사용하겠다고 작성해준다.
app.use("/api", [goodsRouter]);
4) Router과 미들웨어의 차이
Router와 미들웨어는 서로 다른 방식처럼 보이지만 Router는 미들웨어 기반으로 구현된 객체이므로 미들웨어와 동일한 방식으로 작동된다.
⭐API와 REST API의 개념
1) API(Aplication Programming Interface)란?
API는 애플리케이션끼리 연결해주는 매개체이자 약속이라고 볼 수 있다.
2) 현실에서 API를 비유해보자면 ?
- 키보드로 글자를 입력하면 키보드는 우리가 작성한 글자를 컴퓨터에 전달해주는 역할을 한다. 우리가 키보드의 키를 누르는것이 API를 호출하는 것으로 볼 수 있다.
3) API를 작성한다는 의미는?
- 웹 어플리케이션(프론트엔드)에서 원하는 기능을 수행하는 URL과 인터페이스를 제공한다는 의미이다.
- 우리가 작성 할 API에서 원하는 데이터를 받아 데이터베이스에 데이터를 저장하고, 저장되어 있는 데이터를 읽어서 웹어플리케이션(프런트엔드)에 데이터를 제공하는 행위를 통해 사용자가 원하는 목적을 이룰 수 있게 해야한다.
4) REST API는 어떤 의미를 갖는 API인가?
- REST(Representational State Transfer) : 간단히 설명하자면 URL, Headers, Method등 네트워크 표현 수단을 사람이 봐도 이해하기 쉬운 표현으로 정의한다고 이해하면 된다. 또한 이 "REST 아키텍쳐"는 사람이 봐도 쉽게 이해할 수 있도록 "자원"을 정의하고 이 "자원"을 중심으로 표현을 구성하는 원칙을 제시한다.
- REST API는 "REST 아키텍쳐"라는 규칙을 따르는 API라고 생각하면 된다.
- REST API의 구성은 크게 세 가지로 이루어 진다.
1. 자원(Resource) - URL
우리가 만들 소프트웨어가 관리하는 모든 것을 자원으로 표현할 수 있다. 쇼핑몰이라면 상품(Goods)에 대해서 정보를 관리할 것이고 또는 장바구니(Carts)에 담긴 상품들도 관리한다.
2. 행위 - HTTP method
GET, POST등으로 해당 자원에 대한 행위를 표현할 수 있다.
Create : 생성(POST)
Read : 조회(GET)
Update : 수정(PUT)
Delete : 삭제(DELETE)
3. 표현
- 해당 자원을 어떻게 표현할지에 대한 설명이다. 보통 JSON, XML 같은 형식을 이용해서 자원을 표현한다.
- HTTP에서는 Content-Type 이라는 헤더를 통해 표현 방법을 서술한다.
4) REST API 예시
router.get('/books', (req, res) => {
res.json({ success: true, data: getAllBooks() });
});
- 위의 예시 코드는 /books 라는 URL을 통해 전체 책 목록을 불러와 응답해 주는 역할을 하는 API이다.
- 위는 API는 REST API의 관점에서 보았을때 URL로 리소스를 구분할 수 있고 다른 표현이 없으므로 전체 리스트를 불러오는것을 짐작 할 수 있다. 또한 CRUD중 Create를 담당하는 HTTP 메서드로 표현하여 REST한 API라고 볼 수 있다.
🍧느낀점🍧
API란 무엇이가에 대해서 항상 애매한 느낌이었는데, 이번 기회에 공부하면서 어떤 것인지에 대한 개념이 잡힌 것 같다. 이전에 공부했던 Spring과 비교하면서 공부하니까 개념들을 이해하기가 더 쉽고, 재미있는 느낌이다 🥰
'항해99_6기_TIL' 카테고리의 다른 글
항해99 👩💻15일차 TIL (0) | 2022.03.21 |
---|---|
항해99 👩💻14일차 TIL/WIL (0) | 2022.03.20 |
항해99 👩💻12일차 TIL (0) | 2022.03.20 |
항해99 👩💻11일차 TIL (0) | 2022.03.18 |
항해99 👩💻10일차 TIL (0) | 2022.03.16 |