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

๋ชฉ๋กExpress (10)

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
Node.js์™€ Express.js ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ - 3

์ง€๋‚œ ๋„์ปค(Docker) ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ ๊ธ€์—์„œ ๋„์ปค์˜ ๊ฐ€๋ฒผ์šด ์ž…๋ฌธ ๋ง๊ณ  Express.js ๊ธฐ๋ณธ์ ์ธ CURD API ๋งŒ๋“ค์–ด๋ณด๊ธฐ, Middleware์— ๋Œ€ํ•œ ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ ๋“ฑ์˜ ๊ณผ์ œ๋ฅผ ๋ฐ›์•˜๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์—ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Express.js๋กœ ๊ธฐ๋ณธ ์˜ˆ์ œ์ธ ๋กœ์ปฌ์—์„œ Hello World ์ถœ๋ ฅํ•˜๊ธฐ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ๋‚ด์šฉ์„ ์ ์„ ๊ฒƒ์ด๋‹ค.์ง€๋‚œ Node.js์™€ Express.js ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ - 2์—์„œ ์ด์–ด์ง€๋Š” ๋‚ด์šฉ์ด๋ฉฐ ํ•ด๋‹น ๊ธ€์€ ์ด ๋งํฌ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. Node.js์™€ Express.js ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ - 2์ง€๋‚œ ๋„์ปค(Docker) ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ ๊ธ€์—์„œ ๋„์ปค์˜ ๊ฐ€๋ฒผ์šด ์ž…๋ฌธ ๋ง๊ณ  Express.js ๊ธฐ๋ณธ์ ์ธ CURD API ๋งŒ๋“ค์–ด๋ณด๊ธฐ, Middleware์— ๋Œ€ํ•œ ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ ๋“ฑ์˜ ๊ณผ์ œ๋ฅผ ๋ฐ›์•˜..

StudyNote 2024. 1. 15. 20:40
Node.js์™€ Express.js ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ - 2

์ง€๋‚œ ๋„์ปค(Docker) ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ ๊ธ€์—์„œ ๋„์ปค์˜ ๊ฐ€๋ฒผ์šด ์ž…๋ฌธ ๋ง๊ณ  Express.js ๊ธฐ๋ณธ์ ์ธ CURD API ๋งŒ๋“ค์–ด๋ณด๊ธฐ, Middleware์— ๋Œ€ํ•œ ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ ๋“ฑ์˜ ๊ณผ์ œ๋ฅผ ๋ฐ›์•˜๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์—ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Express.js์— ๊ด€๋ จ๋œ ๋‚ด์šฉ์„ ์ ์„ ๊ฒƒ์ด๋‹ค. ์ง€๋‚œ Node.js์™€ Express.js ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ - 1์—์„œ ์ด์–ด์ง€๋Š” ๋‚ด์šฉ์ด๋ฉฐ ํ•ด๋‹น ๊ธ€์€ ์ด ๋งํฌ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. Node.js์™€ Express.js ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ - 1 ์ง€๋‚œ ๋„์ปค(Docker) ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ ๊ธ€์—์„œ ๋„์ปค์˜ ๊ฐ€๋ฒผ์šด ์ž…๋ฌธ ๋ง๊ณ  Express.js ๊ธฐ๋ณธ์ ์ธ CURD API ๋งŒ๋“ค์–ด๋ณด๊ธฐ, Middleware์— ๋Œ€ํ•œ ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ ๋“ฑ์˜ ๊ณผ์ œ๋ฅผ ๋ฐ›์•˜๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์—ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Node.js juinti..

StudyNote 2024. 1. 14. 20:14