inspeep

FastAPI ๋ฐฑ์—”๋“œ ์ตœ์ ํ™”: Supabase์—์„œ ๋กœ์ปฌ PostgreSQL๋กœ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… (asyncpg, 524 ์—๋Ÿฌ) ๊ฒฝํ—˜๊ธฐ

์กฐํšŒ ์ˆ˜ 13
์ถ”์ฒœ ์ˆ˜ 0
๋Œ“๊ธ€ 0

์ตœ๊ทผ ์ €๋Š” ํŒŒ์ด์ฌ(FastAPI)๊ณผ SQLAlchemy๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋žซํผ์„ ๊ฐœ๋ฐœํ•˜๋ฉฐ, ๋น ๋ฅด๊ณ  ํŽธ๋ฆฌํ•œ ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ ์ˆ˜ํŒŒ๋ฒ ์ด์Šค(Supabase)๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ์—๋Š” ํด๋ผ์šฐ๋“œ์˜ ํŽธ๋ฆฌํ•จ์— ๊ฐํƒ„ํ•˜๋ฉฐ ๋งŒ์กฑ์Šค๋Ÿฝ๊ฒŒ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ์„œ๋น„์Šค์— '์ž๋™ํ™” ํฌ์ŠคํŒ… ๋ด‡' ๋กœ์ง์„ ์—ฐ๋™ํ•˜๋ฉด์„œ ์‹ฌ๊ฐํ•œ ๋ฒฝ์— ๋ถ€๋”ชํžˆ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์‹ญ ๊ฐœ์˜ ๊ฒŒ์‹œ๊ธ€๊ณผ ์ธ๋„ค์ผ ์ด๋ฏธ์ง€๋ฅผ ๋ฒˆ์—ญ API์™€ ์—ฐ๋™ํ•˜์—ฌ 4~16๋ถ„ ๊ฐ„๊ฒฉ์œผ๋กœ ๊ณ„์†ํ•ด์„œ ๋ฐ€์–ด ๋„ฃ๋‹ค ๋ณด๋‹ˆ(๋ฒŒํฌ ์ธ์„œํŠธ), ํด๋ผ์šฐ๋“œ DB ํŠน์œ ์˜ Disk I/O ๋ณ‘๋ชฉ ํ˜„์ƒ๊ณผ ์ปค๋„ฅ์…˜ ํ•œ๊ณ„(Connection Limit)๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธ€์ด ์˜ฌ๋ผ๊ฐ€๋‹ค ๋ง๊ณ  ์„œ๋ฒ„๊ฐ€ ๋ป—์–ด๋ฒ„๋ฆฌ๋Š” ํ˜„์ƒ์„ ๋ณด๋ฉฐ, ์ €๋Š” ์ค‘๋Œ€ํ•œ ๊ฒฐ๋‹จ์„ ๋‚ด๋ ธ์Šต๋‹ˆ๋‹ค.

"์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ํƒ€๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ์ง€์—ฐ(Latency)์„ ์—†์• ๊ณ , ๋‚ด ์„œ๋ฒ„ ์ž์›์„ 100% ํ™œ์šฉํ•˜์ž." ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํด๋ผ์šฐ๋“œ์—์„œ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๊ฐ€ ๊ตฌ๋™ ์ค‘์ธ ๋กœ์ปฌ ํ™˜๊ฒฝ(๋กœ์ปฌ PostgreSQL, localhost:5432)์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋Œ€๋Œ€์ ์ธ ๊ณต์‚ฌ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด ๊ณผ์ •์—์„œ ์ œ๊ฐ€ ๊ฒช์—ˆ๋˜ ํ”ผ๋ˆˆ๋ฌผ ๋‚˜๋Š” 3๊ฐ€์ง€ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๊ฒฝํ—˜์„ ๊ณต์œ ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.




1. ์ฒซ ๋ฒˆ์งธ ์‚ฝ์งˆ: ํ™˜๊ฒฝ๋ณ€์ˆ˜(.env)๋ฅผ ๋ฐ”๊ฟจ๋Š”๋ฐ ์™œ ์ ‘์†์„ ๋ชป ํ•˜๋‹ˆ? (Connection refused)


