<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 객체λ₯Ό μ£Όμž…λ°›κ³ , 이 μ„Έμ…˜ 객체의 λ©”μ„œλ“œλ“€μ„ ν™œμš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

λͺ¨λ“  λ°μ΄ν„°λ² μ΄μŠ€ μƒν˜Έμž‘μš©μ€ 비동기 μ„Έμ…˜(AsyncSession)을 μ‚¬μš©ν•˜λ―€λ‘œ, await ν‚€μ›Œλ“œλ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ‚¬μš©ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. 이 κ°•μ˜λ₯Ό 톡해 SQLAlchemy ORM을 μ΄μš©ν•œ μ‹€μ§ˆμ μΈ λ°μ΄ν„°λ² μ΄μŠ€ 연동 개발 방법을 읡히게 λ©λ‹ˆλ‹€.


🎯 챕터 λͺ©ν‘œ

이 κ°•μ˜λ₯Ό 마치면 μ—¬λŸ¬λΆ„μ€ λ‹€μŒμ„ ν•  수 있게 λ©λ‹ˆλ‹€:

  1. Depends(get_db)λ₯Ό μ‚¬μš©ν•˜μ—¬ 경둜 μž‘λ™ ν•¨μˆ˜μ— AsyncSession을 μ£Όμž…λ°›μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  2. SQLAlchemy μ„Έμ…˜μ˜ add(), commit(), refresh() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό **생성(Create)**ν•˜κ³  λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. select() ν•¨μˆ˜μ™€ μ„Έμ…˜μ˜ execute() λ©”μ„œλ“œ, κ²°κ³Ό 처리 λ©”μ„œλ“œ(.scalars().all(), .get())λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό **쑰회(Read)**ν•  수 μžˆμŠ΅λ‹ˆλ‹€.