๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํšŒ๊ณ 

[KPTF] : 5์ฃผ์ฐจ Node.js ์ž…๋ฌธ.

by ๊ถŒ์Šพํ–„ 2023. 6. 19.

https://github.com/Yooonzero/3-personal-assignment-create-backend-server

 

GitHub - Yooonzero/3-personal-assignment-create-backend-server: 3. Node.js ์™€ Express๋กœ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์ด ์—†๋Š” ๋‚˜๋งŒ์˜

3. Node.js ์™€ Express๋กœ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์ด ์—†๋Š” ๋‚˜๋งŒ์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ. Contribute to Yooonzero/3-personal-assignment-create-backend-server development by creating an account on GitHub.

github.com


์ด๋ฒˆ ์ฃผ ๋‚ด๊ฐ€ ํ•œ์ผ
  • node.js ์ž…๋ฌธ ์ฃผ์ฐจ ๊ฐ•์˜ ์™„๊ฐ•
  • express๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ตฌํ˜„ํ•˜๊ธฐ.
  • mongoose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ db ๊ตฌ์ถ• ํ•˜๊ณ , CRUD ๊ธฐ๋Šฅ ์‹คํ˜„ ๋ฐ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ.
  • markdown ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ README.md ํŒŒ์ผ ์ž‘์„ฑ

Keep
  • ๋‚˜์˜ค๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ํ•ด์„ํ•ด๋ณด๊ธฐ.
  • chat GPT๋ฅผ ์ด์šฉํ• ๋•Œ๋Š” ๋‚ด๊ฐ€ ๋ชจ๋ฅด๋Š” ๋‹จ์–ด์˜ ํ•ด์„์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์„ ์ง€ํ–ฅํ•˜๊ธฐ.
  • ํ•œ ๊ฐ€์ง€์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„์‹œํ‚ค๋”๋ผ๋„, ์ •์ƒ์ž‘๋™๋ถ€ํ„ฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊นŒ์ง€ ์™„๋ฒฝํ•˜๊ฒŒ ์†Œํ™”ํ•ด ๋‚ผ ๊ฒƒ.
  • github์— ์ฃผ๊ธฐ์ ์œผ๋กœ ์ปค๋ฐ‹ํ•˜๋ฉด์„œ, ๋ณ€๊ฒฝ์‚ฌํ•ญ ๊ธฐ๋กํ•ด๋‘๊ธฐ.

Problem
  • ๊ฐœ์ธ๊ณผ์ œ ๋ฐœ์ œ ๋‚ด์šฉ๊ณผ API๋ช…์„ธ๋ฅผ ์ €๋กœ ๋น„๊ตํ•˜๋ฉด์„œ ์ž‘์—…์„ ํ•˜์ง€ ์•Š์•˜๋‹ค.
  • try ~ catch ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ฝ”๋“œ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ถœ๋ ฅ์‹œํ‚ฌ ๋ฉ”์‹œ์ง€๊ฐ’์ด ์ •ํ™•ํ•˜๊ฒŒ ๊ตฌํ˜„์ด ์•ˆ๋จ.
  • async, await ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„ db์ ‘๊ทผํ•ด์„œ ์กฐํšŒ๋ฅผ ํ•ด์˜ค๋Š” ๋กœ์ง์ด ์‹คํ˜„์ด ์•ˆ๋จ.
  • db์— ์Œ“์•„๋†“์€ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•ด์„œ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋กœ์ง ๊ตฌํ˜„์— ๋Œ€ํ•œ ์–ด๋ ค์›€.
  • ์ƒ์„ฑ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ํ•˜๋ฉด์„œ, ๊ธฐ๋Šฅ์€ ์ž‘๋™์„ ํ•˜๋‚˜, ํ•œ ๋ฒˆ์˜ ์ƒ์„ฑ์„ ๋งˆ์น˜๋ฉด ์ž๋™์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์˜ค๋ฅ˜ ํ•ด๊ฒฐ์ด ์•ˆ๋จ.

