๐ ์ฝ๋ ํ๋ฆฌํฐ ์ฌ๋ฆฌ๊ธฐ
1๏ธโฃ response ํฌ๋งท ํต์ผ (snake > camel) , status code ...
2๏ธโฃ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ณต ์ฝ๋ => ๋ชจ๋ํ
ex. UserController / User ( ๋ฐ์ดํฐ ๋ชจ๋ = Model ) - CRUD
cf. DB ๋ชจ๋: mysql => ๋ชฝ๊ตฌ์ค, ์ํ๋ผ์ด์ฆ
3๏ธโฃ ํจํค์ง ๊ตฌ์กฐ
1) Router : ๊ฒฝ๊ณ (URI, URL) ์ HTTP method ๋ก ์์ฒญ์ ๋ฐ๋ฅธ ๊ฒฝ๋ก๋ฅผ ์ฐพ์์ฃผ๋ ์ญํ
2) Controller: ๊ธธ ๋งค๋์ - ์์ฒญ์ ํ์, ์ง์ ์ผ์ ํ์ง ์์
3) Service : ์ง์ ์ผ์ ํ๊ณ ex. ์ด๋ค ์ฟผ๋ฆฌ๋ฅผ ๋ถ๋ฅผ์ง
4) Model : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํต => query ์งํฉ
4๏ธโฃ โจ ์์ธ์ฒ๋ฆฌ( try / catch) ๋ ํด์ค ๊ณณ ์๋์ง
5๏ธโฃ ์ ํจ์ฑ ๊ฒ์ฌ ์ถ๊ฐ
6๏ธโฃ jwt (์ฌํ) : access ํ ํฐ์ด ๋ง๋ฃ๊ฐ ๋๋ฉด, '๋ก๊ทธ์ธ ์ฐ์ฅ?'
* ๋ก๊ทธ์ธ ์ access token(30m) , refresh token(24h)
1) access token : ๋ก๊ทธ์ธํ ์ฌ๋์ธ์ง ์ธ์ฆ
2) refresh token : ๋ก๊ทธ์ธ ์ฐ์ฅํ๋ ์ฉ๋
๐ฉ๐ป๐ป ๋๋ค ๋ฐ์ดํฐ ์์ฑ API ์ฌ์ฉํด๋ณด๊ธฐ
๊ฐ์
๋๋ค ๋ฐ์ดํฐ๋ฅผ ์์ฑํด์ฃผ๋ API (์ธ๋ถ API) ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก "๊ฐ์ง ์ฌ์ฉ์ ์ ๋ณด ์์ฑ" API
๋ด์ฉ
1) ๋๋ค ๋ฐ์ดํฐ ์์ฑ API (๊ฐ์ง ์ฌ์ฉ์, ๊ฐ์ง ์ํ, ๊ฐ์ง ์ ํ๋ฒํธ ๋ฑ๋ฑ .. )
2) ๊ฐ์ง ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์์ฑํ๋ Express ์น /์ฑ API
* ๋๋ค ๋ฐ์ดํฐ ์์ฑ API
faker ์ฌ์ฉํด๋ณด๊ธฐ
์ํ๋ ์ฌ์ฉ์ ์๋งํผ ๊ฐ์ง ๋ฐ์ดํฐ ๋ง๋ค๊ธฐ
const express = require('express');
const app = express();
const { faker } = require('@faker-js/faker');
// localhost:5555/fake/users
app.get('/fake/users/', (req, res) => {
const {num} = req.query;
let index = 1;
let users = [];
while (index <= num) {
users.push({
email: faker.internet.email(),
password: faker.internet.password(),
fullName: faker.person.fullName(),
contact: faker.phone.number()
});
index++;
}
res.status(200).json(users);
});
app.listen(5555);
query ๋ก ์ ๋ ฅ ๋ฐ์ ์ซ์์ธ 3๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๐ ๋ฐฐ์ด ์
์ค๋ ๋๋์ด ๊ธธ๊ณ ๊ธธ์๋ ๋์ ํ๋งค ์ผํ๋ชฐ API ๊ตฌํ์ ๋ง์ณค๋ค. ๋ ์ด์ ๋ณด์ํ ์ ์ด ์๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ธ๊ฐ์ ๋ฃ๋ค ๋ณด๋ ์ฝ๋์ ํ๋ฆฌํฐ๋ฅผ ๋์ด๊ธฐ ์ํด ๊ณ ์น ๋ถ๋ถ์ด ๋ง๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ์ญ์ ํ ๋ฒ์ ์๋ฒฝํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ด๋ ค์ด ์ผ์ธ ๊ฒ ๊ฐ๋ค. ํญ์ ์ฝ๋๋ฅผ ๋ ๊น๋ํ๊ฒ ์์ฑํ ๋ฐฉ๋ฒ๊ณผ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ๊ณ ๋ฏผํ๋ ๊ฒ์ด ๊ฐ๋ฐ์์๊ฒ ์ค์ํ ์์ธ๋ผ๋ ์๊ฐ์ด ๋ ๋ค. ๋ํ, ์ค๋์ ๋๋ค ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ API๋ ์๋กญ๊ฒ ๋ฐฐ์ ๋๋ฐ, ํ๋ก์ ํธ์ ์ ํ์ฉํ๋ฉด ๋งค์ฐ ์ ์ฉํ ๊ฒ ๊ฐ๋ค.
'๋ฐ๋ธ์ฝ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฐ์คํฌ๋ฆฝํธ(2) (3) | 2024.10.23 |
---|---|
์๋ฐ์คํฌ๋ฆฝํธ (2) | 2024.10.21 |
Express-generator ๊ตฌ์กฐ (2) | 2024.10.02 |
JWT (6) | 2024.09.25 |
์ ํจ์ฑ ๊ฒ์ฌ (1) | 2024.09.24 |