<aside>
</aside>
μλ νμΈμ! λλμ΄ λ°μ΄ν°λ² μ΄μ€ μ°λ 5λΆμ νμ΄λΌμ΄νΈ, 23κ°μ λλ€! π€©
μ§λ 21κ°κ³Ό 22κ°μμλ λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈ ꡬ쑰λ₯Ό μ μνλ SQLAlchemy ORM λͺ¨λΈμ λ§λ€κ³ , μ€μ λ°μ΄ν°λ² μ΄μ€μ μ°κ²°νμ¬ μΈμ μ κ΄λ¦¬νλ μ€μ κΉμ§ λ§μ³€μ΅λλ€. μ΄μ λͺ¨λ μ€λΉλ λλ¬μ΅λλ€!
μ΄λ² μκ°μλ λ§μΉ¨λ΄! 18κ°μμ λ§λ€μλ μΈλ©λͺ¨λ¦¬ λμ λ리 κΈ°λ°μ CRUD λ‘μ§μ μ€μ SQLAlchemy ORMμ μ¬μ©νλ μ½λλ‘ μμ ν κ΅μ²΄ν κ²μ λλ€! SQLAlchemy μΈμ μ μ£Όμ λ©μλλ€μ μ¬μ©νμ¬ μ΄λ»κ² λ°μ΄ν°λ₯Ό λ°μ΄ν°λ² μ΄μ€μ μꡬμ μΌλ‘ μ μ₯νκ³ κ΄λ¦¬νλμ§ μ§μ ꡬνν΄ λ΄ μλ€! λλμ΄ μ°λ¦¬μ ToDo APIκ° μ§μ§ λ°μ΄ν°λ₯Ό λ€λ£¨κ² λ©λλ€! β¨πΎβ‘οΈπ
μ΄λ² 23κ°μμλ μ΄μ κ°μλ€μμ μ€λΉν SQLAlchemy μ€μ (ORM λͺ¨λΈ, μμ§, μΈμ κ΄λ¦¬)μ λ°νμΌλ‘, ToDo 리μ€νΈ μ ν리μΌμ΄μ μ ν΅μ¬ κΈ°λ₯μΈ CRUD(Create, Read, Update, Delete) λ‘μ§μ SQLAlchemy ORMμ μ¬μ©νμ¬ κ΅¬νν©λλ€. 18κ°μμ μμ±νλ μΈλ©λͺ¨λ¦¬ λμ λ리 κΈ°λ°μ μμ μ½λλ₯Ό μ€μ λ°μ΄ν°λ² μ΄μ€ μ°λ μ½λλ‘ λ체νλ κ³Όμ μ λλ€.
κ° κ²½λ‘ μλ ν¨μ(create_task
, read_tasks
, read_task
, update_task
, delete_task
)μ Depends(get_db)
λ₯Ό μ¬μ©νμ¬ AsyncSession
κ°μ²΄λ₯Ό μ£Όμ
λ°κ³ , μ΄ μΈμ
κ°μ²΄μ λ©μλλ€μ νμ©νμ¬ λ°μ΄ν°λ² μ΄μ€ μμ
μ μνν©λλ€.
session.add()
, session.commit()
, session.refresh()
λ₯Ό μ¬μ©νμ¬ μ Task κ°μ²΄λ₯Ό DBμ μ μ₯ν©λλ€.session.execute(select(...))
μ .scalars().all()
μ μ¬μ©νμ¬ λͺ¨λ Taskλ₯Ό μ‘°νν©λλ€.session.get()
μ μ¬μ©νμ¬ νΉμ IDμ Taskλ₯Ό ν¨μ¨μ μΌλ‘ μ‘°ννκ³ , μμ κ²½μ° 404 μ€λ₯λ₯Ό μ²λ¦¬ν©λλ€.session.get()
μΌλ‘ κ°μ²΄λ₯Ό μ‘°ννκ³ , κ°μ²΄μ μμ±μ λ³κ²½ν ν session.commit()
, session.refresh()
λ₯Ό μ¬μ©νμ¬ λ³κ²½ μ¬νμ DBμ λ°μν©λλ€.session.get()
μΌλ‘ κ°μ²΄λ₯Ό μ‘°ννκ³ , session.delete()
, session.commit()
μ μ¬μ©νμ¬ DBμμ ν΄λΉ λ°μ΄ν°λ₯Ό μμ ν©λλ€.λͺ¨λ λ°μ΄ν°λ² μ΄μ€ μνΈμμ©μ λΉλκΈ° μΈμ
(AsyncSession
)μ μ¬μ©νλ―λ‘, await
ν€μλλ₯Ό μ¬λ°λ₯΄κ² μ¬μ©νλ κ²μ΄ μ€μν©λλ€. μ΄ κ°μλ₯Ό ν΅ν΄ SQLAlchemy ORMμ μ΄μ©ν μ€μ§μ μΈ λ°μ΄ν°λ² μ΄μ€ μ°λ κ°λ° λ°©λ²μ μ΅νκ² λ©λλ€.
μ΄ κ°μλ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ€μμ ν μ μκ² λ©λλ€:
Depends(get_db)
λ₯Ό μ¬μ©νμ¬ κ²½λ‘ μλ ν¨μμ AsyncSession
μ μ£Όμ
λ°μ μ μμ΅λλ€.add()
, commit()
, refresh()
λ©μλλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό **μμ±(Create)**νκ³ λ°μ΄ν°λ² μ΄μ€μ μ μ₯ν μ μμ΅λλ€.select()
ν¨μμ μΈμ
μ execute()
λ©μλ, κ²°κ³Ό μ²λ¦¬ λ©μλ(.scalars().all()
, .get()
)λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό **μ‘°ν(Read)**ν μ μμ΅λλ€.