Tinkerbell Glitter
[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}..
[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`๋Š” ์ด ๊ฐ’์ด ์ด์ง„์ˆ˜๋ผ๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ„์Œ์ˆ˜ ๋ณ€ํ™˜:์Œ์ˆ˜์˜ ๊ฒฝ์šฐ์—๋„ `-` ๊ธฐํ˜ธ๊ฐ€ ์ ‘๋‘..
[241223] ํŒŒ์ด์ฌ try - except ๊ตฌ๋ฌธ ์ •๋ฆฌ
Back End ๐Ÿ“ฒ/Python ๐Ÿ’ป
~ํŒŒ์ด์ฌ try - except ๊ตฌ๋ฌธ ์ •๋ฆฌ ๐Ÿ—‚๏ธ~try - except ๊ธฐ๋ณธ ๊ตฌ์กฐtry: # ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ฝ”๋“œexcept: # ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•˜๋Š”์ง€?ํŒŒ์ผ์„ ์—ด์—ˆ๋Š”๋ฐ ํ•ด๋‹น ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์ด ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ์ด์ฒ˜๋Ÿผ ์˜ˆ์ƒ ๊ฐ€๋Šฅํ•œ ์—๋Ÿฌ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์ค‘๋‹จ๋˜์ง€ ์•Š๊ณ  ๊ณ„์† ์‹คํ–‰๋˜๋„๋ก ๋•๋Š” ์—ญํ• ์„ ํ•จtry - except ์‘์šฉ ๊ตฌ์กฐํŠน์ • ์—๋Ÿฌ๋งŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ์˜ˆ๋ฅผ ๋“ค์–ด, ZeroDivisionError ๊ฐ™์€ ํŠน์ • ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ž‘์„ฑํ•œ๋‹ค.try: result = 10 / 0except ZeroDivisionError: print("0์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!")์—ฌ๋Ÿฌ ์—๋Ÿฌ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—ฌ๋Ÿฌ ์ข…..