Try
  • ์ฒ˜์Œ ๋ฐœ์ œ๋‚ด์šฉ๋งŒ ๊ฐ€์ง€๊ณ  ์ฝ”๋“œ๋ฅผ ์ง  ํ›„์—, ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„๋งŒ ์บ์น˜ํ–ˆ๋‹ค๋Š” ๋А๋‚Œ์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ , ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ฒ˜์Œ๋ถ€ํ„ฐ API๋ช…์„ธ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์ƒˆ๋กญ๊ฒŒ ๋กœ์ง์„ ๊ตฌํ˜„์‹œ์ผœ๋ด„.
  • try ~ catch ๋ฌธ์„ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ, ์˜ค๋ฅ˜๊ฐ’์ด ์ถœ๋ ฅ์ด ์•ˆ๋˜๋Š” ๋กœ์ง์—์„œ๋Š” if๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„.
  • ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•˜๊ณ  ์š”์ฒญํ•œ ๊ฐ’์ด ์„œ๋ฒ„๊ฐ€ db์— ์ ‘๊ทผ์„ ํ•ด์„œ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ผ๋ฉด , async ์™€ await์„ ์‚ฌ์šฉํ•ด์„œ ๋™๊ธฐ์ ์œผ๋กœ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž.
  • db๋ฐ์ดํ„ฐ ์กฐํšŒ์— ๋Œ€ํ•œ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ, ๊ฐœ์ธ์ ์œผ๋กœ ์ฝ”๋“œ์— ์ด์ƒ์ด ์—†๋‹ค๋Š” ๋А๋‚Œ์ด ๋“ ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ํŒŒ์•…ํ•˜๊ณ , ์ง€๊ธˆ ์ด๊ฒŒ ๋‹จ์ˆœ ์ฝ”๋“œ์˜ ๋ฌธ์ œ์ธ์ง€ ์•„๋‹ˆ๋ฉด ๋กœ์ง์ด ์ฒ˜๋ฆฌ๋˜๋Š” ์ˆœ์„œ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”๊ฒƒ์ธ์ง€ ํ™•์ธํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์ด์ž.
  • ์ž๋™ ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์˜ค๋ฅ˜ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋งŽ์€ status ์ฒ˜๋ฆฌ๋‚˜, send๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ๋ณด๋‚ผ๊ฒฝ์šฐ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋“ค์ด๋‹ค. ์ฝ”๋“œ๋ฅผ ๊ฐ„๋žตํ™” ์‹œ์ผœ์„œ ์„œ๋ฒ„์— ๋งŽ์€ ์š”์ฒญ์„ ํ•œ๋ฒˆ์— ๋ณด๋‚ด์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

Feel
  • ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ์— ๋Œ€ํ•ด์„œ ๋ณด๋‹ค ๋” ์ดํ•ดํ•˜๋Š” ์ฃผ์ฐจ๊ฐ€ ๋˜์—ˆ๋‹ค.
  • try ~ catch ๋ฌธ์€ ํŽธํ•˜๊ฒŒ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ํ•ด์„œ ์›ํ•˜๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ํ•œ๋ฒˆ์— ๋งŽ์€ ์š”์ฒญ์„ ๋ณตํ•ฉ์ ์œผ๋กœ ์„œ๋ฒ„์— ๋ณด๋‚ด๋ฉด ์ข…๋ฃŒ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์šฐ์„  ๊ธฐ๋Šฅ์„ ์‹คํ˜„์‹œํ‚ค๊ณ , ํ•˜๋‚˜ํ•˜๋‚˜ ์ปค๋ฐ‹์„ ์Œ“์•„๊ฐ€๋ฉด์„œ ์ˆ˜์ •์„ ํ•ด๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด ๋ณด๋‹ค ๋„์›€์ด ๋งŽ์ด ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋А๊ผˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ - db - ์„œ๋ฒ„ - ํด๋ผ์ด์–ธํŠธ ์˜ ์ˆœ์„œ๋ฅผ ํ•ญ์ƒ ์ƒ๊ฐํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค.
  • markdown ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ README๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด, ๋ณด๋‹ค ๊ฐ€๋…์„ฑ์ด ์ข‹๊ฒŒ ๋‚ด ์ฝ”๋“œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

โ€‹

โ€‹

#wil #5์ฃผ์ฐจ #node_์ž…๋ฌธ