๊ฐ€์žฅ ๋จผ์ € ๊ฒช์€ ํ™ฉ๋‹นํ•œ ๋ฌธ์ œ๋Š” DB ์—ฐ๊ฒฐ ์˜ค๋ฅ˜์˜€์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ์„œ๋ฒ„์— PostgreSQL์„ ๋ฌด์‚ฌํžˆ ์„ค์น˜ํ•˜๊ณ , .env ํŒŒ์ผ์˜ DB ์ ‘์† URL ํฌํŠธ๋ฅผ ํด๋ผ์šฐ๋“œ์šฉ ํฌํŠธ์—์„œ ๋กœ์ปฌ ๊ธฐ๋ณธ ํฌํŠธ์ธ 5432๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ... ํ™”๋ฉด์— ๋”์ฐํ•œ ์—๋Ÿฌ๊ฐ€ ์ถœ๋ ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Connection refused: Cannot connect to port 6543

๋ถ„๋ช… .env์—๋Š” 5432๋กœ ์ ์–ด๋‘์—ˆ๋Š”๋ฐ, ์„œ๋ฒ„๋Š” ๊ณ„์†ํ•ด์„œ ์—‰๋šฑํ•œ 6543 ํฌํŠธ๋ฅผ ์ฐพ์œผ๋ฉฐ ์—ฐ๊ฒฐ์„ ๊ฑฐ๋ถ€ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋ฅผ ์ง€์›Œ๋ณด๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ป๋‹ค ์ผœ๋ด๋„ ์†Œ์šฉ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋„๋Œ€์ฒด ์–ด๋””์„œ ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ๊ผฌ์ธ ๊ฒƒ์ผ๊นŒ์š”?

์ €๋Š” ๋ฆฌ๋ˆ…์Šค ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  grep ๋ช…๋ น์–ด๋ฅผ ๋นผ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. grep -rn "6543" . (ํ˜„์žฌ ํด๋”์™€ ํ•˜์œ„ ํด๋”์—์„œ 6543์ด๋ผ๋Š” ํ…์ŠคํŠธ๋ฅผ ๋ชจ๋‘ ์ฐพ์•„๋ผ!)

๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋Š” ์ถฉ๊ฒฉ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์— Supabase ์™ธ๋ถ€ ์ปค๋„ฅ์…˜ ํ’€๋ง(Connection Pooling)์„ ์„ธํŒ…ํ•  ๋•Œ, database.py ํŒŒ์ผ ๊นŠ์ˆ™ํ•œ ๊ณณ์— URL ๋ฌธ์ž์—ด ์ค‘ .replace(":5432/", ":6543/")์„ ํ†ตํ•ด ๊ฐ•์ œ๋กœ ํฌํŠธ๋ฅผ ๋ณ€ํ™˜ํ•ด๋ฒ„๋ฆฌ๋Š” ํ•˜๋“œ์ฝ”๋”ฉ ๋กœ์ง์„ ์ œ๊ฐ€ ์ง์ ‘ ์งœ๋‘๊ณ  ๊นŒ๋งฃ๊ฒŒ ์žŠ๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์ค„์„ ์ฐพ์•„๋‚ด์–ด ๊น”๋”ํ•˜๊ฒŒ ์‚ญ์ œํ•˜๊ณ  ๋‚˜๋‹ˆ, ๊ทธ์ œ์•ผ FastAPI๊ฐ€ ๋กœ์ปฌ DB(5432)์— ์ •์ƒ์ ์œผ๋กœ ๋ฟŒ๋ฆฌ๋ฅผ ๋‚ด๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์˜ ์ œ๊ฐ€ ๋งŒ๋“  ํ•จ์ •์— ์ œ๊ฐ€ ๋น ์ง„ ์…ˆ์ด์ฃ .




2. ๋‘ ๋ฒˆ์งธ ์‚ฝ์งˆ: ์„ฑ๋Šฅ์˜ ํ•œ๊ณ„ ๋ŒํŒŒ, ๋น„๋™๊ธฐ ๋“œ๋ผ์ด๋ฒ„(asyncpg)๋กœ์˜ ์ „ํ™˜

