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 ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌโœ… ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ → ๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” ์ธ..
[250128] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ ๋ฌธ์ œ
Algorithm ๐Ÿ“Š/๋ฌธ์ œ ํ’€์ด ๐Ÿ’ฏ
๋ฌธ์ž์—ด ๊ณ„์‚ฐํ•˜๊ธฐ ๐Ÿ”ขQ. `my_string`์€ "3 + 5"์ฒ˜๋Ÿผ ๋ฌธ์ž์—ด๋กœ ๋œ ์ˆ˜์‹์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด `my_string`์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ˆ˜์‹์„ ๊ณ„์‚ฐํ•œ ๊ฐ’์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.์ œํ•œ์‚ฌํ•ญ์—ฐ์‚ฐ์ž๋Š” +, -๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.๋ฌธ์ž์—ด์˜ ์‹œ์ž‘๊ณผ ๋์—๋Š” ๊ณต๋ฐฑ์ด ์—†์Šต๋‹ˆ๋‹ค.0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆซ์ž๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.์ž˜๋ชป๋œ ์ˆ˜์‹์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.5 ≤ `my_string`์˜ ๊ธธ์ด ≤ 100`my_string`์„ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ๊ฐ’์€ 1 ์ด์ƒ 100,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.`my_string`์˜ ์ค‘๊ฐ„ ๊ณ„์‚ฐ ๊ฐ’์€ -100,000 ์ด์ƒ 100,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.๊ณ„์‚ฐ์— ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž๋Š” 1 ์ด์ƒ 20,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.`my_string`์—๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์–ด๋„ ํ•˜๋‚˜ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.return..
[250127] bin() ํ•จ์ˆ˜๋ž€??
Back End ๐Ÿ“ฒ/Python ๐Ÿ’ป
bin() ํ•จ์ˆ˜๋ž€?1. bin() ํ•จ์ˆ˜ ์ •์˜`bin()` ํ•จ์ˆ˜๋Š” ์ •์ˆ˜๋ฅผ ์ด์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.์ด ํ•จ์ˆ˜๋Š” 2์ง„๋ฒ• ํ‘œํ˜„์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๋ฉฐ, ๋ณ€ํ™˜๋œ ๊ฒฐ๊ณผ๋Š” ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.๊ธฐ๋ณธ ๋™์ž‘๋ฌธ๋ฒ•bin(x)`x`: ์ •์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ (`int`) ๋˜๋Š” ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฐ˜ํ™˜๊ฐ’: `0b`๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ด์ง„์ˆ˜ ๋ฌธ์ž์—ด์˜ˆ์ œ# ์ •์ˆ˜๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ณ€ํ™˜print(bin(10)) # ์ถœ๋ ฅ: '0b1010'# ์Œ์ˆ˜๋„ ๋ณ€ํ™˜ ๊ฐ€๋Šฅprint(bin(-10)) # ์ถœ๋ ฅ: '-0b1010'# 0์˜ ๊ฒฝ์šฐprint(bin(0)) # ์ถœ๋ ฅ: '0b0'2. ๋ฐ˜ํ™˜ ๊ฐ’์˜ ๊ตฌ์กฐ`0b` ์ ‘๋‘์–ด:๋ฐ˜ํ™˜๋˜๋Š” ์ด์ง„์ˆ˜ ๋ฌธ์ž์—ด์€ ํ•ญ์ƒ `0b`๋กœ ์‹œ์ž‘`0b`๋Š” ์ด ๊ฐ’์ด ์ด์ง„์ˆ˜๋ผ๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ„์Œ์ˆ˜ ๋ณ€ํ™˜:์Œ์ˆ˜์˜ ๊ฒฝ์šฐ์—๋„ `-` ๊ธฐํ˜ธ๊ฐ€ ์ ‘๋‘..