ORM
Object-Relational Mapping, ๊ฐ์ฒด์ ๋ก์ฐ๋ฅผ ์ฐ๊ฒฐ(map)ํด์ฃผ๋ ๋๊ตฌ
Node.js๋ JAVA ๊ฐ์ ๊ณ ์ฐจ์(High Level) ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ด์ค๋ค.
์ฅ์
- ์์ฐ์ฑ๊ณผ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํจ
- DB๊ฐ ๋
๋ฆฝ์
ex) : postgreSQL์ ์ฐ๋ค๊ฐ mySQL์ ์ฐ๋๋ผ๋ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ - ๋ณด์์ด ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ถฐ์ ธ ์์.
- SQL Injection : ์ฌ์ฉ์ ์ด๋ฆ ๋๋ ์ํธ์ ๊ฐ์ ์ผ๋ฐ ์ ๋ ฅ ๋๋ ์์ ํ๋์ SQL ์ฟผ๋ฆฌ๋ฅผ ์ฝ์ ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ์ทจ์ฝ์ฑ์ ์ ์ฉํ๋ ค๊ณ ์๋ํ๋ ๊ณต๊ฒฉ ์ ํ
- ORM์๋ ์ด๋ฐ ๊ธฐ๋ณธ์ ์ธ ๋ณด์ ์ทจ์ฝ์ ์ ์ด๋ ์ ๋๋ ๋ฐฉ์ดํด ์ฃผ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์์.
(๋ฌผ๋ก raw query๋ฅผ ์ฌ์ฉํ๋ ๋ฑ์ ๊ฒฝ์ฐ์๋ ์ทจ์ฝ์ ์ด ์์ผ๋ ์ ์ฐ๋ ๊ฒ๋ณด๋ค์ผ ๋ซ๋ค!)
Prisma
JS, TS๋ฅผ ์ง์ํ๋ ORM
์ฅ์
- ์ด๋ณด์์๊ฒ ์น์ํจ
- DB ๋ ๋ฆฝ์ฑ
- ๋ง์ด๊ทธ๋ ์ด์ : DB์ ์คํค๋ง๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ์. ๊ธฐ๋ก์ ๊ณ์ ๋จ๊ฒจ์ ํธ๋ํน์ด๋ ๋กค๋ฐฑ์ด ๊ฐ๋ฅํจ
๋คํธ์ํฌ ์ํคํ ์ณ(Network Architecture)
1 Tier Architecture
๋ชจ๋ ๊ธฐ๋ฅ์ด ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ํ๋จ
๋จ์ํ์ง๋ง ํ์ฅ์ฑ์ด ๋จ์ด์ง
ex) ์์
2 Tier Architercture
ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ก ๋๋จ
์ฅ์ : ๋จ์ํ ๊ตฌ์กฐ๋ผ ์ค์ ๊ท๋ชจ ์์คํ ์ ์ ํฉํ๋ฉฐ, DB / ์ฑ์ด ๋ถ๋ฆฌ๋ผ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ํจ์จ์ ์
๋จ์ : ๋ฐ์ดํฐ์ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ ์๋ก ํ์ฅ์ฑ์ด ๋จ์ด์ง
ex) ๋ฐ์คํฌํ ์ฑ + DB ์๋ฒ ์กฐํฉ (์: Java ์ฑ + MySQL ์๋ฒ)
3 Tier Architecture
UI, ๋น์ฆ๋์ค ๋ก์ง, ๋ฐ์ดํฐ ๊ณ์ธต์ ๊ฐ๊ฐ ๋ถ๋ฆฌ
- ํด๋ผ์ด์ธํธ : UI
- ์๋ฒ : ๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค : ๋ฐ์ดํฐ ์ ์ฅ์
์ฅ์ : ์ ์ง ๋ณด์๊ฐ ์ฉ์ด, ํ์ฅ์ฑ ์ข์, ๋ณด์์ด ๊ฐํ๋จ, ๋ชจ๋ํ ๋์ด์์
๋จ์ : ๋ณต์กํจ
ex) ์น๋ธ๋ผ์ฐ์ ↔ API ์๋ฒ ↔ ๋ฐ์ดํฐ๋ฒ ์ด์ค
'๋ฐ์ดํฐ๋ฒ ์ด์ค, SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ๋ฒ ์ด์ค / Pagila ์น์ฑ ์์ฑํ๊ธฐ (1) (1) | 2025.05.23 |
---|---|
๋ฐ์ดํฐ๋ฒ ์ด์ค / JOIN (0) | 2025.05.20 |
๋ฐ์ดํฐ๋ฒ ์ด์ค / ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง (0) | 2025.05.20 |
๋ฐ์ดํฐ๋ฒ ์ด์ค / SQL ๊ตฌ๋ฌธ ๋ฌธ๋ฒ (0) | 2025.05.20 |
๋ฐ์ดํฐ๋ฒ ์ด์ค / ๊ฐ์ (5) | 2025.05.19 |