๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Back-end

Android Studio + Node.js + MySQL ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ๊ตฌ์กฐ

๋ฐ˜์‘ํ˜•

ํŒŒ์ผ๊ตฌ์กฐ & 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