inspeep

ํด๋ผ์šฐ๋“œ์˜ ํŽธ๋ฆฌํ•จ์„ ๋ฒ„๋ฆฌ๊ณ  ์˜จํ”„๋ ˆ๋ฏธ์Šค๋กœ ๋Œ์•„์˜จ ์ด์œ 

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

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

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

์ด ํ—˜๋‚œํ•œ ์ด์ „ ๊ณผ์ •์—์„œ ์ œ๊ฐ€ ๊ฒช์—ˆ๋˜ ํ”ผ๋ˆˆ๋ฌผ ๋‚˜๋Š” 3๊ฐ€์ง€ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๊ฒฝํ—˜์„ ๊ณต์œ ํ•ด ๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.




1. ์ฒซ ๋ฒˆ์งธ ์‚ฝ์งˆ: ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๋ฐ”๊ฟจ๋Š”๋ฐ ์™œ ์—‰๋šฑํ•œ ํฌํŠธ๋ฅผ ์ฐพ์„๊นŒ? (Connection refused)


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

Connection refused: Cannot connect to port 6543

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


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




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


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

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


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




3. ์„ธ ๋ฒˆ์งธ ์‚ฝ์งˆ: Cloudflare 524 ์—๋Ÿฌ์™€ ์ฒญํฌ(Chunk) ์ตœ์ ํ™”


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

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

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

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

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




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


Q1. ํด๋ผ์šฐ๋“œ DB(Supabase)์˜ ์š”๊ธˆ์ œ๋ฅผ ์˜ฌ๋ ค์„œ ์Šค์ผ€์ผ์—…(Scale-up)ํ•˜๋ฉด ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋‚˜์š”?

A. ๋ฌผ๋ฆฌ์ ์ธ ๋ฆฌ์†Œ์Šค๋ฅผ ๋Š˜๋ฆฌ๋ฉด ์ผ์ • ๋ถ€๋ถ„ ๋ณ‘๋ชฉ์ด ํ•ด์†Œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํด๋ผ์šฐ๋“œ DB๋Š” ํƒœ์ƒ์ ์œผ๋กœ ์„œ๋ฒ„์™€ DB๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ์กด์žฌํ•˜๋ฏ€๋กœ, ๋„คํŠธ์›Œํฌ ์ง€์—ฐ(Network Latency) ์ž์ฒด๊ฐ€ ์‚ฌ๋ผ์ง€์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ๋Œ€๋Ÿ‰ ์ฒ˜๋ฆฌ๊ฐ€ ์žฆ์€ ๋ฐฑ์—”๋“œ ๊ตฌ์กฐ์—์„œ๋Š” ์„œ๋ฒ„์™€ DB๋ฅผ ๊ฐ™์€ ๋กœ์ปฌ ํ™˜๊ฒฝ์— ๋‘๋Š” ๊ฒƒ์ด ๋น„์šฉ๊ณผ ์„ฑ๋Šฅ ๋ฉด์—์„œ ํ›จ์”ฌ ์••๋„์ ์ธ ํšจ์œจ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Q2. Cloudflare์˜ 100์ดˆ ํƒ€์ž„์•„์›ƒ(524 ์—๋Ÿฌ) ์„ค์ •๊ฐ’์„ ์ž„์˜๋กœ ๋Š˜๋ฆด ์ˆ˜๋Š” ์—†๋‚˜์š”?

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

Q3. ๋น„๋™๊ธฐ asyncpg ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋„์ž…ํ•  ๋•Œ ๊ฐ€์žฅ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

A. ๊ธฐ์กด์˜ psycopg2 ๊ฐ™์€ ๋™๊ธฐ์‹ ๋“œ๋ผ์ด๋ฒ„ ์„ค์ • ์ฝ”๋“œ๋ฅผ ๋‹จ์ˆœํžˆ ๋น„๋™๊ธฐ๋กœ ์ด๋ฆ„๋งŒ ๋ฐ”๊พผ๋‹ค๊ณ  ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. sessionmaker๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ AsyncSession ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„์•ผ ํ•˜๋ฉฐ, DB์— ์ฟผ๋ฆฌ๋ฅผ ๋˜์งˆ ๋•Œ๋Š” ๋ชจ๋“  ๋กœ์ง ์•ž์— await ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ ์Šค๋ ˆ๋“œ ์ฐจ๋‹จ์„ ๋ง‰์•„์•ผ ์™„๋ฒฝํ•œ ๋น„๋™๊ธฐ ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

IT ๊ฒŒ์‹œํŒ

๊ณต์ง€
Notice
๊ณต์ง€ inspeep ์ปค๋ฎค๋‹ˆํ‹ฐ ์ด์šฉ ๋ฐ ๊ฒŒ์‹œ๋ฌผ ๊ด€๋ฆฌ ๊ทœ์ • ์•ˆ๋‚ด
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.04.15 ๐Ÿ‘€ ์กฐํšŒ 57 ๐Ÿ‘ ์ถ”์ฒœ 0
BEST
์ธ๋„ค์ผ
BEST 2. ์ฝ”๋”ฉ ๋ฌธ์™ธํ•œ์˜ ์›Œ๋“œํ”„๋ ˆ์Šค ์ •๋ณต๊ธฐ: VS Code์™€ FTP์˜ ์Šต๊ฒฉ
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.03.05 ๐Ÿ‘€ ์กฐํšŒ 135 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ๊ธฐ
No Image
๊ฐœ๋ฐœ๊ธฐ
์ธ๋„ค์ผ
11. ํ•ญ์ƒ ๋งŒ๋“ค๊ณ  ๋‚˜๋ฉด ์กฐ๊ธˆ์”ฉ ์•„์‰ฝ๋‹ค: ๊ณ„์†๋˜๋Š” ๋‹ค๋“ฌ๊ธฐ
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.03.05 ๐Ÿ‘€ ์กฐํšŒ 114 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ๊ธฐ
์ธ๋„ค์ผ
๊ฐœ๋ฐœ๊ธฐ
์ธ๋„ค์ผ
๊ฐœ๋ฐœ๊ธฐ
์ธ๋„ค์ผ
๊ฐœ๋ฐœ๊ธฐ
์ธ๋„ค์ผ
2. ์ฝ”๋”ฉ ๋ฌธ์™ธํ•œ์˜ ์›Œ๋“œํ”„๋ ˆ์Šค ์ •๋ณต๊ธฐ: VS Code์™€ FTP์˜ ์Šต๊ฒฉ
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.03.05 ๐Ÿ‘€ ์กฐํšŒ 135 ๐Ÿ‘ ์ถ”์ฒœ 0
« ์ฒ˜์Œ ‹ ์ด์ „ 1 2 3 4 5 6 7
โœ๏ธ ๊ธ€์“ฐ๊ธฐ