๋กœ์ปฌ DB๋กœ ์—ฐ๊ฒฐ์€ ์„ฑ๊ณตํ–ˆ์ง€๋งŒ, ๋Œ€๋Ÿ‰์˜ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๊ธฐ ์œ„ํ•ด ์ €๋Š” ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ ๋™๊ธฐ์‹ ๋“œ๋ผ์ด๋ฒ„์ธ psycopg ๋Œ€์‹ , ํŒŒ์ด์ฌ์—์„œ ๊ฐ€์žฅ ๋น ๋ฅธ ๋น„๋™๊ธฐ PostgreSQL ๋“œ๋ผ์ด๋ฒ„์ธ asyncpg๋กœ ์—”์ง„์„ ๊ต์ฒดํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋ฐ”๊พธ์ž ์ด๋ฒˆ์—๋Š” SQLAlchemy ์„ค์ •์—์„œ ํ˜ธํ™˜์„ฑ ์—๋Ÿฌ๊ฐ€ ๋ฟœ์–ด์ ธ ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ๋™๊ธฐ์‹์—์„œ ์ž˜ ์ž‘๋™ํ•˜๋˜ ์ปค๋„ฅ์…˜ ํƒ€์ž„์•„์›ƒ์ด๋‚˜ ์„œ๋ฒ„ ์„ธํŒ… ์ธ์ˆ˜๋“ค์ด asyncpg ๊ทœ๊ฒฉ๊ณผ ๋งž์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋’ค์ ธ๊ฐ€๋ฉฐ database.py์˜ connect_args ์„ค์ •์„ ๋น„๋™๊ธฐ ๊ทœ๊ฒฉ์— ๋งž๊ฒŒ ํŠœ๋‹ํ–ˆ์Šต๋‹ˆ๋‹ค.




์ด ํŠœ๋‹์„ ๊ฑฐ์นœ ํ›„, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์˜ ๋งˆ๋ฒ•์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋А๋ผ ๋ฉˆ์ถฐ์žˆ๋˜ ๋ฐฑ์—”๋“œ ์Šค๋ ˆ๋“œ๋“ค์ด ์ž์œ ๋กญ๊ฒŒ ํ’€๋ ค๋‚˜๋ฉด์„œ, ์„œ๋ฒ„์˜ ๋™์‹œ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์ด ์ฐจ์›์ด ๋‹ค๋ฅด๊ฒŒ ์พŒ์ ํ•ด์กŒ์Šต๋‹ˆ๋‹ค.




3. ์„ธ ๋ฒˆ์งธ ์‚ฝ์งˆ: ํด๋ผ์šฐ๋“œํ”Œ๋ ˆ์–ด(Cloudflare) 524 ์—๋Ÿฌ์˜ ๋Šช


