Active Record ํจํด
Active Record ํจํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํธ๋ฆฌํ๊ฒ ๋ค๋ฃจ๊ธฐ ์ํ ํจํด ์ค ํ๋๋ค.
์ฝ๊ฒ ๋งํด ORM ๊ตฌํ๋ค์ ์ฌ์ฉํ๋ค.
๊ธฐ๋ณธ ์๋ฆฌ
ORM์ ์์นญํ๋ ๋๋ถ๋ถ์ ORM ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ Active Record ํจํด์ ๊ธฐ๋ฐํด ๊ตฌํ๋๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
Active Record๊ฐ ๋ญ๋ํ๋ฉด ์ด๋ฐ๊ฑฐ๋ค.
part = new Part()
part.name = "Sample part"
part.price = 123.45
part.save()
๊ฐ๊ฐ์ ์ํฐํฐ๋ฅผ ํด๋์ค-ํ์ ์ผ๋ก ์ ์ํ๊ณ , ํด๋์ค์ ํ๋๋ค์ ํตํด column ๊ฐ์ ์ ์ดํ๋ค.
๊ฐ์ฒด์ ๊ฐ์ ์์ ํ์ ์ ์ฅ ์ก์ ์ ๋ฉ์๋๋ฅผ ํตํด ํธ๋ฆฌ๊ฑฐ(save)ํ๋ฉด ์์ ๋ ๊ฐ์ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ํ๋ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฐ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฑ, ์ญ์ ๋ฑ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ฒด์ ๊ฐ์ฒด ํ๋๋ค์ ํตํด ์ ์ดํ๋ค.
์ฌ์ค ๋ญ ๋ณต์กํ๊ฒ ์ค๋ช ํ ๊ฒ๋ ๋ฌ๋ฆฌ ์๋ค.
๊ตฌํ์ฒด
์ฌ์ค ๋๋ถ๋ถ์ ORM์ด Active Record๋ฅผ ์ง์ํ๋ค๊ณ ๋ด๋ ๋๋ค.
Python - sqlalchemy
Java - JPA & @
Rust - SeaORM
Node - TypeORM, Sequelize, Prisma, Drizzle
๋ฑ๋ฑ...
์ฌ์ค ์ด๋ฐ๊ฑธ ์ง์ ๊ตฌํํ๋ ๊ฒ๋ ๊ทธ๋ฆฌ ์ด๋ ต์ง๋ ์์ ๊ฒ์ด๋ค.
์ฐธ์กฐ
https://www.martinfowler.com/eaaCatalog/activeRecord.html