Skip to main content
Model์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์ค‘์‹ฌ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ, ๋ณต์žกํ•œ ์ฟผ๋ฆฌ, ํŠธ๋žœ์žญ์…˜, ๋„๋ฉ”์ธ ๊ทœ์น™ ๋“ฑ ๋ชจ๋“  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ Model์—์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋ž€?

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๊ทœ์น™๊ณผ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค:

๋ฐ์ดํ„ฐ ๊ฒ€์ฆ

์ž…๋ ฅ๊ฐ’ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ค‘๋ณต ์ฒดํฌ, ํ˜•์‹ ๊ฒ€์ฆ

๋ฐ์ดํ„ฐ ๋ณ€ํ™˜

๋ฐ์ดํ„ฐ ๊ฐ€๊ณต ๋ฐ ๊ณ„์‚ฐ ์•”ํ˜ธํ™”, ํฌ๋งท ๋ณ€ํ™˜

๋„๋ฉ”์ธ ๊ทœ์น™

๋น„์ฆˆ๋‹ˆ์Šค ์ œ์•ฝ ์กฐ๊ฑด ๊ถŒํ•œ, ์ƒํƒœ ์ „์ด ๊ทœ์น™

์›Œํฌํ”Œ๋กœ์šฐ

๋ณต์žกํ•œ ํ”„๋กœ์„ธ์Šค ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ ์ž‘์—… ์กฐ์œจ

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ž‘์„ฑ ์›์น™

1. Model์— ์ง‘์ค‘

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ Model์—๋งŒ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

2. ํƒ€์ž… ์•ˆ์ „์„ฑ

Zod ์Šคํ‚ค๋งˆ๋กœ ํƒ€์ž…์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
types.ts
model.ts

3. ํŠธ๋žœ์žญ์…˜ ์‚ฌ์šฉ

๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ์ž‘์—…์€ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ฌถ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๊ฒ€์ฆ ํŒจํ„ด

์ค‘๋ณต ์ฒดํฌ

์กฐ๊ฑด๋ถ€ ๊ฒ€์ฆ

๋ฒ”์œ„ ๊ฒ€์ฆ

๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ํŒจํ„ด

์•”ํ˜ธํ™”

์ •๊ทœํ™”

๊ณ„์‚ฐ ํ•„๋“œ

์ƒํƒœ ์ „์ด ํŒจํ„ด

์ƒํƒœ ๊ธฐ๊ณ„

๊ถŒํ•œ ๊ธฐ๋ฐ˜ ์ƒํƒœ ๋ณ€๊ฒฝ

๋ณต์žกํ•œ ์ฟผ๋ฆฌ ํŒจํ„ด

์กฐ๊ฑด๋ถ€ ์ฟผ๋ฆฌ ๋นŒ๋”ฉ

๋ณต์žกํ•œ JOIN

Puri์˜ join/leftJoin์€ ์ฒซ ๋ฒˆ์งธ ์ปฌ๋Ÿผ์— ์ด๋ฏธ ์ฐธ์กฐ ๊ฐ€๋Šฅํ•œ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์„, ๋‘ ๋ฒˆ์งธ ์ปฌ๋Ÿผ์— ์ƒˆ๋กœ ์กฐ์ธํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. Knex์™€ ์ธ์ž ์ˆœ์„œ๊ฐ€ ๋ฐ˜๋Œ€์ธ ์ ์— ์œ ์˜ํ•˜์„ธ์š”.

์„œ๋ธŒ์ฟผ๋ฆฌ ํ™œ์šฉ

ํŠธ๋žœ์žญ์…˜ ํŒจํ„ด

๊ธฐ๋ณธ ํŠธ๋žœ์žญ์…˜

์ˆ˜๋™ ํŠธ๋žœ์žญ์…˜

์ค‘์ฒฉ ํŠธ๋žœ์žญ์…˜

์—๋Ÿฌ ์ฒ˜๋ฆฌ ํŒจํ„ด

๋ช…ํ™•ํ•œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€

์ปค์Šคํ…€ ์˜ˆ์™ธ

๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ํŒจํ„ด

๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ

์ˆœ์ฐจ ์ฒ˜๋ฆฌ

๋‹ค์Œ ๋‹จ๊ณ„

BaseModel Methods

BaseModel์ด ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ ์•Œ์•„๋ณด๊ธฐ

Puri Query Builder

ํƒ€์ž… ์•ˆ์ „ํ•œ ์ฟผ๋ฆฌ ์ž‘์„ฑํ•˜๊ธฐ

Transactions

ํŠธ๋žœ์žญ์…˜ ์ƒ์„ธ ๊ฐ€์ด๋“œ

Testing

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ํ…Œ์ŠคํŠธํ•˜๊ธฐ