Tinkerbell Glitter
[250425] Python ๋‚ด์žฅ ํ•จ์ˆ˜ all()์˜ ์ดํ•ด์™€ ์‚ฌ์šฉ๋ฒ•
Back End ๐Ÿ“ฒ/Python ๐Ÿ’ป
Python ๋‚ด์žฅ ํ•จ์ˆ˜ all()์˜ ์ดํ•ด์™€ ์‚ฌ์šฉ๋ฒ•1. ์ •์˜`all()` ํ•จ์ˆ˜๋Š” ํŒŒ์ด์ฌ์˜ ๋‚ด์žฅ ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜๋กœ, ์ธ์ž๋กœ ์ฃผ์–ด์ง„ iterable(๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด)์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ฐธ(True)์ผ ๋•Œ `True`๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ํ•˜๋‚˜๋ผ๋„ ๊ฑฐ์ง“(False)์ด ์žˆ๋‹ค๋ฉด `False`๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.2. ๋ฌธ๋ฒ•all(iterable)`iterable`: ๋ฆฌ์ŠคํŠธ(list), ํŠœํ”Œ(tuple), ์ง‘ํ•ฉ(set), ๋”•์…”๋„ˆ๋ฆฌ(dict), ๋ฌธ์ž์—ด(string) ๋“ฑ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(iterable)๋ฅผ ๋„ฃ๋Š”๋‹ค.3. ๋ฐ˜ํ™˜๊ฐ’์กฐ๊ฑด๋ฐ˜ํ™˜๊ฐ’๋ชจ๋“  ์š”์†Œ๊ฐ€ True์ธ ๊ฒฝ์šฐ`True`ํ•˜๋‚˜๋ผ๋„ False์ธ ๊ฒฝ์šฐ`False`๋นˆ iterable`True` (์ฃผ์˜!)์ฃผ์˜: `all()`์€ ๋นˆ iterable์„ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด ํ•ญ์ƒ `True`๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (๋นˆ ite..
[250401] logging in Python
Back End ๐Ÿ“ฒ/Python ๐Ÿ’ป
logging in Python1. logging ๋ชจ๋“ˆ ์ •์˜`logging` ๋ชจ๋“ˆ์€ Python์—์„œ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค. ๋””๋ฒ„๊น…, ์˜ค๋ฅ˜ ์ถ”์ , ์„ฑ๋Šฅ ๋ถ„์„ ๋“ฑ์˜ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.2. logging์˜ ์ฃผ์š” ๊ธฐ๋Šฅ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ์—ฌ๋Ÿฌ ์ˆ˜์ค€(๋ ˆ๋ฒจ)์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.๋กœ๊ทธ๋ฅผ ํŒŒ์ผ ๋˜๋Š” ์ฝ˜์†”์— ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.๋กœ๊ทธ ํฌ๋งท์„ ์„ค์ •ํ•˜์—ฌ ๊ฐ€๋…์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋กœ๊ฑฐ(Logger)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋…๋ฆฝ์ ์ธ ๋กœ๊ทธ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.ํ•ธ๋“ค๋Ÿฌ(Handler)์™€ ํฌ๋งคํ„ฐ(Formatter)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์—ฐํ•œ ๋กœ๊ทธ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.3. ๋กœ๊ทธ ๋ ˆ๋ฒจ(Log Level)`logging` ๋ชจ๋“ˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋กœ๊ทธ ๋ ˆ๋ฒจ์„ ์ œ๊ณตํ•œ๋‹ค:๋ ˆ๋ฒจ์ˆซ์ž ๊ฐ’์„ค๋ช…`DE..
[250331] union()์ด๋ž€?
Back End ๐Ÿ“ฒ/Python ๐Ÿ’ป
union()์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌโœ… ๊ฐœ์š”`union()`์€ ์ง‘ํ•ฉ(set) ์ž๋ฃŒํ˜•์„ ๋น„๋กฏํ•˜์—ฌ ์ฟผ๋ฆฌ์…‹(QuerySet) ๋“ฑ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์œผ๋กœ, ๋‘ ์ง‘ํ•ฉ(๋˜๋Š” ์‹œํ€€์Šค)์˜ ํ•ฉ์ง‘ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. ์ค‘๋ณต๋œ ์š”์†Œ๋Š” ์ œ๊ฑฐ๋˜๋ฉฐ, ์›์†Œ์˜ ์ˆœ์„œ๋Š” ๋ณด์žฅ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ตฌํ˜„์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค.Python ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์—์„œ๋Š”`set`์˜ ๋ฉ”์„œ๋“œ๋กœ, Django์—์„œ๋Š” QuerySet ์—ฐ์‚ฐ์—๋„ ์‚ฌ์šฉ๋œ๋‹ค.๐Ÿงฎ Python์—์„œ์˜ set.union()โœ… ๋ฌธ๋ฒ•set1.union(set2, set3, ...)๋˜๋Š” ์—ฐ์‚ฐ์ž ๋ฒ„์ „:set1 | set2 | set3โœ… ํŠน์ง•์ค‘๋ณต ์ œ๊ฑฐ: ๋™์ผํ•œ ์›์†Œ๋Š” ํ•œ ๋ฒˆ๋งŒ ํฌํ•จ๋จ.์›๋ณธ ๋ณ€๊ฒฝ X: ๊ธฐ์กด set ๊ฐ์ฒด๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ , ์ƒˆ set์ด ๋ฐ˜ํ™˜๋จ.๋‹ค์ˆ˜์˜ set๊ณผ๋„ ์—ฐ์‚ฐ ๊ฐ€๋Šฅโœ… ์˜ˆ์‹œa = {1, 2, 3}..
[250218] f-string (Formatted String Literal)์ด๋ž€?
Back End ๐Ÿ“ฒ/Python ๐Ÿ’ป
f-string (Formatted String Literal)์ด๋ž€?f-string์€ ๋ฌธ์ž์—ด์„ ๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ€๋…์„ฑ ์ข‹๊ฒŒ ํฌ๋งทํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.Python 3.6๋ถ€ํ„ฐ ๋„์ž…๋˜์—ˆ์œผ๋ฉฐ, ๊ธฐ์กด์˜ `.format()` ๋ฉ”์„œ๋“œ๋‚˜ `%` ์—ฐ์‚ฐ์ž๋ณด๋‹ค ๋” ์ง๊ด€์ ์ด๊ณ  ๋น ๋ฅธ ๋ฌธ์ž์—ด ํฌ๋งท ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.1. f-string ๊ธฐ๋ณธ ๋ฌธ๋ฒ•โœ… ๋ฌธ๋ฒ•f"๋ฌธ์ž์—ด {๋ณ€์ˆ˜๋ช…} ๋˜๋Š” {ํ‘œํ˜„์‹}"๋ฌธ์ž์—ด ์•ž์— `f` ๋˜๋Š” `F` ๋ฅผ ๋ถ™์ด๋ฉด f-string์ด ๋จ.์ค‘๊ด„ํ˜ธ `{}` ์•ˆ์— ๋ณ€์ˆ˜๋‚˜ ํ‘œํ˜„์‹์„ ์ง์ ‘ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Œ.2. ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•โœ… ๋ณ€์ˆ˜ ์‚ฝ์ž…name = "Alice" age = 25 # f-string ์‚ฌ์šฉ greeting = f"์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” {name}์ด๊ณ , ๋‚˜์ด๋Š” {age}์‚ด์ž…๋‹ˆ๋‹ค." print(greeting) # ์ถœ๋ ฅ: ์•ˆ๋…•ํ•˜..
[250206] ๋งค์ง๋ฉ”์„œ๋“œ๋ž€~?
Back End ๐Ÿ“ฒ/Python ๐Ÿ’ป
๋งค์ง ๋ฉ”์„œ๋“œ (Magic Methods)๋ž€?1. ๋งค์ง ๋ฉ”์„œ๋“œ ์ •์˜๋งค์ง ๋ฉ”์„œ๋“œ(๋˜๋Š” ๋˜๋” ๋ฉ”์„œ๋“œ, `Dunder Method`)๋Š” ํŒŒ์ด์ฌ ํด๋ž˜์Šค์—์„œ ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋ฏธ๋ฆฌ ์ •์˜๋œ ํŠน์ˆ˜ํ•œ ๋ฉ”์„œ๋“œ๋‹ค.์ด๋ฆ„์ด `__`(์–ธ๋”์Šค์ฝ”์–ด ๋‘ ๊ฐœ)๋กœ ๊ฐ์‹ธ์—ฌ ์žˆ์œผ๋ฉฐ, ๊ฐ์ฒด์˜ ์—ฐ์‚ฐ, ํ‘œํ˜„ ๋ฐฉ์‹, ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋Šฅ ๋“ฑ์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ์ปค์Šคํ…€ ๋™์ž‘์„ ๊ตฌํ˜„ํ•  ๋•Œ์‚ฌ์šฉํ•œ๋‹ค.์˜ˆ์ œ:class Example: def __init__(self, value): self.value = value def __str__(self): return f"Example({self.value})"obj = Example(10)print(obj) # Example(10) 2. ์ฃผ์š” ๋งค์ง ๋ฉ”์„œ๋“œ ์ •๋ฆฌ1) ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ..
[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`๋Š” ์ด ๊ฐ’์ด ์ด์ง„์ˆ˜๋ผ๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ„์Œ์ˆ˜ ๋ณ€ํ™˜:์Œ์ˆ˜์˜ ๊ฒฝ์šฐ์—๋„ `-` ๊ธฐํ˜ธ๊ฐ€ ์ ‘๋‘..