๐ŸŽˆ orm

์ด์ œ ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ๊นŒ์ง€ ๋งˆ์ณค๋‹ค. ์ง„์งœ ๋์ด๋‹ค! ๋ชจ์ง‘๋งˆ๊ฐ ๋ง‰๋ฐ”์ง€์— ์ง€์›ํ•ด์„œ "๋ฆฌ์ŠคํŠธ ์ธ๋ฑ์‹ฑํ•˜๊ธฐ~"ํ–ˆ๋˜๋•Œ๊ฐ€ ์—Š๊ทธ์ œ๊ฐ™์€๋ฐใ…‹ใ…‹ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๋น ๋ฅด๋‹ค. ์Šฌํ”„๊ตฌ๋งŒ. ์ง€๊ธˆ๊นŒ์ง€ ์ด ์„ธ ๋ฒˆ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒฝํ—˜ํ–ˆ๋‹ค.(์˜ค๋ฆ„์บ ํ”„ ๋‚ด์—์„œ) ์ฒซ๋ฒˆ์งธ๋Š” JS์™€ GPT๋ฅผ ์ด์šฉํ•œ ์›น ํ”„๋กœ์ ํŠธ, ๋‘๋ฒˆ์งธ๋Š” Django ๋ชจ๋†€๋ฆฌ์‹์œผ๋กœ ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ, ์ด๋ฒˆ์— ์ง„ํ–‰ํ•œ ์„ธ๋ฒˆ์งธ๋Š” ํŒ€ ํ”„๋กœ์ ํŠธ์˜€๋‹ค. ์‚ฌ์‹ค ์ง€๊ธˆ๊ป ๊ฒฝํ—˜ํ•œ ํŒ€ ํ”„๋กœ์ ํŠธ๋Š” ํŒ€ ํ”„๋กœ์ ํŠธ๋ผ๊ณ  ํ•˜๊ธฐ์—๋„ ๋ฏผ๋งํ–ˆ์–ด์„œ... ์•„๋งˆ ์ด๋ฒˆ์ด ๋‚ด๊ฐ€ ์ง„์งœ๋กœ ๊ฒฝํ—˜ํ•œ ์ฒซ ํŒ€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹๊นŒ ์‹ถ๋‹ค. ๋‹ค๋“ค ์‚ด์•„์™”๋˜ ๊ธธ๋„ ๋‹ค๋ฅด๊ณ , ๋ฐฐ์›€์˜ ๋ชฉ์ ๋„ ๋‹ค๋ฅด๊ณ , ๊ฐ์ž์˜ ์„ฑํ–ฅ๋„ ๋‹ค๋ฅธ๋ฐ ์ด๊ฑธ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋‚˜... ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์‹ค ๋‚œ ์ฝ”๋”ฉ์„ ์ž˜ ํ•˜๊ณ ๋Š” ์‹ถ์ง€๋งŒ ์ž์‹ ์€ ์—†๋Š” ์ƒํƒœ๋ผ์„œ ์ข€ ๊ฑฑ์ •ํ–ˆ๋‹ค. (๋‹คํ–‰ํžˆ ํŒ€์› ์ค‘ ํ•œ๋ถ„์ด ๊ฒฝ๋ ฅ์ง์ด์…จ..
์–ด์ œ์— ์ด์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—…์ด๋‹ค.์‚ฌ์‹ค ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ๋Š” ์งฌ์งฌ์ด ํ’€๊ณ  ์žˆ์ง€๋งŒ, Lv2๋ถ€ํ„ฐ ๋‚‘๋‚‘๋Œ€๋Š”์ค‘์ด๋‹ค.ํ•˜๋‹ค๋ณด๋ฉด ๋˜๊ฒ ์ง€... ์•„๋ฌดํŠผ ์˜ค๋žœ๋งŒ์— Colab์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ๋ฐ˜๊ฐ€์› ๋‹ค.๋งˆ์Œ์˜ ๊ณ ํ–ฅ์— ์˜จ ๋А๋‚Œ^^ https://colab.research.google.com/github/jiminkyung/orm/blob/main/python/240326_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98.ipynb 240326_์•Œ๊ณ ๋ฆฌ์ฆ˜.ipynbRun, share, and edit Python notebookscolab.research.google.com ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ ๋ช‡๊ฐœ๋ฅผ ๊ฐ™์ด ํ’€์–ด๋ณด๊ณ , ์ž์ฃผ ์“ฐ์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์„ ์„ค๋ช…ํ•ด์ฃผ์…จ๋‹ค.๊นŠ์Šค๋„ˆํ(๊นŠ์ด์šฐ์„ ํƒ์ƒ‰(DFS)์€ ์Šคํƒ, ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰(BFS)์€ ํ) ๊ธฐ..
์˜ค๋Š˜๋ถ€ํ„ฐ๋Š” AWS์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ๋‹ค. ํ”„๋ฆฌํ‹ฐ์–ด ๊ธฐํ•œ์€ 1๋…„์ด๋‹ˆ ๊ผญ ํ™•์ธํ•ด๋ณด์ž. LightSail ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ LightSail์€ AWS์˜ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๋‹ค. ๊ฐ€์ƒ ํ”„๋ผ์ด๋น— ์„œ๋ฒ„(VPS)๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š”๋ฐ, ์ด๊ฑธ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ํ”Œ๋žซํผ์€ Linux, ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋Š” OS์ „์šฉ ํƒญ์˜ Ubuntu๋ฅผ ์„ ํƒํ•ด์ค€๋‹ค. ์•„๋ž˜์˜ ํฌ๊ธฐ ์„ ํƒ ๋ถ€๋ถ„์ด ์ค‘์š”ํ•˜๋‹ค. ํ”„๋ฆฌํ‹ฐ์–ด์ด๋ฏ€๋กœ ์›”๋ณ„ $10๊นŒ์ง„ 3๊ฐœ์›” ๋ฌด๋ฃŒ์ธ๋ฐ, ๊นŒ๋”ฑํ•ด์„œ ๋‹ค๋ฅธ๊ฑธ ์„ ํƒํ•ด๋ฒ„๋ฆฌ๋ฉด ํ†ต์žฅ ๊ฑฐ๋œ๋‚œ๋‹ค! ์ •๋ง ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•˜๋‹ค. ๊ทธ๋Ÿผ ์œ„์™€ ๊ฐ™์ด ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (ํ™œ์„ฑํ™”๋˜๊ธฐ๊นŒ์ง€๋Š” ๋ช‡๋ถ„์ •๋„ ๊ฑธ๋ฆฐ๋‹ค.) ํ™œ์„ฑํ™”๊ฐ€ ๋๋‹ค๋ฉด ์ธ์Šคํ„ด์Šค๋ฅผ ํด๋ฆญํ•ด SSHํ‚ค๋ฅผ ๋‹ค์šด๋ฐ›๋Š”๋‹ค. Tabby ์„ค์น˜ Tabby๋Š” ์˜คํ”ˆ์†Œ์Šค ํ„ฐ๋ฏธ๋„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‹ค...
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ1 ๋ฌธ์ œ ์ค‘ ๋‹คํŠธ๊ฒŒ์ž„ https://school.programmers.co.kr/learn/courses/30/lessons/17682 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์„ ํ’€๋‹ค๊ฐ€ ์Šค์น˜๊ณ  ๊ฐ„ ๊ธฐ์–ต... '์ด ๋ฌธ์ œ ๋ถ„๋ช… ํ’€์–ด๋ณธ ์  ์žˆ๋‹ค.' ๋ฌธ์ œํ’€์ด์™€๋Š” ๋ณ„๊ฐœ๋กœ ์ˆ˜์—…ํ–ˆ๋˜ ๊ธฐ๋ก์„ ์ฐพ๊ณ ์‹ถ์–ด์„œ ๋’ค์ ธ๋ดค๋Š”๋ฐ ์—ญ์‹œ๋‚˜ใ…‹ใ…‹ https://5as2s.tistory.com/23 [DAY-15] ํŒŒ์ผ์ž…์ถœ๋ ฅ๋ถ€ํ„ฐ ์ •๊ทœํ‘œํ˜„์‹๊นŒ์ง€ ํŒŒ์ด์ฌ ๋ฒ„์ „๋ณ„ ๋ณ€๋™์‚ฌํ•ญ Python 3.5: async await Python 3.6: Dict์— ์ˆœ์„œ, f-string, ํƒ€์ž…ํžŒ..
FastAPI, Flask FastAPI์™€ Flask๋Š” Python์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค. FastAPI ์š”์ƒˆ ํ•ซํ•œ ํ”„๋ ˆ์ž„์›Œํฌ! ์„ฑ๋Šฅ, ๋น ๋ฅธ ์ฝ”๋”ฉ, ์ž๋™ํ™”๋œ API๋ฌธ์„œ ์ƒ์„ฑ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์› NodeJS์™€ ๋น„์Šทํ•œ ์ˆ˜์ค€์˜ ์„ฑ๋Šฅ์ด๋ฉฐ Flask์™€ Django๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ„ Flask ๊ฐ€๋ฒผ์šด ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ณธ์ ์ธ ํ•„์ˆ˜ ๊ธฐ๋Šฅ๋“ค๋งŒ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ•„์š”์— ๋”ฐ๋ผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•จ(๊ฒฝ๋Ÿ‰ํ™”), ์œ ์—ฐ์„ฑ FastAPI, Django, Flask์ค‘์—์„œ ๋ญ˜ ์„ ํƒํ•˜๋А๋ƒ? ์ œ์ผ ๋Œ€์„ธ๋Š” FastAPI ๊ทœ๋ชจ๊ฐ€ ์ข€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋Š” Django ์ œ๋Œ€๋กœ ์ •๋ฆฌํ•ด๋ณด๋ฉด, ๋ผ์ดํŠธํ•œ ํ”„๋กœ์ ํŠธ: FastAPI ์ข€ ๋” ํ—ค๋น„ํ•œ: Node-Express ๋ณดํ†ต: Django ๊ตญ๊ฐ€: Java-Spring ์ฐธ๊ณ ๋กœ ChatGPT์˜ ๋“ฑ์žฅ์œผ๋กœ ์ž๋ฐ”..
์–ด์ œ์— ์ด์–ด ์Šคํ์—˜ SQL ํ•จ์ˆ˜ ์ˆซ์ž ํ•จ์ˆ˜ ROUND(์ˆซ์ž, ์ž๋ฆฟ์ˆ˜): ์ˆซ์ž๋ฅผ (์ž…๋ ฅํ•œ์ž๋ฆฟ์ˆ˜+1)์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•œ๋‹ค. ์ž๋ฆฟ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ์—์„œ ์†Œ์ˆ˜์  ๋’ค์˜ n๋ฒˆ์งธ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ex) ROUND(10.168, 2) -> 10.168์—์„œ ์†Œ์ˆ˜์  ๋’ค์˜ ๋‘๋ฒˆ์งธ๊นŒ์ง€ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋‘๋ฒˆ์งธ ๋’ค์˜ ์ˆซ์ž๊ฐ€ 8์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜์˜ฌ๋ฆผํ•œ ๊ฒฐ๊ณผ๊ฐ’์€ 10.17. TRUNC(์ˆซ์ž, ์ž๋ฆฟ์ˆ˜): ์ˆซ์ž๋ฅผ ์›ํ•˜๋Š” ์ž๋ฆฟ์ˆ˜์—์„œ ์ ˆ์‚ญ(๋‚ด๋ฆผ)ํ•œ๋‹ค. SELECT ROUND(10.168, 2) -- 10.17 SELECT TRUNC(10.168, 2) -- 10.16 MOD(์ˆซ์ž, ๋‚˜๋ˆŒ๊ฐ’): ๋‚˜๋จธ์ง€ ์ถœ๋ ฅ POWER(์ˆซ์ž, ์Šน์ˆ˜): ์ œ๊ณฑ ์ถœ๋ ฅ SQRT(์ˆซ์ž): ์ œ๊ณฑ๊ทผ(๋ฃจํŠธ)๊ฐ’ ์ถœ๋ ฅ ๋ฌธ์ž์—ด ํ•จ์ˆ˜ SQL์—๋„ ๋ฌธ์ž์—ด์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋‹ค๋งŒ Python์ด..
miwat
'๐ŸŽˆ orm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก