Tinkerbell Glitter
[250205] CRUD ์ƒ์„ธ ์ •๋ฆฌ~
Back End ๐Ÿ“ฒ/Django โ›“๏ธ
Django CRUD (Create, Read, Update, Delete) ๋ž€?๐Ÿš€1. CRUD ์ •์˜CRUD๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ๋ณธ์ ์ธ 4๊ฐ€์ง€ ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค.Django์—์„œ๋Š” ORM (Object-Relational Mapping)์„ ํ™œ์šฉํ•˜์—ฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ CRUD ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. CRUD ๊ฐœ๋… ์ •๋ฆฌ์ž‘์—…์„ค๋ช…HTTP ๋ฉ”์„œ๋“œDjango ORM ๋ฉ”์„œ๋“œCreate๋ฐ์ดํ„ฐ ์ƒ์„ฑ`POST``Model.objects.create()`Read๋ฐ์ดํ„ฐ ์กฐํšŒ`GET``Model.objects.all(), Model.objects.get()`Update๋ฐ์ดํ„ฐ ์ˆ˜์ •`PUT`, `PATCH``Model.objects.filter().update(), save()`Delete๋ฐ์ดํ„ฐ ์‚ญ์ œ..
[250204] URI ์ดํ•ดํ•˜๊ธฐ
Back End ๐Ÿ“ฒ/Django โ›“๏ธ
URI ๋ž€? ๐ŸŒ1. URI ์ •์˜URI (Uniform Resource Identifier, ํ†ตํ•ฉ ์ž์› ์‹๋ณ„์ž)๋Š” ์›น์—์„œ ํŠน์ • ๋ฆฌ์†Œ์Šค(์ž์›)๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ณ ์œ ํ•œ ์ฃผ์†Œ์ด๋‹ค.โœ… ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด:๐Ÿ‘‰ ์ธํ„ฐ๋„ท์ƒ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ๊ณ  ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ฃผ์†Œ ์ฒด๊ณ„๐Ÿ“Œ URI์˜ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์œ ํ˜•URL (Uniform Resource Locator, ํ†ตํ•ฉ ์ž์› ์œ„์น˜์ž)ํŠน์ • ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ์‹๋ณ„์ž์˜ˆ: `https://www.example.com/index.html`URN (Uniform Resource Name, ํ†ตํ•ฉ ์ž์› ์ด๋ฆ„)๋ฆฌ์†Œ์Šค๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜์ง€๋งŒ, ์œ„์น˜ ์ •๋ณด๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Œ์˜ˆ: `urn:isbn:0451450523` (ํŠน์ • ์ฑ…์˜ ISBN)2. URI์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐURI๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ..
[250203] Serializer ์ •๋ฆฌ~
Back End ๐Ÿ“ฒ/Django โ›“๏ธ
Serializer๋ž€?1. Serializer ์ •์˜Serializer(์ง๋ ฌํ™”)๋Š” Django REST Framework(DRF)์—์„œ Python ๊ฐ์ฒด(QuerySet, Model ์ธ์Šคํ„ด์Šค ๋“ฑ)๋ฅผ JSON ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜(JSON ์ง๋ ฌํ™”), ๋ฐ˜๋Œ€๋กœ JSON ๋ฐ์ดํ„ฐ๋ฅผ Python ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ(์—ญ์ง๋ ฌํ™”)์„์ˆ˜ํ–‰ํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. โœ… ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด:Python ๊ฐ์ฒด → JSON ๋ณ€ํ™˜ (`์ง๋ ฌํ™”`)JSON → Python ๊ฐ์ฒด ๋ณ€ํ™˜ (`์—ญ์ง๋ ฌํ™”`)๐Ÿ“Œ Serializer๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ API์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ JSON ํ˜•ํƒœ๋กœ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด ํ•„์š”Django์˜ ๋ชจ๋ธ์„ ์‰ฝ๊ฒŒ JSON ์‘๋‹ต์œผ๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฐ›์€ JSON ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆ ๋ฐ ๋ณ€ํ™˜ํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ DB ์ €์žฅ ๊ฐ€๋Šฅ2. Serializer ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•..
[250131] django DRF(Django Rest Framework)๋ž€~
Back End ๐Ÿ“ฒ/Django โ›“๏ธ
Django REST Framework (DRF)๋ž€?1. DRF ์ •์˜Django REST Framework(DRF)๋Š” Django์—์„œ RESTful API๋ฅผ ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.Django์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜์—ฌ JSON ์‘๋‹ต, ์ธ์ฆ, ๊ถŒํ•œ ๊ด€๋ฆฌ, ํŽ˜์ด์ง•, ์ง๋ ฌํ™”(Serializer) ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.2. DRF๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ Django๋Š” ๋ณธ๋ž˜ ์„œ๋ฒ„ ์ธก ๋ Œ๋”๋ง์„ ์œ„ํ•œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ด์ง€๋งŒ, RESTful API ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์ด ํ•„์š”ํ•จ.DRF๋Š” ์ด๋Ÿฐ ๊ณผ์ •์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋ฉฐ, API ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. โœ… ์ง๋ ฌํ™”(Serialization) → JSON ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌโœ… ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ → ๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” ์ธ..
[250122] DateTimeField() ๊ฐœ๋…์ •๋ฆฌ~
Back End ๐Ÿ“ฒ/Django โ›“๏ธ
~DateTimeField ๋ž€?~1. DateTimeField ์ •์˜`DateTimeField`๋Š” Django ๋ชจ๋ธ์—์„œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์ €์žฅํ•˜๋Š” ํ•„๋“œ์ด๋‹ค ์ด ํ•„๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ `DATETIME` ์œ ํ˜•์— ๋งคํ•‘๋˜๋ฉฐ, Python์˜ `datetime.datetime` ๊ฐ์ฒด๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•๋ชจ๋ธ ์ •์˜from django.db import modelsclass Event(models.Model): name = models.CharField(max_length=100) event_date = models.DateTimeField()๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ดํ›„ ๋ฐ์ดํ„ฐ ์ €์žฅfrom datetime import datetimefrom myapp.models import Eventevent = Event(name="..
[250121] ์ฟผ๋ฆฌ์…‹(QuerySet)์ด๋ž€?
Back End ๐Ÿ“ฒ/Django โ›“๏ธ
QuerySet์ด๋ž€?1. QuerySet ์ •์˜QuerySet์€ Django ORM(Object-Relational Mapping)์˜ ํ•ต์‹ฌ ์š”์†Œ๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŠน์ • ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ์ฒด์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฒ€์ƒ‰ํ•  ๋•Œ ๊ฒŒ์œผ๋ฅด๊ฒŒ ํ‰๊ฐ€(Lazy Evaluation) ๋œ๋‹ค. ์ฆ‰, ์ฟผ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ์‹คํ–‰๋˜๊ธฐ ์ „๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.2. QuerySet ์ƒ์„ฑ ๋ฐฉ๋ฒ•1) ๊ธฐ๋ณธ QuerySet ์ƒ์„ฑfrom myapp.models import Book# ์ „์ฒด ๊ฐ์ฒด ์กฐํšŒbooks = Book.objects.all()2) ํ•„ํ„ฐ๋ง์„ ํ†ตํ•œ QuerySet# ํŠน์ • ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐbooks_by_author = Book.objects.filter(author="John Doe")..