[MEMO APP] Back-end/ํ๊ฒฝ์ค์ (2)
๐จ ์นํ๋ ์์ํฌ ์ค์น Koa
index.js์์ ์๋ฒ๊ด๋ จ ์์ค์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ์ด๋ฅผ ๋์์ฃผ๋ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค.
back-end์์ ์ด๋ฒ์ ์ฌ์ฉํ ํ๋ ์์ํฌ๋ koa๋ผ๋ ํ๋ ์์ํฌ์
๋๋ค. ๋ฌผ๋ก node์์๋ express๊ฐ ์ ์ผ ์ ๋ช
ํ๋.. ๊ฐ์ ์ ๋จ? ํ์ฌ? ์์ ํ์ฌ๋ ๊ฐ๋ณ๊ธฐ๋ ํ์ง๋ง ์ด๊ฒ์ ๊ฒ ๋ง์ด ์ ๊ณตํด์ ๋ฌด๊ฑฐ์ด express๋์ ์ ๋น๋๊ธฐ์๊ฐ์ ๊ธฐ๋ฅ์ ๋ณด๊ฐํด์ ๋ค์๋ง๋ koa๋ฅผ ์ถ์ํ์ต๋๋ค. (์ ๋ ์์ ๋ชฐ๋ผ์ ใ
ใ
) koa๋ REST API์ฉ ์๋ฒ๋ฅผ ๋ง๋ค๋ ๊ฐํ๋ค๋ ์ฅ์ ์ด ์๋ค๊ณ ํ๋ ์ด๊ฒ์ ์ฑํํด ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
yarn ์์ฐ์ ๋ค๋ฉด yarn add koa koa-router, npm์ ์ฐ์ ๋ค๋ฉด npm i koa koa-router๋ฅผ ์ ๋ ฅํด์ค๋๋ค.
์ค์น๊ฐ ๋์ จ๋ค๋ฉด VSCODE์์ index.jsํ์ผ์ ์ด์ด์ฃผ์ธ์
์ผ๋จ koa ํ๋ ์์ํฌ๊ฐ ์ต์์น์์ ๋ด๋น์ด๊ธฐ ๋๋ฌธ์ ์ ์๋๋ก koa document๋ฅผ ๋ง์ด ์ฐธ๊ณ ํ์ฌ ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
(๋ชจ๋ฅด๋๊ฑด ์ง๋ฌธํด๋ ์ข์ผ๋, ๋ต๋ณ์ ๋ชปํ ์๋ ์์ด์ ใ ใ ... ๋ต๋ณ์ด ๊ฐ๋ฅํ๋๋ก ์ด์ฌํ ๊ณต๋ถํ ๊ฒ์.)
์ผ๋จ ๊ณต์๋ฌธ์๋ฅผ ๋ณด์ํ๋ ๊ธฐ์กด์ ์ฌ์ฉํ๋ express๋ฌธ๋ฒ๊ณผ ๊ฑฐ์ ํก์ฌํฉ๋๋ค. ๋ค๋ฅธ์ ์ด๋ผ๋ฉด ๋ฏธ๋ค์จ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ์ ๋ง ์กฐ๊ธ์ ๋ฌธ๋ฒ์ ๋..?
const Koa = require('koa');
// app์ ์์ฑํด์ค๋๋ค.
const app = new Koa();
// ์๋ฒ์์ ์ฌ์ฉํ ํฌํธ๋ฅผ ๋ถ๋ฌ์ต๋๋ค.
const port = 4000;
// test ์๋ต
app.use(async (ctx) => {
ctx.body = 'Hello World';
});
// app์ ํ์ฑํ์ํ์ ๋ก๋๋ค.
app.listen(port);
์ผ๋จ ์์ ์์ค์ฝ๋๋ฅผ index.js์ ์ ์ฅํ๊ณ ์ฝ์์๊ฐ์ node index.js๋ฅผ ํตํด ์คํ์์ผ ๋ด ์๋ค.
(์คํ ํ ๋ธ๋ผ์ฐ์ ๋ก๊ฐ์ http://localhost:4000/ ๊ฒฝ๋ก๋ก ์ ์์ ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ด ๋ฌ๋ค๋ฉด ์ฑ๊ณต์ ๋๋ค.)
์ผ๋จ koa๋ฅผ ์ฌ์ฉํ๋๋ฐ๊น์ง ์ฑ๊ณตํ์ต๋๋ค. ์กฐ๊ธ ์์ฌ์ด์ ์ ์ฝ์์ฐฝ์์ ์๋ฒ๊ฐ ์คํ์ค์์ ๋ํ๋ด๋ ๋ฌธ๊ตฌ๊ฐ ๋์์ผ๋ฉด ์ข๊ฒ ๋ค์. ๊ทธ๋์ ์์ค์ฝ๋๋ฅผ ์กฐ๊ธ ์์ ํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ด๋ณผ๊ฒ์.
const Koa = require('koa');
// app์ ์์ฑํด์ค๋๋ค.
const app = new Koa();
// ์๋ฒ์์ ์ฌ์ฉํ ํฌํธ๋ฅผ ๋ถ๋ฌ์ต๋๋ค.
const port = 4000;
// test ์๋ต
app.use(async (ctx) => {
ctx.body = 'Hello World';
});
// app์ ํ์ฑํ์ํ์ ๋ก๋๋ค.
app.listen(port, () => {
console.log(`โ
MEMO server is listening http://localhost:${port}`);
});
์์ฃผ ์ข์ต๋๋ค. ์ค๋์ ์ฌ๊ธฐ๊น์ง ํฌ์คํ ์ ๋ง์น๊ณ ๋ค์ ํฌ์คํ ์์๋ ์๋์ ์ผ๋ค์ ์ฒ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ Todo List
* nodemon์ค์
* ์ฐ๋ฆฌ์ app์ ์ํ ๊ธฐ๋ณธ์ ์ธ ๋ณด์๋ฏธ๋ค์จ์ด ์ถ๊ฐ
* REST API์ ๊ฐ URL์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ํ router ์ค์
'Gorilla-Kim > Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MEMO APP] Back-end/ DB์ฐ๊ฒฐ (1) (0) | 2020.03.16 |
---|---|
[MEMO APP] Back-end/ ๋ผ์ฐํ (2) (0) | 2020.03.15 |
[MEMO APP] Back-end/์๋ฒ๊ตฌ์ถ (2), ๋ผ์ฐํ (1) (0) | 2020.03.13 |
[MEMO APP] Back-end/์๋ฒ๊ตฌ์ถ (1) (0) | 2020.03.13 |
[MEMO APP] Back-end/ํ๊ฒฝ์ค์ (1) (0) | 2020.03.12 |