ํ์ผ๊ตฌ์กฐ & Backend ์์
ํ๋ก์ ํธ ์๊ฐ
๊ณต๋ถ๋ชฉ์ ์ผ๋ก ๊ธธ ๊ณ ์์ด๋ค์ ์ฌ์ง์ ์ฐ์ด์ ์์น์ ์ฌ์ง์ ๊ณต์ ํ ์ ์๋ ์ฑ์ ๋ง๋ค๊ณ ์๋ค.
UI๋ ์ด๋์ ๋ ๋ง๋ค์๊ณ ์ด์ DB์ ์๋ฒ๋ฅผ ์ฐ๊ฒฐ์ํค๋ ์์
์ ์์ํ๊ฒ ๋์ด์ ๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
์์ผ๋ก
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๊ณต๋ถํ๋๊ฒ๋ค์ ๊ธฐ๋กํ๋ ค๊ณ ํ๋ค.
์ ๋ถ๋ ์๋์ง๋ง ํ๋ฉด์ ์ด๋ ค์ ๋ ๊ฒ(๋ชจ๋ ์ฌ์ฉ๋ฒ, ๊ฐ๋
๋ฑ)์ ์์ฃผ๋ก ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
Node js ์ฝ๋ฉ ํจํด
์ฐ์ ์๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ Routes-Controllers-Services ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด์ Node๋ฅผ ๊ตฌ์ฑํ๋ ค๊ณ ํ๋ค.
Node.js ์ฝ๋ฉ ํจํด (Routes-Controllers-Services ๊ตฌ์กฐ)
์ ํ์ผ ๊ตฌ์กฐ๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ๋ง๋ค์ด๋ณธ ํ์ผ ๊ตฌ์กฐ์ด๋ค. ํ๋์ฉ ๊ตฌ์ฑ์ ๋ณด๋ฉด,
server.js์ local.js๋ express๋ฅผ ์ด์ฉํด์ localhost์ port ๋ฒํธ๋ฅผ ๋ฃ์ด์ ์๋ฒ๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉํ router๋ฅผ ์ค์ ํด์ค๋ค.
server.js
local.js
๋ค์์ผ๋ก router์ด๋ค.
router๋ localhost:3000/test , localhost:3000/ ์ฒ๋ผ "/test"๊ฐ ์ค๋ฉด ์ด๋ค ํ๋์ ํ ์ง "/"๊ฐ ์ค๋ฉด ์ด๋ค ํ๋์ ํ ์ง ๊ธธ์ ์ก์์ฃผ๋ ๋๋์ด๋ค.
๋๋ ์ด๋ฌํ ์ด๋ค ํ๋์ ํ ์ง๋ฅผ controller์ ๋ฐ๋ก ์ค์ ํด ์ฃผ์๋ค.
controller์์๋ request๋ฅผ ์ฒ๋ฆฌํด์ response๋ฅผ ๋ณด๋ด์ฃผ๋ ์ญํ ์ด๋ค. default์๋ ์๋ฒ๋ฅผ ์คํํด์ localhost:3000์ ๋ค์ด๊ฐ๋ฉด "Express Lambda Example Server"๋ฅผ ์ถ๋ ฅํด์ฃผ๋๋ก ํ์๋ค.
pool.js์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ฒ(mysql)์ nodejs์๋ฒ๋ฅผ ์ฐ๊ฒฐํด ์ฃผ๋ ์ฝ๋์ด๋ค.
mysql2 ๋ชจ๋์ ์ด์ฉํด์ ์ฐ๊ฒฐํด์ฃผ๋๋ฐ, host์ด๋ฆ๊ณผ port๋ฒํธ user์ด๋ฆ password, ์ฌ์ฉํ database์ด๋ฆ์ ๋ฃ์ด์ฃผ์๋ค. mysql2/promise๋ async/await๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
services ๋ถ๋ถ์ controllers์์ ๋ค์ด์จ ์์ฒญ์ ๋ฐ๋ผ์ ์ ์ ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์ญํ ์ ํ๋ค.
queries์์๋ services์์ ์ฌ์ฉ๋๋ ์ฟผ๋ฆฌ๋ค์ ๋ชจ์์ ์ ๋ฆฌํจ์ผ๋ก์จ ์ค๋ณต์ ์ค์ด๋ ค๊ณ ํ๋ค.
'Back-end' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Slack์ผ๋ก OAuth ์ฌ์ฉํ๊ธฐ (0) | 2022.10.31 |
---|---|
[HTTP] ์๋ต ์ํ ์ฝ๋ ์ ๋ฆฌ (0) | 2021.09.14 |
[REST API]REST API๋? (0) | 2021.08.29 |
[WEB] HTTPS์ SSL์ธ์ฆ์ (0) | 2021.08.29 |
[WEB] HTTP ์ ๋ฆฌ (0) | 2021.08.29 |