๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กPrisma (3)

JUINTINATION

Express.js๊ณผ MVC ํŒจํ„ด, Controller & Service & Repository

MVC ํŒจํ„ด์ด๋ž€?MVC ํŒจํ„ด์€ ๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ(model–view–controller) 3๊ฐ€์ง€๋กœ ๋ถ„๋ฆฌ๋œ ํ˜•ํƒœ์˜ 3 Layer Architecture๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋””์ž์ธํŒจํ„ด์ด๋‹ค. ๊ฐ๊ฐ์˜ ๊ตฌ์„ฑ์š”์†Œ๋“ค ์‚ฌ์ด์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค. ๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ๋ชจ๋ธ, ๋ทฐ, ์ปจํŠธ๋กค๋Ÿฌ์˜ ๊ด€๊ณ„๋ฅผ ๋ฌ˜์‚ฌํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ผ๋ฐ˜์ ์ธ MVC ๊ตฌ์„ฑ์š”์†Œ ๋‹ค์ด์–ด๊ทธ๋žจ ๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ(model–view–controller, MVC)ko.wikipedia.org๋ชจ๋ธ(Model)์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ์ง€ ์ •์˜ํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ DB์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•œ ์—ฐ์‚ฐ์ฒ˜๋ฆฌ๊ฐ€ ์ฃผ๋œ ๋ชฉ์ ์ด๋‹ค.์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด DB์—์„œ ์‚ฌ์šฉ์ž๊ฐ€..

StudyNote 2024. 1. 20. 23:01
Express.js์™€ Prisma ORM์„ ์‚ฌ์šฉํ•œ CRUD API

API๋ž€?API(Application Programming Interface)๋ž€ ์ •์˜ ๋ฐ ํ”„๋กœํ† ์ฝœ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค. API๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๋ช… - AWSGraphQL์€ API์šฉ์œผ๋กœ ํŠน๋ณ„ํžˆ ๊ฐœ๋ฐœ๋œ ์ฟผ๋ฆฌ ์–ธ์–ด๋กœ์„œ, ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ์šฐ์„ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ API๋ฅผ ๋น ๋ฅด๊ณ  ์œ ์—ฐํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž ์นœํ™”์ ์œผ๋กœ ๋งŒ๋“ค๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. RESaws.amazon.comAPI๋ผ๋Š” ์šฉ์–ด๋ฅผ ์ฒ˜์Œ ๋“ค์—ˆ์„ ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ๋ณด๊ฒŒ๋˜๋Š” ์˜ˆ์‹œ ์ค‘ ํ•˜๋‚˜๋Š” ๊ธฐ์ƒ์ฒญ์ผ ๊ฒƒ ๊ฐ™๋‹ค. ์—ฌ๋Ÿฌ API์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ์˜ ์ธ๊ธฐ๊ฒ€์ƒ‰์–ด๋งŒ ์‚ดํŽด๋ด๋„ ๊ธฐ์ƒ์ฒญ์ด ๊ฐ€์žฅ ์œ„์— ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ๊ตญ๊ฐ€์—์„œ ..

StudyNote 2024. 1. 20. 18:02
Express.js์™€ Prisma ORM + MySQL

ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ์˜ ์กฐ๊ฑด ์ค‘ MySQL + Prisma ORM + 3๊ฐœ ํ…Œ์ด๋ธ” ์ด์ƒ(1:N, M:N, ์ตœ์†Œ ํ•˜๋‚˜) + ERD์ด ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋จผ์ € Prisma๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ณ  ๊ธฐ๋ณธ์ ์ธ CURD API๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ORM์ด๋ž€? ORM(Object Relational Mapping)์€ "๊ฐ์ฒด๋กœ ์—ฐ๊ฒฐ์„ ํ•ด์ค€๋‹ค"๋ผ๋Š” ์˜๋ฏธ๋กœ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์‹œ SQL์–ธ์–ด๊ฐ€ ์•„๋‹Œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์–ธ์–ด๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํˆด์ด๋‹ค. ์ฆ‰, ์–ด๋–ค ๊ฐ์ฒด๋ฅผ schema๋กœ ์ •์˜ํ•œ ๋‹ค์Œ server side์ชฝ์—์„œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ CRUD๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ด์ฃผ๋Š” ๋งค๊ฐœ์ฒด์ด๋‹ค. SQL๋ฌธ๋ฒ• ๋Œ€์‹  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ์–ธ์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ์œผ๋กœ์จ, ๊ฐœ๋ฐœ ์–ธ์–ด์˜ ์ผ๊ด€์„ฑ๊ณผ ๊ฐ€๋…์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค..

StudyNote 2024. 1. 15. 22:55