๋งˆ์นจ๋‚ด ์•„ํ‚คํ…์ฒ˜ ์„ธํŒ…์„ ๋๋‚ด๊ณ , ๋ด‡์„ ๊ฐ€๋™ํ•˜์—ฌ ์ˆ˜์‹ญ ๊ฐœ์˜ ๊ฒŒ์‹œ๊ธ€์„ ํ•œ ๋ฒˆ์— ๋ฒŒํฌ ์ธ์„œํŠธ(Bulk Insert) ํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์—…๋กœ๋“œ ๋„์ค‘ ๊ฐ‘์ž๊ธฐ ์›น ํ™”๋ฉด์— 'Cloudflare 524 A timeout occurred' ์—๋Ÿฌ๊ฐ€ ๋œจ๋ฉด์„œ ์ค‘๋ณต ๊ฒŒ์‹œ๊ธ€์ด ์˜ฌ๋ผ๊ฐ€๋Š” ์น˜๋ช…์ ์ธ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์›์ธ์€ ๋ฐฑ์—”๋“œ์˜ '์ฒ˜๋ฆฌ ์‹œ๊ฐ„'์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒŒํฌ ์—…๋กœ๋“œ๋ฅผ ํ•  ๋•Œ ๋‹จ์ˆœํžˆ DB์— ํ…์ŠคํŠธ๋งŒ ๋„ฃ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์™ธ๋ถ€ ๋ฒˆ์—ญ API๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๋ฆฌ์‚ฌ์ด์ง•ํ•˜๋Š” ๋ฌด๊ฑฐ์šด ์ž‘์—…์ด ํฌํ•จ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์ด 100์ดˆ๋ฅผ ๋„˜์–ด๊ฐ€์ž, ์„œ๋ฒ„ ์•ž๋‹จ์„ ์ง€ํ‚ค๊ณ  ์žˆ๋˜ ํด๋ผ์šฐ๋“œํ”Œ๋ ˆ์–ด๊ฐ€ "์„œ๋ฒ„๊ฐ€ ์ฃฝ์€ ๊ฒƒ ๊ฐ™์œผ๋‹ˆ ์—ฐ๊ฒฐ์„ ๋Š๊ฒ ๋‹ค"๋ผ๋ฉฐ 100์ดˆ ํƒ€์ž„์•„์›ƒ(524 ์—๋Ÿฌ)์„ ๋ฐœ์ƒ์‹œํ‚จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„๋Š” ๋’ค์—์„œ ๊ณ„์† ๊ธ€์„ ์“ฐ๊ณ  ์žˆ๋Š”๋ฐ ํ”„๋ก ํŠธ์—”๋“œ ์—ฐ๊ฒฐ๋งŒ ๋Š๊ธฐ๋‹ˆ, ๋ด‡์€ "์—…๋กœ๋“œ ์‹คํŒจ์ธ๊ฐ€?" ํ•˜๊ณ  ๊ธ€์„ ๋˜๋‹ค์‹œ ์ „์†กํ•˜์—ฌ ์ค‘๋ณต ํฌ์ŠคํŒ…์ด ์ผ์–ด๋‚œ ๊ฒƒ์ด์—ˆ์ฃ . ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ์ตœ์ ํ™”๋Š” ์˜์™ธ๋กœ ๊ฐ„๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•œ ๋ฒˆ์— ์ „์†กํ•˜๋Š” ์ฒญํฌ ์‚ฌ์ด์ฆˆ(Chunk Size, ์ „์†ก ๋‹จ์œ„)๋ฅผ ๊ธฐ์กด 20๊ฐœ์—์„œ 5๊ฐœ๋กœ ๋Œ€ํญ ์ค„์˜€์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ์— 5๊ฐœ์”ฉ๋งŒ ๋ฒˆ์—ญํ•˜๊ณ  DB์— ๋ฐ€์–ด ๋„ฃ๋„๋ก ์ชผ๊ฐœ์–ด ์ฒ˜๋ฆฌํ•˜๋‹ˆ, API ์‘๋‹ต ์‹œ๊ฐ„์ด 20์ดˆ ์ด๋‚ด๋กœ ๋‹จ์ถ•๋˜์–ด ํด๋ผ์šฐ๋“œํ”Œ๋ ˆ์–ด์˜ 100์ดˆ ํƒ€์ž„์•„์›ƒ ์žฅ๋ฒฝ์„ ์™„๋ฒฝํ•˜๊ฒŒ ํ”ผํ•ด ๊ฐˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.




๋งบ์œผ๋ฉฐ: ๋กœ์ปฌ DB ํšŒ๊ท€๊ฐ€ ๊ฐ€์ ธ์˜จ ์—„์ฒญ๋‚œ ๊ฒฐ์‹ค


