Tinkerbell Glitter
[250318] pgvector๋ž€?
Data Base ๐Ÿ—ƒ๏ธ/SQL ๐Ÿ—‚๏ธ
pgvector๋ž€?1. pgvector ์ •์˜`pgvector`๋Š” PostgreSQL์—์„œ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ(์˜ˆ: ์ž„๋ฒ ๋”ฉ)๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ™•์žฅ(extension)์ด๋‹ค. ํŠนํžˆ, ๋จธ์‹ ๋Ÿฌ๋‹๊ณผ AI ๊ด€๋ จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์œ ์‚ฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ๋Š” ์ตœ๊ทผ์ ‘ ์ด์›ƒ ๊ฒ€์ƒ‰(Nearest Neighbor Search, NNS)์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.2. pgvector์˜ ์ฃผ์š” ๊ธฐ๋Šฅ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ ์ €์žฅ`pgvector`๋Š” `vector` ํƒ€์ž…์„ ์ œ๊ณตํ•˜์—ฌ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ์˜ˆ: `vector(1536)` → OpenAI์˜ `text-embedding-ada-002` ๋ชจ๋ธ์—์„œ ์ƒ์„ฑํ•œ 1536์ฐจ์›์˜ ๋ฒกํ„ฐ๋ฅผ ์ €์žฅ ๊ฐ€๋Šฅ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰(Nearest Neighbor Search, NNS)๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ์„ ๊ธฐ๋ฐ˜..
[250116] ์Šคํ‚ค๋งˆ(Schema)์™€ ERD(Entity-Relationship Diagram)
Back End ๐Ÿ“ฒ/Django โ›“๏ธ
์Šคํ‚ค๋งˆ๋ž€(Schema)๋ž€?1. ์Šคํ‚ค๋งˆ ์ •์˜์Šคํ‚ค๋งˆ(Schema)๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ์™€ ์„ค๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ์ฒญ์‚ฌ์ง„(blueprint)/์„ค๊ณ„๋„ ์ด๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ: ํ…Œ์ด๋ธ”, ์ปฌ๋Ÿผ, ๋ฐ์ดํ„ฐ ํƒ€์ž…, ์ œ์•ฝ ์กฐ๊ฑด, ๊ด€๊ณ„ ๋“ฑ์„ ํฌํ•จํ•œ๋‹ค.์‰ฝ๊ฒŒ ๋งํ•ด, ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ €์žฅ๋˜๊ณ  ๊ด€๋ฆฌ๋  ์ง€๋ฅผ ์ •์˜ํ•œ ๊ฒƒ์ด๋‹ค.2. ์Šคํ‚ค๋งˆ์˜ ์ข…๋ฅ˜์Šคํ‚ค๋งˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์‚ฌ์šฉ ๋ชฉ์ ๊ณผ ์ˆ˜์ค€์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๋กœ ๋‚˜๋‰œ๋‹ค.๋ฌผ๋ฆฌ์  ์Šคํ‚ค๋งˆ(Physical Schema)๋ฐ์ดํ„ฐ๊ฐ€ ์‹ค์ œ๋กœ ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹๊ณผ ์ €์žฅ์†Œ์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•œ๋‹ค.๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜๋˜๋Š”์ง€, ์ธ๋ฑ์Šค ์ƒ์„ฑ ์—ฌ๋ถ€ ๋“ฑ์„ ํฌํ•จํ•œ๋‹ค.์˜ˆ: ํ…Œ์ด๋ธ” ํŒŒ์ผ, ๋ฐ์ดํ„ฐ ๋ธ”๋ก, ์ธ๋ฑ์Šค ๊ตฌ์กฐ.๋…ผ๋ฆฌ์  ์Šคํ‚ค๋งˆ(Logical Schema)๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ์„ค๊ณ„๋ฅผ ์ •์˜ํ•œ๋‹ค.ํ…Œ์ด๋ธ”, ๋ทฐ, ์ œ์•ฝ ์กฐ๊ฑด, ๊ด€๊ณ„ ๋“ฑ์„ ํฌํ•จ..
[241227] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ SQL ๋ฌธ์ œ
Algorithm ๐Ÿ“Š/๋ฌธ์ œ ํ’€์ด ๐Ÿ’ฏ
์ฃผ๋ฌธ๋Ÿ‰์ด ๋งŽ์€ ์•„์ด์Šคํฌ๋ฆผ๋“ค ์กฐํšŒํ•˜๊ธฐ ๐Ÿฆ ๋‹ค์Œ์€ ์•„์ด์Šคํฌ๋ฆผ ๊ฐ€๊ฒŒ์˜ ์ƒ๋ฐ˜๊ธฐ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ๋‹ด์€ `FIRST_HALF`ํ…Œ์ด๋ธ”๊ณผ 7์›”์˜ ์•„์ด์Šคํฌ๋ฆผ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ๋‹ด์€ `JULY` ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. `FIRST_HALF` ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, `SHIPMENT_ID`, `FLAVOR`, `TOTAL_ORDER`๋Š” ๊ฐ๊ฐ ์•„์ด์Šคํฌ๋ฆผ ๊ณต์žฅ์—์„œ ์•„์ด์Šคํฌ๋ฆผ ๊ฐ€๊ฒŒ๊นŒ์ง€์˜ ์ถœํ•˜ ๋ฒˆํ˜ธ, ์•„์ด์Šคํฌ๋ฆผ ๋ง›, ์ƒ๋ฐ˜๊ธฐ ์•„์ด์Šคํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋Ÿ‰์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. `FIRST_HALF` ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋Š” `FLAVOR`์ž…๋‹ˆ๋‹ค. `FIRST_HALF`ํ…Œ์ด๋ธ”์˜ `SHIPMENT_ID`๋Š” `JULY`ํ…Œ์ด๋ธ”์˜ `SHIPMENT_ID`์˜ ์™ธ๋ž˜ ํ‚ค์ž…๋‹ˆ๋‹ค.NAMETYPENULLABLESHIPMENT_IDINT(N)FALSEFLAVORVARCHAR(N)FAL..
[241122] SQL ์‚ฌ์ „ํ€˜์ŠคํŠธ ์Šคํ„ฐ๋””
[SPARTA] AI 9 (24.11 ~ 25.03) ๐Ÿƒ๐Ÿป‍โ™€๏ธ
์˜ค๋Š˜ ์กฐ์›๋“ค๋ผ๋ฆฌ SQL ์‚ฌ์ „ํ€˜์ŠคํŠธ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค.์กฐ์žฅ๋‹˜์˜ ์ฟผ๋ฆฌ.๋‚ด ์ฟผ๋ฆฌ.๋‚˜๋Š” 32๋ฒˆ ๋ฌธ์ œ(8) LOL์„ ํ•˜๋‹ค๊ฐ€ ํ™ง๋ณ‘์ด ๋‚˜์„œ ๋ณ‘์›์„ ์ฐพ์•„์™”์Šต๋‹ˆ๋‹ค. -32. doctors ํ…Œ์ด๋ธ”์—์„œ ํ˜„์žฌ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ 5๋…„ ์ด์ƒ ๊ทผ๋ฌด(hire_date)ํ•œ ์˜์‚ฌ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!)๋ฅผ ๋ชฐ๋ž๊ธฐ ๋•Œ๋ฌธ์— ์ฟผ๋ฆฌ์ž‘์„ฑ์„ ํŒจ์Šคํ•จ. ์กฐ์žฅ๋‹˜์ด ๋ง์”€ํ•˜์‹œ๊ธฐ๋ฅผ 5๊ฐ•์„ ์ˆ˜๊ฐ•ํ•ด์•ผ ๋‚ ์งœ ํฌ๋งท์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š”๋ฐ,๋‚œ ์ผ๋‹จ 5๊ฐ•์„ ์ˆ˜๊ฐ•ํ•˜์ง€ ์•Š์€ ์ƒํƒœ์˜€๋‹ค.๊ทธ๋ฆฌ๊ณ  5๊ฐ•์˜ ๋‚ด์šฉ์œผ๋กœ๋„ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ์ฟผ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ ์ง€์ €๋ถ„ํ•ด์ง€๋‹ˆ๊ตฌ๊ธ€๋ง์„ ํ™œ์šฉํ•ด์„œ ์ด๋ฒˆ ๋ฌธ์ œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๊ฒŒ ์ฟผ๋ฆฌ๊ฐ€ ํ›จ์”ฌ ๊น”๋”ํ•˜๋‹ค๊ณ  ํ•˜์…จ๋‹ค. ๊ทธ๋ž˜์„œ ์กฐ์žฅ๋‹˜์ฒ˜๋Ÿผselect id, name, hire_datefrom doctorsWHERE TIMESTAMPDIFF(YE..
[241115] ๋น„์ „๊ณต์ž๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” AI ์ง€์‹-์•„ํ‹ฐํด ์Šคํ„ฐ๋””
[SPARTA] AI 9 (24.11 ~ 25.03) ๐Ÿƒ๐Ÿป‍โ™€๏ธ
AI ํŠธ๋ž™์„ ์‹ ์ฒญํ•˜๊ณ  ๋‚˜์„œ,์–ผ๋ฆฌ๋ฒ„๋“œ ํ˜œํƒ์œผ๋กœ ๋น„์ „๊ณต์ž๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” AI ์ง€์‹ ๋„์„œ๋ฅผ์„ ๋ฌผ๋กœ ๋ฐ›์•„๋ณด์•˜๋‹ค. ์˜ค๋Š˜์€ ํ•ด๋‹น ์ฑ…์„ ๋…์„œํ•˜๊ณ , ์ฑ…์„ ์ฝ๊ณ  ์•Œ๊ฒŒ๋œ ์ ์ด๋‚˜ ๋А๋‚€ ์ ์„๊ณต์œ ํ•˜๋Š” ์•„ํ‹ฐํด ์Šคํ„ฐ๋”” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ์˜ค๋Š˜ ์›๋ž˜ SQL ์‚ฌ์ „ ํ€˜์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ,๋…์„œ๋ฅผ ํ•˜๋А๋ผ ํ€˜์ŠคํŠธ๋‚˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ–ˆ๋‹คใ… ใ… (1์žฅ๋งŒ ์ฝ์—ˆ์œผ๋ฉด ๋๋Š”๋ฐ ๊ทธ๊ฒƒ๋„ ๋ชจ๋ฅด๊ณ  2์žฅ๊นŒ์ง€ ์ญ‰ ์ฝ๊ณ  ์žˆ์—ˆ์Œใ…‹ใ…‹)๊ทธ๋Ÿฌ๋ฏ€๋กœ ์˜ค๋Š˜ TIL์€ ์•„ํ‹ฐํด ์Šคํ„ฐ๋”” ํ›„๊ธฐ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค,,, ์กฐ์žฅ๋‹˜์˜ ์•„ํ‹ฐํด.์กฐ์žฅ๋‹˜์ด ์„ค๋ช…ํ•˜์‹œ๋ฉด์„œ ๋‹ค์–‘ํ•œ AI ๊ธฐ์ˆ  ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ์…จ๋‹ค.LLM, ํŠธ๋žœ์Šคํฌ๋จธ ๋“ฑ๋“ฑ,, ๋“ค์„ ๋• ์—„์ฒญ ๋งŽ์•˜๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ๋ง‰์ƒ ์ ์œผ๋ ค๋‹ˆ ๋‘๊ฐ€์ง€๋ฐ–์— ๊ธฐ์–ต์ด ์•ˆ๋‚œ๋‹ค.์กฐ์žฅ๋‹˜์ด ์ €๊ฒƒ๋“ค์„ ๋‹ค ์•Œ์•„๋‘๊ณ  ์˜ˆ์Šตํ•˜๋ ค๋Š” ๊ฒƒ ๋ณด๋‹ค๋Š”,๊ทธ๋ƒฅ ์ด๋Ÿฐ์ด๋Ÿฐ๊ฒŒ ์žˆ๋‹ค~ ํ•˜๋Š” ์ •๋„๋กœ๋งŒ..
[241114] ์—‘์…€๋ณด๋‹ค ์‰ฝ๊ณ  ๋น ๋ฅธ SQL 4์ฃผ-5~7 ๊ฐ•์˜
Data Base ๐Ÿ—ƒ๏ธ/SQL ๐Ÿ—‚๏ธ
4์ฃผ์ฐจ-5~7๊ฐ•์˜๋“œ๋””์–ด ์ƒˆ๋กœ์šด ๊ฑธ ๋˜ ๋ฐฐ์›Œ๋ด…๋‹ˆ๋‹ค Join,,,์‚ฌ์‹ค ์ฟผ๋ฆฌ ๋‚ด๊ฐ€ ์‚ฌ๋ถ€์ž‘ ๊ฑฐ๋ฆฌ๋ฉด์„œ ํ…Œ์ด๋ธ”์ด ๋‹ค๋ฅธ ๊ฒƒ๋ผ๋ฆฌ๋„๊ฐ™์ด ๋ฌถ์–ด์„œ ์กฐํšŒํ•ด๋ณด๊ณ  ์‹ถ์€๋ฐ๋ญ˜ํ•ด๋„ ์•ˆ๋˜๋Š” ๊ฒƒ์ž„???๊ทผ๋ฐ ์ด์   ์•ž์œผ๋กœ join์„ ์จ์ฃผ๋ฉด ๋˜๊ฒ ๊ตฐ์š”^_^์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ Join ์˜ ๊ธฐ๋ณธ์„ค๋ช…! LEFT JOIN๊ธฐ๋ณธ๊ตฌ์กฐ select ์กฐํšŒํ•  ์ปฌ๋Ÿผfrom ํ…Œ์ด๋ธ”1 a left join ํ…Œ์ด๋ธ”2 b on a.์ปฌ๋Ÿผ๋ช…=b.์ปฌ๋Ÿผ๋ช… ํ…Œ์ด๋ธ”1์˜ ๋ฐ์ดํ„ฐ + ํ…Œ์ด๋ธ”2 ๋ฐ์ดํ„ฐ ์ค‘์— ํ…Œ์ด๋ธ”1๊ณผ ์ค‘๋ณต๋˜๋Š” ๊ฒฐ๊ณผ๊ฐ’์ด ๋„์ถœ. INNER JOIN๊ธฐ๋ณธ์ฃผ๊ณ  select ์กฐํšŒํ•  ์ปฌ๋Ÿผfrom ํ…Œ์ด๋ธ”1 a inner join ํ…Œ์ด๋ธ”2 b on a.์ปฌ๋Ÿผ๋ช…=b.์ปฌ๋Ÿผ๋ช… ํ…Œ์ด๋ธ”1 ๊ณผ ํ…Œ์ด๋ธ”2 ์˜ ์ค‘๋ณต๋˜๋Š” ๊ฒฐ๊ณผ๊ฐ’๋งŒ ๋„์ถœ.์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋ฉด food_orders ํ…Œ์ด๋ธ”์˜ ๊ฐ’๋“ค +payments ํ…Œ์ด๋ธ”์˜ ๊ฐ’..