๋ฐฑ์๋ ๊ฐ๋ฐ์
(์ ) ํ ์ค ์ฆ๊ถ NoOpsํ
(์ ) Asleep ์ฌ๋ฆฝ๋ฃจํด ๊ฐ๋ฐ
(์ ) ABLY ๊ด๊ณ ์ฌ์ ํ
PyCon Korea 21/22/23 Speaker
๊ฐ์
์ค์ฆ์ฝ๋ฉ์ค์ฟจ ๋ถํธ์บ ํ ๊ฐ์ฌ
(Python, Django, FastAPI, Database, AWS)
์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ ์จ๋ผ์ธ ํํฐ(AI ํธ๋)
๋ฉํฐ์บ ํผ์ค ๊ฐ์ฌ(SQL, Database)
์๊ฒฉ์ฆ ๋ฐ ์์ ๋ด์ญ
AWS 2023 StartUp Security GameDay ํ๊ตญ 1๋ฑ
3x AWS Certified
AWS Certified Database โ Specialty
AWS Certified Solutions Architect - Associate
AWS Certified Developer - Associate
CKAD(Certified Kubernetes Application Developer)
๋ธ๋ก๊ทธ: qu3vipon.com
๊นํ๋ธ: github.com/qu3vipon
์ถํ
Courses
Reviews
- [4-Week Completion Challenge] Practical! Introduction to FastAPI
- [4-Week Completion Challenge] Practical! Introduction to FastAPI
- [4-Week Completion Challenge] Practical! Introduction to FastAPI
- [4-Week Completion Challenge] Practical! Introduction to FastAPI
- Hands-on! Introduction to FastAPI
Posts
Q&A
๊ฐ์ ํ๊ฒฝ๊ณผ ์ฐจ์ด ๋์ปค ์ง๋ฌธ
๋ค, ๋ง์ต๋๋ค. ๊ฐ์ ํ๊ฒฝ(venv)์ ํ์ด์ฌ ํจํค์ง๋ฅผ ๋ถ๋ฆฌํ๊ธฐ ์ํ ํ์ด์ฌ ํ๊ฒฝ์ด๊ณ , Docker๋ ์ด์์ฒด์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ ์คํ ํ๊ฒฝ ์ ์ฒด๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค.๊ทธ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ Docker ์ปจํ ์ด๋์์๋ง ์คํํ๋ค๋ฉด ๋ณดํต ๋ณ๋์ ๊ฐ์ ํ๊ฒฝ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
- Likes
- 0
- Comments
- 1
- Viewcount
- 37
Q&A
์ปค๋ฒ๋ง ์ธ๋ฑ์ค์ ๋ํด์ ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์. ๊ฐ์ ์ ๋ค์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๋ ํ๋์ ์ธ๋ฑ์ค ์์ SELECT์ ํ์ํ ์ปฌ๋ผ๋ค์ด ๋ชจ๋ ํฌํจ๋์ด ์์ด์ผ ๋์ํฉ๋๋ค. ๊ฐ ์ปฌ๋ผ์ ๋จ์ผ ์ธ๋ฑ์ค๊ฐ ๋ฐ๋ก ์กด์ฌํ๋ค๊ณ ํด์ ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๋ก ์ฒ๋ฆฌ๋์ง๋ ์์ต๋๋ค.๋ฐ๋ผ์ ์ง๋ฌธ ์ฃผ์ ์์์์ (id, name) ๋ณตํฉ ์ธ๋ฑ์ค๋ id๊ฐ ์ ๋ ์ปฌ๋ผ์ด๋ผ name ๊ฒ์์๋ ๋์์ด ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ด ์ํฉ์์๋ name ๋จ์ผ ์ธ๋ฑ์ค๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๋ง๋ ๋ฐฉํฅ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฒ์ ๊ฒฐ๊ณผ์ name ์ธ์๋ ๋ค๋ฅธ ์ปฌ๋ผ๋ค์ด ํจ๊ป ์กฐํ๋๋ค๋ฉด, ํด๋น ์ปฌ๋ผ๋ค๊น์ง ํฌํจํ ๋ณตํฉ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค์ด ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๋ก ์ค๊ณํ๋ ๊ฒ๋ ๊ณ ๋ คํ ์ ์์ต๋๋ค.๋ค๋ง ๊ฒ์ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ์ผ๋ฐ์ ์ธ B-Tree ์ธ๋ฑ์ค ๋ณด๋ค ๋ณ๋์ ๊ฒ์ ์์คํ (์: Full-Text Search๋ ๊ฒ์ ์์ง)์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ์ ๊ทผ์ ๋๋ค.
- Likes
- 0
- Comments
- 3
- Viewcount
- 161
Q&A
์ธ๋ฑ์ค ์ค๊ณ ์ ์ปฌ๋ผ ์ ํ ๊ธฐ์ค
์๋ ํ์ธ์, ์ ํ๋์ ์ ํ์ฑ์ด๋ผ๋ ํํ ๋๋ฌธ์ ์คํด๊ฐ ์๊ธด ๊ฒ ๊ฐ์๋ฐ์."์ ํ๋๊ฐ ๋ฎ๋ค = ์กฐ๊ฑด์ ๋ง๋ ํ์ ๋น์จ์ด ๋ฎ๋ค(๋ช ํํ ๊ฑธ๋ฌ์ง๋ค) = ์ ํ์ฑ์ด ๋๋ค" ๋ผ๊ณ ์๊ฐํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 140
Q&A
DOCKER ์ค์น ๊ด๋ จ ์ง๋ฌธ์ ๋๋ค
์๋ ํ์ธ์, ์ง๊ธ ์ฌ์ฉ ์ค์ด์ ์ธํ ๋งฅ๋ถ์ macOS ๋ฒ์ ์ด Docker Desktop์ด ์๊ตฌํ๋ ์ต์ ์ฌ์๋ณด๋ค ๋ฎ์์ ์ค์น ์์ฒด๊ฐ ๋งํ ์ํฉ์ผ๋ก ๋ณด์ ๋๋ค. macOS ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๊ธฐ ์ด๋ ค์ฐ์ ์ํฉ์ธ๊ฐ์?
- Likes
- 0
- Comments
- 2
- Viewcount
- 131
Q&A
FasAPI Swagger UI์์ ๋จ์ผ์กฐํ todo_id ๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ ๋ ฅ๊ฐ์ 1์ ๋ฃ์ผ๋ ์ค๋ฅ๊ฐ ๋น๋๋ค ใ
์๋ ํ์ธ์, ํฐ๋ฏธ๋์ ์ถ๋ ฅ๋๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋จผ์ ํ์ธํด๋ณด์๊ฒ ์ด์?
- Likes
- 0
- Comments
- 2
- Viewcount
- 119
Q&A
asgi ๋ฅผ elasticbeanstalk ์ผ๋ก ๋ฐฐํฌ๋ ์ด๋ป๊ฒ ํ ์ ์์๊น์?
์๋ ํ์ธ์, ํน์ requirements.txt์ gunicorn์ ์ถ๊ฐํ์ จ๋์?
- Likes
- 0
- Comments
- 1
- Viewcount
- 113
Q&A
AI ๋๊ตฌ ํ์ต๋ฒ ๋ฌธ์
์๋ ํ์ธ์, ์ ์ญ์ ์ฝ๋ ์์ ์ AI ๋๊ตฌ๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๊ณ ์์ต๋๋ค. ๊ฒฝํ์ ๋น์ถ์ด ๋ง์๋๋ฆฌ๋ฉด AI ์ฝ๋ฉ ๋๊ตฌ๋ ๊ฐ๋จํ ๋ฆฌํฉํฐ๋ง์ด๋ ๋๋ฒ๊น ๋ฐ ๋ก๊น ์ถ๊ฐ, ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ณต์ ์ธ ์ฝ๋ ์์ ๊ณผ ๊ฐ์ ๊ตฌ์กฐ์ ์ธ ์์ ์์ ํนํ ํจ์จ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์์ ์ด๋ ๊ตฌ์ฒด์ ์ธ ๋น์ฆ๋์ค ๋ก์ง์ฒ๋ผ ๋งฅ๋ฝ๊ณผ ๊ท์น์ด ์ค์ํ ์์ญ์์๋ AI๊ฐ ์ค์๋ฅผ ํ ๊ฐ๋ฅ์ฑ์ด ํฌ๊ธฐ ๋๋ฌธ์ ์ฌ๋์ด ์ง์ ์ค๊ณํ๊ณ ๊ฒํ ํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ค์ ์ฝ๋ ์์ ์์๋ Plan ๋ชจ๋๋ฅผ ํ์ฉํด ์ ๊ทผ ๋ฐฉ์์ ๋จผ์ ์ ๊ฒํ๊ณ , ์ดํ ์ ๊ทน์ ์ธ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํด ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฆํ๋ ๊ฒ์ด ์์ ํ๋ฉด์๋ ํจ๊ณผ์ ์ธ ํ์ฉ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 120
Q&A
์ธ๋ฑ์ค ์ฌ์ฉ ํจํด ์ง๋ฌธ
์๋ ํ์ธ์, ์ข์ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค.๋ง์ํ์ ๋๋ก WHERE status = 'paid' ์กฐ๊ฑด์ ํตํด ์ด๋ฏธ ๊ฒฐ๊ณผ ์งํฉ์ด 'paid' ๊ฐ๋ง์ ๊ฐ์ง๊ฒ ๋๋ฏ๋ก, GROUP BY status๋ฅผ ํ๋๋ผ๋ ๊ทธ๋ฃน์ ํ๋๋ง ๋จ๊ฒ ๋ฉ๋๋ค. ๋ํ ORDER BY status ์ญ์ ๋ชจ๋ ๊ฐ์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ ์ค์ ์ ๋ ฌ ์ฐ์ฐ์ ๋ฐ์ํ์ง ์์ต๋๋ค. ์ธ๋ฑ์ค ๊ด์ ์์ ๋ณด์๋ฉด ์ด ๊ฒฝ์ฐ GROUP BY์ ORDER BY๊ฐ ๋ณ๋์ ์ฑ๋ฅ ํฅ์์ ์ฃผ๋ ๊ฒ์ ์๋๋๋ค. ๋ค๋ง ์ถ๋ ฅ ๊ฒฐ๊ณผ ์์ฒด๋ ๋ค๋ฅผ ์ ์์ต๋๋ค.์๋ฅผ ๋ค์ด status = 'paid'์ธ ๋ ์ฝ๋๊ฐ 10๊ฐ ์๋ค๊ณ ํ ๋, ๋จ์ ์กฐํ๋ฅผ ํ๋ฉด 10๊ฐ๊ฐ ๋ชจ๋ ์ถ๋ ฅ๋์ง๋ง, GROUP BY status๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๋์ 1๊ฐ์ ๊ฒฐ๊ณผ๋ง ์ถ๋ ฅ๋ฉ๋๋ค. GROUP BY๋ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋ฃน ๋จ์๋ก ์ถ์ฝํฉ๋๋ค. ์ด๋ฒ ๊ฐ์์์๋ SQL ๋ฌธ๋ฒ ์์ฒด๋ฅผ ๊น๊ฒ ๋ค๋ฃจ์ง๋ ์์ง๋ง, GROUP BY์ ๊ธฐ๋ณธ ๋์์ ํ์ตํด๋ณด์๋ฉด ์ดํด๊ฐ ๋ ์ ๋์ค ๊ฒ๋๋ค.๊ฐ์์์ ๊ฐ์กฐํ๊ณ ์ถ์๋ ๋ถ๋ถ์ WHERE, GROUP BY, ORDER BY๊ฐ ๋์ผํ ์ปฌ๋ผ์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ํ๋์ ์ธ๋ฑ์ค๋ก ์ธ ์ฐ์ฐ์ ๋ชจ๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค๋ ์ ์ ๋๋ค. ํนํ ORM์ด๋ ์ฟผ๋ฆฌ ๋น๋๋ฅผ ์ฌ์ฉํ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ORDER BY ์ ์ด ์๋์ผ๋ก ์ถ๊ฐ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ์ด๋ด ๋๋ ๋ค๋ฅธ ์ปฌ๋ผ์ผ๋ก ์ ๋ ฌ์ ์ฒ๋ฆฌํ๋ ๊ฒ๋ณด๋ค๋ WHERE ์ ์ด๋ GROUP BY ์ ์ ์ฌ์ฉํ ์ปฌ๋ผ์ ์ฌํ์ฉํ๋ฉด, ๋ถํ์ํ ์ ๋ ฌ์ ์ค์ผ ์ ์๋ค ์ ๋๋ก ๊ธฐ์ตํด์ฃผ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.์ค์ ํ์ฉ ์์๋ก๋ ์ง๊ณ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฃผ๋ฌธ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฒฐ์ ๊ฐ ์๋ฃ๋ ์ฃผ๋ฌธ ๊ธ์ก์ ์ดํฉ์ ๊ตฌํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.SELECT status, SUM(amount) FROM orders WHERE status = 'paid' GROUP BY status ORDER BY status;์ด ๊ฒฝ์ฐ์๋ ORDER BY๋ ํฐ ์ญํ ์ ํ์ง ์์ง๋ง, ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ๋ฉด ๋ถํ์ํ ์ ๋ ฌ ์ฐ์ฐ์ด ์ถ๊ฐ๋์ง ์๋๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 111
Q&A
๋ ผ๋ฆฌ์ ์ญ์ ์ ์ฉ์ INDEX ์์ฑ ์ ๋ต
๋ง์ต๋๋ค. ๋ ผ๋ฆฌ์ ์ญ์ ์ deleted_at ์ปฌ๋ผ์ด ์กฐํ์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 138
Q&A
ConnectionRefusedError: [WinError 10061]
์๋ ํ์ธ์, ์ด๋ฉ์ผ ์ค์ ๊ด๋ จํด์ settings.py์ ์ด๋ค ๊ฐ์ ๋ฃ์ผ์ จ๋์ง ์๋ ค์ฃผ์ค๋์?
- Likes
- 0
- Comments
- 2
- Viewcount
- 137