๊ธธ๊ณ  ํ—˜๋‚œํ–ˆ๋˜ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…์„ ๋งˆ์น˜๊ณ  ๋‚˜๋‹ˆ, ๊ฒฐ๊ณผ๋Š” ์ƒ์ƒ ์ด์ƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ํƒ€์ง€ ์•Š๊ณ  ๋กœ์ปฌ(localhost) ๋‚ด๋ถ€์—์„œ ์ฆ‰๊ฐ์ ์œผ๋กœ ํ†ต์‹ ํ•˜๊ฒŒ ๋˜๋ฉด์„œ DB ์‘๋‹ต ์†๋„๊ฐ€ ๋น„์•ฝ์ ์œผ๋กœ ์ƒ์Šนํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์—‡๋ณด๋‹ค ์ˆ˜์‹ญ ๊ฐœ์˜ ๊ฒŒ์‹œ๊ธ€๊ณผ ์ธ๋„ค์ผ ๋ฏธ๋””์–ด๋ฅผ ๋‹ค๋ฃจ๊ณ , 4~16๋ถ„ ๊ฐ„๊ฒฉ์œผ๋กœ ์˜ˆ์•ฝ ๋ฐœํ–‰ํ•˜๋Š” ์•„์ฃผ ๋ฌด๊ฑฐ์šด ์ž๋™ํ™” ๋ด‡ ๋กœ์ง์„ 3๊ฐœ ์ด์ƒ ๋™์‹œ์— ๋Œ๋ ค๋„ ์„œ๋ฒ„ ์ž์›(CPU, RAM)์ด ๋„‰๋„‰ํ•˜๊ฒŒ ์œ ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ ํด๋ผ์šฐ๋“œ DB์˜ ์ปค๋„ฅ์…˜ ํ•œ๊ณ„์— ๋ฒŒ๋ฒŒ ๋–จ๋˜ ๊ณผ๊ฑฐ์™€๋Š” ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋ณ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํด๋ผ์šฐ๋“œ๊ฐ€ ๋ฌด์กฐ๊ฑด ์ •๋‹ต์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ˜„์žฌ ์„œ๋น„์Šค์˜ ํŠธ๋ž˜ํ”ฝ ํŒจํ„ด๊ณผ ์ž๋™ํ™” ๋กœ์ง์˜ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ, ๋•Œ๋กœ๋Š” ์ด๋ ‡๊ฒŒ ์˜จํ”„๋ ˆ๋ฏธ์Šค(๋กœ์ปฌ) ํ™˜๊ฒฝ์œผ๋กœ ๋ฌต์งํ•˜๊ฒŒ ์‹œ์Šคํ…œ์„ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ์ตœ๊ณ ์˜ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ์„ ๋ผˆ์ €๋ฆฌ๊ฒŒ ๋ฐฐ์šด ์†Œ์ค‘ํ•œ ๊ฒฝํ—˜์ด์—ˆ์Šต๋‹ˆ๋‹ค.




โ“ ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ (FAQ)


Q1. Supabase(ํด๋ผ์šฐ๋“œ)์—์„œ ๋กœ์ปฌ DB๋กœ ์ด์ „ํ•˜๋ฉด ๋ฐฑ์—…์€ ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

A. ๋กœ์ปฌ DB์˜ ๊ฐ€์žฅ ํฐ ๋‹จ์ ์€ ๋ฐฑ์—…์„ ์ง์ ‘ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ๋ฆฌ๋ˆ…์Šค cron ํƒญ๊ณผ pg_dump ๋ช…๋ น์–ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋งค์ผ ์ƒˆ๋ฒฝ 3์‹œ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋คํ”„(๋ฐฑ์—…)ํ•˜๊ณ , ๊ทธ ํŒŒ์ผ์„ AWS S3๋‚˜ ๋ณ„๋„์˜ ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€๋กœ ์ž๋™ ์ „์†กํ•˜๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


Q2. Cloudflare 524 ์—๋Ÿฌ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ํด๋ผ์šฐ๋“œํ”Œ๋ ˆ์–ด ์„ค์ •์„ ๋Š˜๋ฆด ์ˆ˜๋Š” ์—†๋‚˜์š”?

A. ๋ฌด๋ฃŒ ํ”Œ๋žœ(Free)์ด๋‚˜ ํ”„๋กœ ํ”Œ๋žœ ์‚ฌ์šฉ์ž ๊ธฐ์ค€, ํด๋ผ์šฐ๋“œํ”Œ๋ ˆ์–ด์˜ 100์ดˆ ํƒ€์ž„์•„์›ƒ(524)์€ ํ•˜๋“œ ๋ฆฌ๋ฐ‹(Hard Limit)์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์ž„์˜๋กœ ๋Š˜๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ(Enterprise) ์š”๊ธˆ์ œ์—์„œ๋งŒ ์กฐ์ ˆ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ๋ฐฑ์—”๋“œ ๋กœ์ง ์ž์ฒด๋ฅผ 100์ดˆ ์ด๋‚ด๋กœ ์‘๋‹ตํ•˜๋„๋ก ์ชผ๊ฐœ๋Š” ๊ฒƒ(Chunking)์ด ์œ ์ผํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๋‹ค.


Q3. ๋น„๋™๊ธฐ asyncpg ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์“ฐ๋ฉด ๋ฌด์กฐ๊ฑด ๋นจ๋ผ์ง€๋‚˜์š”?

A. I/O ๋ฐ”์šด๋“œ ์ž‘์—…(DB๋ฅผ ์ฐ”๋Ÿฌ๋†“๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„)์ด ๋งŽ์€ ์›น ์„œ๋ฒ„๋ผ๋ฉด ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ๊ฐ€ ์ข‹์•„์ ธ์„œ ๊ทน์ ์ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ํŒŒ์ด์ฌ ์ฝ”๋“œ ์ „์ฒด๊ฐ€ async/await ๊ตฌ์กฐ๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ์งœ์—ฌ ์žˆ์ง€ ์•Š๊ณ  ์ค‘๊ฐ„์— ๋ธ”๋กœํ‚น(Blocking) ์ฝ”๋“œ๊ฐ€ ์„ž์—ฌ ์žˆ๋‹ค๋ฉด ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋„์ž… ์ „ ์•„ํ‚คํ…์ฒ˜ ์ ๊ฒ€์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

๐Ÿ’ฌ ๋Œ“๊ธ€ 0๊ฐœ

IT ๊ฒŒ์‹œํŒ

๊ณต์ง€
Notice
๊ณต์ง€ inspeep ์ปค๋ฎค๋‹ˆํ‹ฐ ์ด์šฉ ๋ฐ ๊ฒŒ์‹œ๋ฌผ ๊ด€๋ฆฌ ๊ทœ์ • ์•ˆ๋‚ด
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.04.15 ๐Ÿ‘€ ์กฐํšŒ 57 ๐Ÿ‘ ์ถ”์ฒœ 0
BEST
์ธ๋„ค์ผ
BEST 2. ์ฝ”๋”ฉ ๋ฌธ์™ธํ•œ์˜ ์›Œ๋“œํ”„๋ ˆ์Šค ์ •๋ณต๊ธฐ: VS Code์™€ FTP์˜ ์Šต๊ฒฉ
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.03.05 ๐Ÿ‘€ ์กฐํšŒ 135 ๐Ÿ‘ ์ถ”์ฒœ 0
Random Pick
์ธ๋„ค์ผ
Random Pick ์ƒ์ƒ์ดˆ์›” EU ๋ฐฐํ„ฐ๋ฆฌ ๊ต์ฒด ์Šค๋งˆํŠธํฐ ์˜๋ฌดํ™”๋ž˜
๐Ÿ‘ค ๋ฃธ๋””๋ฅด ๐Ÿ“… 2026.05.09 ๐Ÿ‘€ ์กฐํšŒ 17 ๐Ÿ‘ ์ถ”์ฒœ 0
Random Pick
์ธ๋„ค์ผ
Random Pick ์‹ ๋ฐ•ํ•œ ai๋ณ„ ์—‰๋ฉ์ด ๋•Œ๋ฆฌ๋ฉด ๋ฐ˜์‘
๐Ÿ‘ค Cyan ๐Ÿ“… 2026.05.14 ๐Ÿ‘€ ์กฐํšŒ 6 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๋‰ด์Šค
์ธ๋„ค์ผ
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๋‰ด์Šค
์ธ๋„ค์ผ
๋‰ด์Šค
์ธ๋„ค์ผ
์‚ผ์„ฑ์ „์ž ์ถœ์‹ ์ด ์•„์ดํฐ ๋“€์˜ค๋ณด๊ณ  ๋А๋‚€์ .jpg
๐Ÿ‘ค ๋ผ๋‘ ๐Ÿ“… 2026.09.11 ๐Ÿ‘€ ์กฐํšŒ 10 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
์‹ฑ๊ธ€๋ฒ™๊ธ€ ํ•œ๊ตญํ•ญ๊ณต์šฐ์ฃผ์—ฐ๊ตฌ์›์—์„œ ๊ฐœ๋ฐœํ•œ ๋ฌด์ธ๊ธฐ
๐Ÿ‘ค ์•ผ๋ฆฌํƒ€ ๐Ÿ“… 2026.09.11 ๐Ÿ‘€ ์กฐํšŒ 12 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
์•„์ดํฐ ๋“€์˜ค 2ํ…Œ๋ผ๊ฐ€๊ฒฉ์ด
๐Ÿ‘ค K_Shit ๐Ÿ“… 2026.09.11 ๐Ÿ‘€ ์กฐํšŒ 15 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
์‹ฑ๊ธ€๋ฒ™๊ธ€ ํด๋“œ 8 vs ์•„์ดํฐ ๋“€์˜ค ๋น„๊ต
๐Ÿ‘ค ๋ผ๋‘ ๐Ÿ“… 2026.09.10 ๐Ÿ‘€ ์กฐํšŒ 11 ๐Ÿ‘ ์ถ”์ฒœ 0
๋ฆฌ๋ทฐ
์ธ๋„ค์ผ
ํ•ด์™ธ ์‚ผ์—ฝ์ถฉ ๋ฆฌ๋ทฐ์–ด์˜ ์•„์ดํฐ ๋“€์˜ค ํ‰๊ฐ€..
๐Ÿ‘ค ๋ฆฌํ† ํƒ€ ๐Ÿ“… 2026.09.10 ๐Ÿ‘€ ์กฐํšŒ 8 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
์ถฉ๊ฒฉ) ๋ถˆ ๋„๊ณ  ์Šค๋งˆํŠธํฐ ๋ด๋„ ์‹œ๋ ฅ ์•ˆ ๋–จ์–ด์ ธ
๐Ÿ‘ค ๋ผ๋‘ ๐Ÿ“… 2026.09.09 ๐Ÿ‘€ ์กฐํšŒ 12 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
์•„์ดํฐ ์šธํŠธ๋ผ, 18ํ”„๋กœ/๋งฅ์Šค ์™ธ๊ด€ ๋ชจ๋‘ ๊ณต๊ฐœ
๐Ÿ‘ค ์ฅฌ๋ฉ”์กฐ๊ทœ ๐Ÿ“… 2026.09.04 ๐Ÿ‘€ ์กฐํšŒ 30 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
์‚ผ์„ฑ์ „์ž, ์—‘์‹œ๋…ธ์Šค AP ๊ฐค๋Ÿญ์‹œ S27 ์šธํŠธ๋ผ ํƒ‘์žฌ ์˜ˆ์ •
๐Ÿ‘ค ๋ฆฌํ† ํƒ€ ๐Ÿ“… 2026.09.02 ๐Ÿ‘€ ์กฐํšŒ 27 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
๊ฐค๋Ÿญ์‹œ S26 ์šธํŠธ๋ผ ๋ฒˆ์ธํŒจ์น˜ ์‚ฌ์‹ค์ƒ ์‹คํŒจ..
๐Ÿ‘ค ์•ผ๋ฆฌํƒ€ ๐Ÿ“… 2026.09.01 ๐Ÿ‘€ ์กฐํšŒ 26 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๋‰ด์Šค
์ธ๋„ค์ผ
TF ๊ฐค๋Ÿญ์‹œํฌ์Šค ์Šˆํผ ์˜ตํ‹ฐ๋จธ์Šค ํ”„๋ผ์ž„ ๋งŒ๋“ค์–ด์˜ด
๐Ÿ‘ค ๋ผ๋‘ ๐Ÿ“… 2026.08.31 ๐Ÿ‘€ ์กฐํšŒ 70 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
๋ถํ•œ ์Šค๋งˆํŠธํฐ, ์ธํ„ฐ๋„ท ์—†์ด ๊ฒ€์—ดยท๊ฐ์‹œ๊นŒ์ง€
๐Ÿ‘ค ๋””๋ก ๐Ÿ“… 2026.08.30 ๐Ÿ‘€ ์กฐํšŒ 15 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
๋ถํ•œ ์Šค๋งˆํŠธํฐ์— โ€˜๋‚จํ•œโ€™ ๊ฒ€์ƒ‰ํ•˜๋ฉด?
๐Ÿ‘ค K_Shit ๐Ÿ“… 2026.08.29 ๐Ÿ‘€ ์กฐํšŒ 14 ๐Ÿ‘ ์ถ”์ฒœ 0
์ž์œ 
์ธ๋„ค์ผ
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๋‰ด์Šค
์ธ๋„ค์ผ
kbs) "์ค‘๊ณ  ์•„์ดํฐ '๊ณต๊ตฌ' ํ•˜์„ธ์š”"..๋ˆ ๋ฐ›๊ณ  ์ž ์ 
๐Ÿ‘ค ๋ฆฌํ† ํƒ€ ๐Ÿ“… 2026.08.15 ๐Ÿ‘€ ์กฐํšŒ 16 ๐Ÿ‘ ์ถ”์ฒœ 0
« ์ฒ˜์Œ ‹ ์ด์ „ 1 2 3 4 5 6 7 ๋‹ค์Œ › ๋ »
โœ๏ธ ๊ธ€์“ฐ๊ธฐ