2025๋…„ 12์›” 26์ผยท6๋ถ„ ์ฝ๊ธฐ

Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜: ์‹ค์šฉ์ ์ธ ๋ณ€ํ™˜ ํŒจํ„ด

๋งํฌ๋œ ๋ ˆ์ฝ”๋“œ, ๋กค์—…, ์ˆ˜์‹, ๊ถŒํ•œ์„ ์‹ค์ œ ์•ฑ ๊ธฐ์ค€์œผ๋กœ ๋ฒˆ์—ญํ•˜๋ฉฐ Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜: ์‹ค์šฉ์ ์ธ ๋ณ€ํ™˜ ํŒจํ„ด

Airtable ํŒจํ„ด์ด ์‹ค๋ฌด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋‹ค๋ฅธ ์ด์œ 

Airtable์€ ๊ตฌ์กฐ๊ฐ€ ์žˆ๋Š” ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์ฒ˜๋Ÿผ ๋А๊ปด์ ธ์•ผ ํ•  ๋•Œ ์ž˜ ๋งž์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋ฒ ์ด์Šค๊ฐ€ โ€˜์‹œ์Šคํ…œโ€™์ด ๋˜๊ณ  ๋” ๋งŽ์€ ์‚ฌ๋žŒ์ด ๋งค์ผ ์˜์กดํ•˜๊ฒŒ ๋  ๋•Œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๋งํฌ๋œ ๋ ˆ์ฝ”๋“œ, ๋กค์—…, ์ˆ˜์‹์„ ์˜๋ฆฌํ•˜๊ฒŒ ์กฐํ•ฉํ•˜๋ฉด ์†๋„๊ฐ€ ๋А๋ ค์ง€๊ณ  ์ œ์–ด๊ฐ€ ์–ด๋ ค์›Œ์ง€๋ฉฐ ์‹ค์ˆ˜๋กœ ๋ฐ”๋€Œ๊ธฐ ์‰ฌ์šด ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜์šฉ PostgreSQL ๊ธฐ๋ฐ˜ ์•ฑ์€ ๋‹ค๋ฅธ ๊ธฐ๋Œ€์น˜๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ๊ณต์œ ๋˜๊ณ  ๊ทœ์น™์€ ํ•ญ์ƒ(๋ทฐ์—์„œ๋งŒ์ด ์•„๋‹ˆ๋ผ) ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ์ถ”์  ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ โ€œAirtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜โ€์€ ๋ณดํ†ต ํ…Œ์ด๋ธ”์„ ๋ณต์‚ฌํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋™์ž‘์„ ๋ฒˆ์—ญํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜ ์‚ฌ์šฉ์€ ๋ณดํ†ต ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์ฒด์  ์š”๊ตฌ์‚ฌํ•ญ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค:

  • ์‹ ๋ขฐ์„ฑ: ์•ฑ์€ ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•ญ์ƒ ๊ฐ™์€ ๋™์ž‘์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ ‘๊ทผ ์ œ์–ด: ์‚ฌ๋žŒ๋“ค์€ ์ž์‹ ์ด ํ—ˆ์šฉ๋œ ๊ฒƒ๋งŒ ๋ณด๊ณ  ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ์‚ฌ์„ฑ: โ€œ๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ์–ธ์ œ ๋ฐ”๊ฟจ๋‚˜?โ€์— ๋‹ตํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ™•์žฅ ์‹œ ์„ฑ๋Šฅ: ๋ ˆ์ฝ”๋“œ์™€ ์‚ฌ์šฉ์ž๊ฐ€ ๋Š˜์–ด๋‚˜๋„ ์ผ์ƒ์ด ๋ฉˆ์ถ”์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ช…ํ™•ํ•œ ์†Œ์œ ๊ถŒ: ์—…๋ฐ์ดํŠธ๋Š” ํฉ์–ด์ง„ ๋ทฐ์˜ ์ˆ˜์ž‘์—…์ด ์•„๋‹ˆ๋ผ ์•ฑ ๊ทœ์น™์„ ํ†ตํ•ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

Airtable์—์„œ๋Š” ๋งŽ์€ ๊ทœ์น™์ด โ€˜๋ทฐ ์‹œ์ โ€™์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋กค์—…์€ ํ•ฉ๊ณ„๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ , ์ˆ˜์‹์€ ๊ณ„์‚ฐ๊ฐ’์„ ๋ณด์—ฌ์ฃผ๋ฉฐ, ํ•„ํ„ฐ๋œ ๋ทฐ๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์ˆจ๊น๋‹ˆ๋‹ค. PostgreSQL์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋™์ž‘๋“ค์ด ๋ณดํ†ต ๊ด€๊ณ„, ์ง‘๊ณ„ ์ฟผ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ์•ฑ ๋กœ์ง์œผ๋กœ ๋ฐ”๋€Œ์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์˜ ์–ด๋””์— ์žˆ๋“  ์ผ๊ด€๋˜๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ Airtable ๋™์ž‘์€ 1:1๋กœ ๋งคํ•‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. โ€˜๊ทธ๋ƒฅ ์ž‘๋™ํ•˜๋Š”โ€™ ๋งํฌ ํ•„๋“œ๋Š” ๋” ์—„๊ฒฉํ•œ ๊ทœ์น™์„ ๊ฐ€์ง„ ์กฐ์ธ ํ…Œ์ด๋ธ”์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ, ๋‚ ์งœ, ๋ฃฉ์—…์„ ์„ž๋Š” ์ˆ˜์‹์€ SQL ํ‘œํ˜„์‹, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ทฐ, ๋˜๋Š” ๋ฐฑ์—”๋“œ ๋กœ์ง์œผ๋กœ ๋ฐ”๋€” ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์˜ˆ: Airtable์—์„œ ๋งค๋‹ˆ์ €๋Š” ๋ทฐ์˜ ๋กค์—…์„ ํ†ตํ•ด โ€˜์ด ํŒŒ์ดํ”„๋ผ์ธโ€™์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ์•ฑ์—์„œ๋Š” ๋™์ผํ•œ ์ˆซ์ž๊ฐ€ ๊ถŒํ•œ์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•˜๊ณ (์–ด๋–ค ๋”œ์„ ๋ณผ ์ˆ˜ ์žˆ๋‚˜?), ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ๊ฐฑ์‹ ๋˜๋ฉฐ ๋ณด๊ณ ์„œ์—์„œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์›Œํฌํ”Œ๋กœ์— ๋งž์ถ˜ Airtable ๊ฐ์‚ฌ๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”

Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์ „์— ๋ฒ ์ด์Šค๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๋งค์ผ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์ ์–ด๋‘์„ธ์š”. Airtable์€ ์ข…์ข… โ€˜์‚ด์•„ ์žˆ๋Š” ์Šคํ”„๋ ˆ๋“œ์‹œํŠธโ€™๋กœ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ ๋™์ผํ•œ ํ…Œ์ด๋ธ”์ด ๋ฆฌํฌํŒ…, ์Šน์ธ, ๋น ๋ฅธ ํŽธ์ง‘์„ ๋™์‹œ์— ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ฐ˜ ์•ฑ์€ ๋” ๋ช…ํ™•ํ•œ ๊ทœ์น™์„ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค.

์กด์žฌํ•˜๋Š” ํ•ญ๋ชฉ์„ ๋ชฉ๋กํ™”ํ•˜์„ธ์š”. ์‚ฌ๋žŒ๋“ค์ด ์žŠ๋Š” ๋ถ€๋ถ„๋“ค(์˜ˆ: โ€˜์ž„์‹œโ€™ ๋ทฐ, ์ผํšŒ์„ฑ ์Šคํฌ๋ฆฝํŠธ)๋„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

  • ํ…Œ์ด๋ธ”(์ˆจ๊น€ ๋˜๋Š” ๋ณด๊ด€๋œ ํ…Œ์ด๋ธ” ํฌํ•จ)
  • ํŒ€์ด ์˜์กดํ•˜๋Š” ๋ทฐ์™€ ํ•„ํ„ฐ(ํŠนํžˆ '๋‚ด ์ž‘์—…' ๊ฐ™์€ ๋ทฐ)
  • ์ธํ„ฐํŽ˜์ด์Šค, ํผ, ๊ฐ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์‚ฌ์šฉ์ž
  • ์ž๋™ํ™”, ์Šคํฌ๋ฆฝํŠธ, ํ†ตํ•ฉ
  • ์ˆ˜์ž‘์—… ๋ฃจํ‹ด(๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ ์ž„ํฌํŠธ, ์ฃผ๊ฐ„ ์ •๋ฆฌ)

๋‹ค์Œ์œผ๋กœ ํ•„๋“œ๋ฅผ ์ง„์‹ค์˜ ์ถœ์ฒ˜(source of truth)์ธ์ง€ ํŒŒ์ƒ๊ฐ’(derived)์ธ์ง€ ํ‘œ์‹œํ•˜์„ธ์š”.

  • ์ถœ์ฒ˜ ํ•„๋“œ๋Š” ์‚ฌ๋žŒ์ด ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์ด ์ฑ„์šฐ๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค(์˜ˆ: ๊ณ ๊ฐ ์ด๋ฉ”์ผ, ๊ณ„์•ฝ ์„œ๋ช… ๋‚ ์งœ).
  • ํŒŒ์ƒ ํ•„๋“œ๋Š” ๋กค์—…, ์ˆ˜์‹, ๋ฃฉ์—…, ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ์œ ๋„๋˜๋Š” ์ƒํƒœ ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.

์ด๋Š” ์ผ๋ถ€ ํŒŒ์ƒ๊ฐ’์€ ์ €์žฅ๋˜์–ด์•ผ(ํžˆ์Šคํ† ๋ฆฌ์™€ ๊ฐ์‚ฌ์šฉ) ํ•˜๊ณ , ๋‹ค๋ฅธ ๊ฐ’์€ ํ•„์š”ํ•  ๋•Œ ๊ณ„์‚ฐ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์šฉ์ ์ธ ๊ทœ์น™: ์‚ฌ๋žŒ๋“ค์ด โ€˜๊ทธ ์‹œ์ ์˜ ๊ฐ’โ€™์„ ์•Œ์•„์•ผ ํ•œ๋‹ค๋ฉด(์˜ˆ: ๋”œ์ด ๋‹ซํ˜”์„ ๋•Œ์˜ ์ปค๋ฏธ์…˜), ์ €์žฅํ•˜์„ธ์š”. ๋‹จ์ง€ ํ‘œ์‹œ์šฉ์ด๋ผ๋ฉด(์˜ˆ: โ€˜๋งˆ์ง€๋ง‰ ํ™œ๋™ ์ดํ›„ ์ผ์ˆ˜โ€™) ๊ณ„์‚ฐํ•˜์„ธ์š”.

ํ†ต์ฆ ์ง€์ ์„ ํ‰์ดํ•œ ์–ธ์–ด๋กœ ์ ์–ด ๋‘์„ธ์š”. ์˜ˆ: โ€œDeals ๋ทฐ๊ฐ€ ๋กœ๋“œ๋˜๋Š” ๋ฐ 20์ดˆ ๊ฑธ๋ฆฐ๋‹คโ€, โ€œ๋งค๋‹ˆ์ €๊ฐ€ ๊ธ‰์—ฌ ํ•„๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹คโ€, โ€œ์ž„ํฌํŠธ ํ›„ ๊นจ์ง„ ๋งํฌ๋ฅผ ๊ณ„์† ๊ณ ์นœ๋‹ค.โ€ ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ๋“ค์€ ์ƒˆ ์•ฑ์—์„œ ๊ถŒํ•œ, ์„ฑ๋Šฅ, ๋ฐ์ดํ„ฐ ๊ฒ€์‚ฌ์— ๊ด€ํ•œ ์‹ค์ œ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๋ฒˆ์—ญ: ํ…Œ์ด๋ธ”, ํ•„๋“œ, ID

Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ ๊ฐ€์žฅ ํฐ ์‚ฌ๊ณ ๋ฐฉ์‹ ์ „ํ™˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋ ˆ์ด๋ธ”๊ณผ ๋ ˆ์ด์•„์›ƒ์ด ๋ฐ”๋€Œ์–ด๋„ ์ง„์‹ค์„ ์œ ์ง€ํ•˜๋Š” ๊ทœ์น™์„ ํ•„์š”๋กœ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Airtable์€ โ€˜์…€์— ์˜ค๋Š˜ ๋ฌด์—‡์ด ๋“ค์–ด์žˆ๋Š”๊ฐ€โ€™์— ๊ด€๋Œ€ํ•˜์ง€๋งŒ PostgreSQL์€ ๊ทธ๋ ‡์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ Airtable ํ…Œ์ด๋ธ”์„ ์•ˆ์ •์ ์ธ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ๊ฐ€์ง„ ์‹ค์ œ ์—”ํ‹ฐํ‹ฐ๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š”. ์‚ฌ๋žŒ ์ด๋ฆ„(์˜ˆ: โ€œAcme, Inc.โ€)์„ ID๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ์ด๋ฆ„์€ ๋ฐ”๋€Œ๊ณ  ์˜คํƒ€๊ฐ€ ์ƒ๊ธฐ๋ฉฐ ์ถฉ๋Œ์ด ๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ID(๋ณดํ†ต UUID๋‚˜ ์ˆซ์ž ID)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฆ„์€ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ์†์„ฑ์œผ๋กœ ์œ ์ง€ํ•˜์„ธ์š”.

ํ•„๋“œ ํƒ€์ž…์€ ์žฌ๊ฒ€ํ† ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Airtable์˜ 'number'์™€ 'text'๋Š” ์ค‘์š”ํ•œ ์ฐจ์ด๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๊ฐ’ ์ง‘ํ•ฉ์ด ์ž‘๊ณ  ์•Œ๋ ค์ ธ ์žˆ์œผ๋ฉด ์ œ์–ด๋œ ์„ ํƒ์ง€(์ƒํƒœ, ์šฐ์„ ์ˆœ์œ„, ๋“ฑ๊ธ‰)๋กœ ์ทจ๊ธ‰ํ•˜์„ธ์š”.
  • ๊ธˆ์•ก์€ ํ†ตํ™” ์—ฐ์‚ฐ์— ์ ํ•ฉํ•œ ์ˆซ์ž ํƒ€์ž…์œผ๋กœ ์ €์žฅํ•˜๊ณ  ํ†ตํ™”๋ฅผ ๊ฒฐ์ •ํ•˜์„ธ์š”.
  • ์‹œ๊ฐ„์€ ๋‚ ์งœ(์‹œ๊ฐ„ ์—†์Œ)์™€ ํƒ€์ž„์Šคํƒฌํ”„(์ •ํ™•ํ•œ ์ˆœ๊ฐ„) ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฒฐ์ •ํ•˜์„ธ์š”.

๋นˆ๊ฐ’์— ๋Œ€ํ•ด์„œ๋„ ๋ช…ํ™•ํ•œ ์ •์ฑ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Airtable์€ ์ข…์ข… '๋นˆ', '0', '์•Œ ์ˆ˜ ์—†์Œ'์„ ์„ž์–ด ์“ฐ๊ธฐ ์‰ฌ์šด๋ฐ PostgreSQL์—์„œ๋Š” ๊ฐ ์ƒํƒœ์˜ ์˜๋ฏธ๋ฅผ ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • ์ง„์งœ๋กœ ๋ชจ๋ฅผ ๋•Œ๋Š” NULL์„ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • ์ผ๋ฐ˜์ ์ธ ๊ฐ’์ด ์žˆ์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•˜์„ธ์š”(์˜ˆ: status = "new").
  • ๋นˆ ๋ฌธ์ž์—ด์ด '๋ˆ„๋ฝ'์„ ์˜๋ฏธํ•˜๋ฉด ๋นˆ ๋ฌธ์ž์—ด์„ NULL๋กœ ๋ณ€ํ™˜ํ•˜์„ธ์š”.
  • ๋นˆ ๋ฌธ์ž์—ด์ด ์˜๋ฏธ๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ ๋นˆ ๋ฌธ์ž์—ด์„ ์œ ์ง€ํ•˜์„ธ์š”.
  • ๊ฐ„๋‹จํ•œ ๊ฒ€์‚ฌ(์˜ˆ: amount >= 0)๋ฅผ ์ถ”๊ฐ€ํ•ด ์ž˜๋ชป๋œ ์ž„ํฌํŠธ๋ฅผ ์žก์œผ์„ธ์š”.

๋งˆ์ง€๋ง‰์œผ๋กœ ์‹ค์ œ ์‚ฌ์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์‚ฌ๋žŒ๋“ค์ด ๋งค์ผ ๊ณ„์ •, ์ƒํƒœ, ์ƒ์„ฑ์ผ๋กœ ํ•„ํ„ฐํ•œ๋‹ค๋ฉด ํ•ด๋‹น ์ปฌ๋Ÿผ๋“ค์ด ์ข‹์€ ํ›„๋ณด์ž…๋‹ˆ๋‹ค. ์‹ค์งˆ์ ์ธ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€ ๊ณผ๋„ํ•œ ์ธ๋ฑ์‹ฑ์€ ํ”ผํ•˜๋˜, ๋ช…๋ฐฑํ•œ ๊ฒƒ๋“ค์€ ๊ฑด๋„ˆ๋›ฐ์ง€ ๋งˆ์„ธ์š”.

์˜ˆ: 'Deals' ํ…Œ์ด๋ธ”์€ deals(id, account_id, stage, amount, close_date, created_at)์ฒ˜๋Ÿผ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ์–ด๋–ค UI๋ฅผ ์œ„์— ์˜ฌ๋ฆฌ๋“  ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

๋งํฌ๋œ ๋ ˆ์ฝ”๋“œ: ๋งํฌ๋ฅผ ๊ด€๊ณ„์™€ ์กฐ์ธ ํ…Œ์ด๋ธ”๋กœ ๋ฐ”๊พธ๊ธฐ

Airtable์€ ๊ด€๊ณ„๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋А๊ปด์ง€๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค: ๋งํฌ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. PostgreSQL์—์„œ๋Š” ๊ทธ ๋งํฌ๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ์„  ์นด๋””๋„๋ฆฌํ‹ฐ๋ถ€ํ„ฐ ๋ณด์„ธ์š”: ๊ฐ ๋ ˆ์ฝ”๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ๋Œ€์‘๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‚˜์š”, ์•„๋‹ˆ๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‚˜์š”?

  • ์ผ๋Œ€๋‹ค: ํ•˜๋‚˜์˜ Company๋Š” ์—ฌ๋Ÿฌ Contacts๋ฅผ ๊ฐ€์ง€์ง€๋งŒ ๊ฐ Contact๋Š” ํ•˜๋‚˜์˜ Company์— ์†ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋Œ€๋‹ค: ํ•˜๋‚˜์˜ Contact๊ฐ€ ์—ฌ๋Ÿฌ Deals์™€ ์ผํ•  ์ˆ˜ ์žˆ๊ณ , ํ•˜๋‚˜์˜ Deal์— ์—ฌ๋Ÿฌ Contacts๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PostgreSQL์—์„œ๋Š”:

  • ์ผ๋Œ€๋‹ค ๋งํฌ๋Š” ๋ณดํ†ต โ€˜๋งŽ์€โ€™ ์ชฝ์˜ ๋‹จ์ผ ์ปฌ๋Ÿผ(์˜ˆ: contacts.company_id)์ž…๋‹ˆ๋‹ค.
  • ๋‹ค๋Œ€๋‹ค ๋งํฌ๋Š” ๋ณดํ†ต deal_contacts(deal_id, contact_id) ๊ฐ™์€ ์กฐ์ธ ํ…Œ์ด๋ธ”์ด ๋ฉ๋‹ˆ๋‹ค.

์กฐ์ธ ํ…Œ์ด๋ธ”์€ ์‚ฌ๋žŒ๋“ค์ด ๊ด€๊ณ„์— ๋ชฐ๋ž˜ ๋„ฃ๋Š” ์ถ”๊ฐ€ ์ •๋ณด(์˜ˆ: role_on_deal, added_by)๋„ ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ์œผ๋กœ ๋งํฌ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”

Airtable์€ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ๋งํฌ๊ฐ€ ์—‰๋ง์ด ๋˜๋„๋ก ๋‚ด๋ฒ„๋ ค๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ฐ˜ ์•ฑ์—์„œ๋Š” ์™ธ๋ž˜ ํ‚ค์™€ ๋ช…ํ™•ํ•œ ์‚ญ์ œ ๊ทœ์น™์œผ๋กœ ์ด๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์‚ฌํ•ญ์„ ๊ฒฐ์ •ํ•˜์„ธ์š”:

  • ์‚ญ์ œ ์‹œ ์—ฐ์‡„ ์‚ญ์ œ(cascade), ์ œํ•œ(restrict), ๋˜๋Š” ๋งํฌ๋ฅผ NULL๋กœ ์„ค์ •ํ• ์ง€?
  • ๊ณ ์•„ ํ–‰(์˜ˆ: ์‹ค์ œ ๋”œ์ด๋‚˜ ์ปจํƒ์ด ์—†๋Š” deal_contacts)์„ ์ฐจ๋‹จํ• ์ง€?

ID์™€ ํ‘œ์‹œ ์ด๋ฆ„

Airtable์€ ๋งํฌ ๋ผ๋ฒจ๋กœ ์นœ์ˆ™ํ•œ '์ฃผ์š” ํ•„๋“œ'๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. PostgreSQL์€ ์•ˆ์ •์ ์ธ ํ‚ค(์ˆซ์ž ID๋‚˜ UUID)๋ฅผ ์ €์žฅํ•˜๊ณ  ์•ฑ์ด ์นœ์ˆ™ํ•œ ์ด๋ฆ„์„ ํ‘œ์‹œํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์šฉ์  ํŒจํ„ด: ๊ณณ๊ณณ์— company_id๋ฅผ ์ €์žฅํ•˜๊ณ  companies.name(๋ฐ ํ•„์š” ์‹œ companies.code)์„ ๊ฒ€์ƒ‰ยทํ‘œ์‹œ์— ์‚ฌ์šฉํ•˜์„ธ์š”.

๋กค์—…: ๋ทฐ ์‹œ์ ์˜ ๊ณ„์‚ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ง‘๊ณ„๋กœ

์ง‘์ค‘๋œ ํŒŒ์ผ๋Ÿฟ ์ถœ์‹œ
ํŒ€์ด ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งค์ผ ์“ฐ๋Š” ํ™”๋ฉด ๋ช‡ ๊ฐœ๋ถ€ํ„ฐ ๋จผ์ € ์ถœ์‹œํ•˜์„ธ์š”.
UI ๊ตฌ์ถ•

Airtable์—์„œ ๋กค์—…์€ '๊ด€๋ จ ๋ ˆ์ฝ”๋“œ ๊ฐ„์˜ ๊ณ„์‚ฐ'์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ•„๋“œ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์—ฌ๋Ÿฌ ํ–‰์˜ ์š”์•ฝ์ž…๋‹ˆ๋‹ค: ์นด์šดํŠธ, ํ•ฉ๊ณ„, ์ตœ์†Œ/์ตœ๋Œ€ ๋‚ ์งœ, ํ‰๊ท , ๋˜๋Š” ๋งํฌ๋ฅผ ํ†ตํ•ด ๋Œ์–ด์˜จ ๋ชฉ๋ก ๋“ฑ์ž…๋‹ˆ๋‹ค.

PostgreSQL์—์„œ๋Š” ๊ฐ™์€ ์•„์ด๋””์–ด๊ฐ€ ์ง‘๊ณ„ ์ฟผ๋ฆฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๊ณ  ๋ถ€๋ชจ ๋ ˆ์ฝ”๋“œ๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•ด ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ ๋กค์—…์€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์‹ ํ•„๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ์งˆ๋ฌธ์ด ๋ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ๋กค์—…์„ SQL๋กœ ๋ฒˆ์—ญํ•˜๊ธฐ

์ผ๋ฐ˜์ ์ธ ํŒจํ„ด:

  • โ€œ์ด ๊ณ ๊ฐ์˜ ์ด ์ธ๋ณด์ด์Šค ๊ธˆ์•กโ€ -> ๊ณ ๊ฐ๋ณ„ SUM(amount)
  • โ€œ์ด ํ”„๋กœ์ ํŠธ์˜ ์—ด๋ ค ์žˆ๋Š” ์ž‘์—… ์ˆ˜โ€ -> ์ƒํƒœ ํ•„ํ„ฐ๋ฅผ ๋‘” COUNT(*)
  • โ€œ์ตœ์‹  ํ™œ๋™ ๋‚ ์งœโ€ -> MAX(activity_date)
  • โ€œ์ด ๋‹ด๋‹น์ž ํ‰๊ท  ๋”œ ๊ทœ๋ชจโ€ -> AVG(deal_value)

Airtable ๋กค์—…์—๋Š” ์ข…์ข… โ€œํ™œ์„ฑ ํ•ญ๋ชฉ๋งŒโ€ ๋˜๋Š” โ€œ์ง€๋‚œ 30์ผ๋งŒโ€ ๊ฐ™์€ ํ•„ํ„ฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์ด๊ฒƒ์ด WHERE ์ ˆ์ด ๋ฉ๋‹ˆ๋‹ค. ํƒ€์ž„์กด๊ณผ โ€˜์ง€๋‚œ 30์ผโ€™์˜ ์ •์˜์— ๋Œ€ํ•ด ๋ช…ํ™•ํžˆ ํ•˜์„ธ์š”. ํ”„๋กœ๋•์…˜ ๋ฆฌํฌํŒ…์—์„œ๋Š” ํ•ญ์ƒ ์งˆ๋ฌธ๋ฐ›์Šต๋‹ˆ๋‹ค.

๊ณ„์‚ฐ๋œ ๋กค์—… vs ์ €์žฅ๋œ ๋กค์—…

๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ํ•„์š”ํ•  ๋•Œ ๊ณ„์‚ฐ(ํ•ญ์ƒ ์ตœ์‹ , ์œ ์ง€๋ณด์ˆ˜ ์‰ฌ์›€).
  • ์ €์žฅ(ํ™”๋ฉด์ด ๋น ๋ฅด์ง€๋งŒ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•จ).

์‹ค์šฉ ๊ทœ์น™: ๋Œ€์‹œ๋ณด๋“œ์™€ ๋ฆฌ์ŠคํŠธ๋Š” ๊ณ„์‚ฐ์œผ๋กœ, ์†๋„ ๋˜๋Š” ์•ˆ์ •์  ์Šค๋ƒ…์ƒท์ด ํ•„์š”ํ•  ๋•Œ๋งŒ ์ €์žฅ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

์ˆ˜์‹: ๋ฌด์—‡์„ SQL๋กœ, ๋ฌด์—‡์„ ์•ฑ ๋กœ์ง์œผ๋กœ ๋‘˜์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ

Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ ์ˆ˜์‹์€ ๋ณดํ†ต ๊ฐ€์žฅ ์„ธ์‹ฌํ•œ ๋ฒˆ์—ญ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Airtable์˜ ์ˆ˜์‹์€ ๋ทฐ, ํ•„ํ„ฐ, ์›Œํฌํ”Œ๋กœ๋ฅผ ๋™์‹œ์— ์กฐ์šฉํžˆ ๊ตฌ๋™ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ์•ฑ์—์„œ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์ผ๊ด€๋˜๊ณ  ๋น ๋ฅด๋ฉฐ ๋ชจ๋“  ํ™”๋ฉด์—์„œ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์‹์„ ์‹ค์ œ ์šฉ๋„๋ณ„๋กœ ๋ถ„๋ฅ˜ํ•˜์„ธ์š”:

  • ํ˜•์‹ํ™”: ๊ฐ’์„ "Q1 2026"์ด๋‚˜ "๋†’์Œ ์šฐ์„ ์ˆœ์œ„" ๊ฐ™์€ ๋ผ๋ฒจ๋กœ ๋ฐ”๊พธ๊ธฐ
  • ์กฐ๊ฑด ํ”Œ๋ž˜๊ทธ: "์—ฐ์ฒด" ๋˜๋Š” "๊ฒ€ํ†  ํ•„์š”" ๊ฐ™์€ TRUE/FALSE ์ฒดํฌ
  • ๊ณ„์‚ฐ: ํ•ฉ๊ณ„, ๋งˆ์ง„, ๋‚ ์งœ ์ฐจ์ด, ์ ์ˆ˜
  • ๋ฃฉ์—…: ๋งํฌ๋œ ๋ ˆ์ฝ”๋“œ์—์„œ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
  • ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™: ์‚ฌ์šฉ์ž๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ(์ž๊ฒฉ, ์Šน์ธ)

๋‹จ์ˆœ ๊ณ„์‚ฐ๊ณผ ํ”Œ๋ž˜๊ทธ๋Š” ๋Œ€๊ฐœ SQL(์ฟผ๋ฆฌ ํ‘œํ˜„์‹, ๋ทฐ, ๊ณ„์‚ฐ ํ•„๋“œ)์— ๋‘๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  ํ™”๋ฉด์ด ์ผ๊ด€๋˜๊ณ  ๋™์ผํ•œ ์ˆ˜ํ•™์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ตฌํ˜„ํ•˜๋Š” ์ผ์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์‹์ด ์‹ค์ œ ๊ทœ์น™์ธ ๊ฒฝ์šฐ(์˜ˆ: โ€œ๊ณ„์ •์ด ํ™œ์„ฑ ์ƒํƒœ์ด๊ณ  ๋”œ์ด $5,000 ์ด์ƒ์ด์–ด์•ผ๋งŒ ํ• ์ธ ํ—ˆ์šฉโ€), ๋ณดํ†ต ๋ฐฑ์—”๋“œ ๋กœ์ง์œผ๋กœ ์˜ฎ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ, CSV ์ž„ํฌํŠธ, ์ƒˆ ๋ฆฌํฌํŠธ๊ฐ€ ์šฐํšŒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ˜•์‹ ํ‘œ์‹œ๋Š” UI์— ๊ฐ€๊น๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”. ํ‘œ์‹œ ๋ผ๋ฒจ์€ ์›นยท๋ชจ๋ฐ”์ผ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ƒ์„ฑํ•˜๋˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•˜๋“œ์ฝ”๋”ฉํ•˜์ง€ ๋งˆ์„ธ์š”.

ํ™•์ • ์ „์— ํ•ญ์ƒ ์ผ์น˜ํ•ด์•ผ ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ถœ๋ ฅ(์˜ˆ: ์ƒํƒœ, ๋ฏธ์ง€๊ธ‰ ๊ธˆ์•ก, SLA ์œ„๋ฐ˜)์„ ๊ณจ๋ผ ๊ทธ๋“ค์ด ์–ด๋””์—์„œ ๊ด€๋ฆฌ๋˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜์„ธ์š”. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์—์„œ ํ…Œ์ŠคํŠธํ•ด ์•ฑ์—์„œ ๋ณด๋Š” ๊ฐ’์ด ์žฌ๋ฌด๊ฐ€ ๋‚ด๋ณด๋‚ด๋Š” ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๊ถŒํ•œ ์žฌ์„ค๊ณ„: ์—ญํ• , ๋ ˆ์ฝ”๋“œ ์ ‘๊ทผ, ๊ฐ์‚ฌ ๊ธฐ๋ก

๊น”๋”ํ•œ Postgres ์Šคํ‚ค๋งˆ ์„ค๊ณ„
AppMaster์˜ Data Designer์—์„œ ํ…Œ์ด๋ธ”์„ ๋ชจ๋ธ๋งํ•˜๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ์•ˆ์ •์ ์ธ ID๋ฅผ ์œ ์ง€ํ•˜์„ธ์š”.
์„ค๊ณ„ ์‹œ์ž‘

Airtable ๊ถŒํ•œ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ„๋‹จํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋ฒ ์ด์Šค, ํ…Œ์ด๋ธ”, ๋ทฐ ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ๋•์…˜ ์•ฑ์—์„œ๋Š” ๊ทธ ์ •๋„๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋ทฐ๋Š” ์›Œํฌํ”Œ๋กœ์— ์œ ์šฉํ•˜์ง€๋งŒ ๋ณด์•ˆ ๊ฒฝ๊ณ„๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ๋Š” โ€œ๋ˆ„๊ฐ€ ์ด๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‚˜?โ€๋ผ๋Š” ๊ฒฐ์ •์„ API, UI, ์ˆ˜์ถœ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ๋“ฑ ๋ชจ๋“  ๊ณณ์—์„œ ์ ์šฉ๋˜๋Š” ์ ‘๊ทผ ๊ทœ์น™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์„ธ์š”.

๋จผ์ € ์•ฑ์— ํ•„์š”ํ•œ ์—ญํ• ์„ ์‚ฌ๋žŒ๋“ค์˜ ํƒญ์ด ์•„๋‹ˆ๋ผ ์‹ค์ œ ์—ญํ•  ๋‹จ์œ„๋กœ ๋‚˜์—ดํ•˜์„ธ์š”. ์ผ๋ฐ˜์ ์ธ ์ง‘ํ•ฉ:

  • Admin: ์„ค์ •, ์‚ฌ์šฉ์ž, ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
  • Manager: ๋ณ€๊ฒฝ ์Šน์ธ ๋ฐ ํŒ€ ์ž‘์—… ๋ณด๊ธฐ
  • Staff: ํ• ๋‹น๋œ ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑยท์—…๋ฐ์ดํŠธ, ์ œํ•œ๋œ ๋ฆฌํฌํŒ…
  • Customer: ์ž์‹ ์˜ ์š”์ฒญ, ์ธ๋ณด์ด์Šค, ์ƒํƒœ ๋ณด๊ธฐ

๊ทธ๋‹ค์Œ ๋ ˆ์ฝ”๋“œ ์ˆ˜์ค€ ๊ทœ์น™(ํ–‰ ์ˆ˜์ค€ ์ ‘๊ทผ)์„ ์ •์˜ํ•˜์„ธ์š”. ๋งŽ์€ ์‹ค์ œ ์•ฑ์€ ๋‹ค์Œ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋กœ ๊ท€๊ฒฐ๋ฉ๋‹ˆ๋‹ค: "๋‚ด ๋ ˆ์ฝ”๋“œ๋งŒ", "๋‚ด ํŒ€", ๋˜๋Š” "๋‚ด ์กฐ์ง". ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ–‰ ์ˆ˜์ค€ ๋ณด์•ˆ(row-level security)๋กœ ๊ฐ•์ œํ•˜๋“  API ๋ ˆ์ด์–ด์—์„œ ํ•˜๋“  ํ•ต์‹ฌ์€ ์ผ๊ด€์„ฑ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฟผ๋ฆฌ(์ˆ˜์ถœ ๋ฐ '์ˆจ๊ฒจ์ง„' ํ™”๋ฉด ํฌํ•จ)์— ๊ทœ์น™์ด ์ ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ณ„ํšํ•˜์„ธ์š”. ๊ฐ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ๊ธฐ๋กํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜์„ธ์š”:

  • ๋ˆ„๊ฐ€ ํ–ˆ๋Š”๊ฐ€(์‚ฌ์šฉ์ž ID, ์—ญํ• )
  • ๋ฌด์—‡์ด ๋ฐ”๋€Œ์—ˆ๋Š”๊ฐ€(ํ•„์š”ํ•  ๋•Œ ํ•„๋“œ๋ณ„ ์ด์ „/์ดํ›„)
  • ์–ธ์ œ ์ผ์–ด๋‚ฌ๋Š”๊ฐ€(ํƒ€์ž„์Šคํƒฌํ”„์™€ ํƒ€์ž„์กด)
  • ์–ด๋””์„œ ์™”๋Š”๊ฐ€(UI, ์ž„ํฌํŠธ, API)
  • ์™œ(์„ ํƒ์  ๋ฉ”๋ชจ๋‚˜ ์ด์œ  ์ฝ”๋“œ)

๋†€๋ผ์›€์„ ํ”ผํ•˜๋Š” ๋‹จ๊ณ„๋ณ„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ณ„ํš

๊ฐ€์žฅ ์•ˆ์ „ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์€ ์ง€๋ฃจํ•˜๊ฒŒ ๋А๊ปด์ง‘๋‹ˆ๋‹ค. ๋‚ ์งœ๋ฅผ ์ •ํ•˜๊ณ  ๋ณ€๊ฒฝ ์š”์†Œ๋ฅผ ์ค„์ด๋ฉฐ ์ด์ „ ๋ฒ ์ด์Šค์™€ ์ƒˆ ์•ฑ์„ ๋น„๊ตํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“œ์„ธ์š”.

์ด๋™ ์ผ์ฃผ์ผ ์ „์—๋Š” ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์„ ์ค‘๋‹จํ•˜์„ธ์š”. ์ปคํŠธ์˜ค๋ฒ„ ๋‚ ์งœ์— ํ•ฉ์˜ํ•˜๊ณ  ๊ทœ์น™์„ ์ •ํ•˜์„ธ์š”: ์ƒˆ ํ…Œ์ด๋ธ” ๊ธˆ์ง€, ์ƒˆ ํ•„๋“œ ๊ธˆ์ง€, ํ•„๋“œ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๊ธˆ์ง€. ์ž‘์€ ๋ณ€๊ฒฝ๋„ ์ž„ํฌํŠธ์™€ ์ˆ˜์‹์„ ์กฐ์šฉํžˆ ๊นจ๋œจ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ 5๋‹จ๊ณ„ ๊ณ„ํš:

  1. ๊ตฌ์กฐ๋ฅผ ๊ณ ์ •ํ•˜๊ณ  โ€˜์™„๋ฃŒโ€™์˜ ์˜๋ฏธ๋ฅผ ์ •์˜(์–ด๋–ค ํ™”๋ฉด, ์›Œํฌํ”Œ๋กœ, ๋ฆฌํฌํŠธ๊ฐ€ ์ผ์น˜ํ•ด์•ผ ํ•˜๋Š”์ง€).
  2. ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด Airtable ๋ฐ–์—์„œ ์ •๋ฆฌ. ๋ฉ€ํ‹ฐ์…€๋ ‰ํŠธ ์ •๋ฆฌ, ๊ฒฐํ•ฉ ํ•„๋“œ ๋ถ„๋ฆฌ, ๋งํฌ๊ฐ€ ์œ ์ง€๋˜๋„๋ก ์•ˆ์ •์ ์ธ ID ์ƒ์„ฑ.
  3. PostgreSQL ์Šคํ‚ค๋งˆ ์ƒ์„ฑ ํ›„ ๋ฐฐ์น˜๋กœ ์ž„ํฌํŠธํ•˜๊ณ  ๊ฒ€์‚ฌ ์ˆ˜ํ–‰. ํ–‰ ์ˆ˜, ํ•„์ˆ˜ ํ•„๋“œ, ์œ ๋‹ˆํฌ, ์™ธ๋ž˜ํ‚ค ๊ฒ€์ฆ.
  4. ๋งค์ผ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ํ•ต์‹ฌ ํ™”๋ฉด๊ณผ ์ƒ์„ฑ/์—…๋ฐ์ดํŠธ ํ๋ฆ„์„ ๋จผ์ € ์žฌ๊ตฌ์„ฑ.
  5. ์งง์€ ๋ณ‘ํ–‰ ์šด์˜ ํ›„ ์ปคํŠธ์˜ค๋ฒ„. ๋กค๋ฐฑ ๊ณ„ํš(์ฝ๊ธฐ ์ „์šฉ Airtable, ์ปคํŠธ์˜ค๋ฒ„ ์ „ PostgreSQL ์Šค๋ƒ…์ƒท, ์‹ฌ๊ฐํ•œ ๋ถˆ์ผ์น˜๊ฐ€ ๋‚˜์˜ค๋ฉด ์ค‘๋‹จ ๊ทœ์น™) ์ค€๋น„.

์˜ˆ: ์˜์—… ์šด์˜ ๋ฒ ์ด์Šค์˜ ๊ฒฝ์šฐ ๋‘ ์‹œ์Šคํ…œ์„ ์ผ์ฃผ์ผ ๋™์•ˆ ๋ณ‘ํ–‰ ์šด์˜ํ•˜์„ธ์š”. ๋‹ด๋‹น์ž๋Š” ์ƒˆ ์•ฑ์— ํ™œ๋™์„ ๊ธฐ๋กํ•˜์ง€๋งŒ ํŒ€์€ ๋งค์ผ ์•„์นจ Airtable๊ณผ ํŒŒ์ดํ”„๋ผ์ธ ํ•ฉ๊ณ„๋ฅผ ๋น„๊ตํ•ด ์ˆซ์ž๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ๋งž์„ ๋•Œ๊นŒ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๋ฐ ํ…Œ์ŠคํŠธ: ์ƒˆ ์•ฑ์ด ํ˜„์‹ค๊ณผ ์ผ์น˜ํ•จ์„ ์ฆ๋ช…ํ•˜์„ธ์š”

๊ถŒํ•œ์„ ์ œ๋Œ€๋กœ ๊ณ ์น˜๊ธฐ
๋ทฐ ๊ธฐ๋ฐ˜ ๊ณต์œ ๋ฅผ ์•ฑ ์ „์ฒด์—์„œ ์ ์šฉ๋˜๋Š” ์—ญํ•  ๋ฐ ๋ ˆ์ฝ”๋“œ ์ˆ˜์ค€ ์ ‘๊ทผ์œผ๋กœ ๋Œ€์ฒดํ•˜์„ธ์š”.
๊ถŒํ•œ ์„ค์ •

๋Œ€๋ถ€๋ถ„์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฒ„๊ทธ๋Š” 'PostgreSQL ๋ฒ„๊ทธ'๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Airtable์ด ์˜๋ฏธํ•˜๋˜ ๊ฒƒ๊ณผ ์ƒˆ ํ…Œ์ด๋ธ”์ด ์ €์žฅํ•˜๋Š” ๊ฒƒ ์‚ฌ์ด์˜ ๋ถˆ์ผ์น˜์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐ์ดํ„ฐ ์ž‘์—…์˜ ์ผ๋ถ€๋กœ ์—ฌ๊ธฐ๊ณ  ๋งˆ์ง€๋ง‰ ์ˆœ๊ฐ„ ์ž‘์—…์œผ๋กœ ๋‘์ง€ ๋งˆ์„ธ์š”.

๊ฐ„๋‹จํ•œ ๋งคํ•‘ ์‹œํŠธ๋ฅผ ์œ ์ง€ํ•˜์„ธ์š”. Airtable์˜ ๊ฐ ํ•„๋“œ์— ๋Œ€ํ•ด ๋Œ€์ƒ Postgres ์ปฌ๋Ÿผ๊ณผ ์•ฑ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์œ„์น˜(ํ™”๋ฉด, ๋ฆฌํฌํŠธ, ์ƒํƒœ ๊ทœ์น™)๋ฅผ ์ ์œผ์„ธ์š”. ์ด๋กœ์จ โ€˜์ž„ํฌํŠธ๋Š” ํ–ˆ์Œโ€™์ด โ€˜์ ˆ๋Œ€ ์•ˆ ์”€โ€™์œผ๋กœ ๋ฐ”๋€Œ๋Š” ์ผ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น ๋ฅธ ๊ฒ€์ฆ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š”:

  • ์ž„ํฌํŠธ ์ „ํ›„ ํ…Œ์ด๋ธ”๋ณ„ ํ–‰ ์ˆ˜ ๋น„๊ต
  • ๋ˆ„๋ฝ๋œ ๋งํฌ(์•„๋ฌด๊ฒƒ๋„ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š๋Š” ์™ธ๋ž˜ํ‚ค) ํ™•์ธ
  • ์‹ค์ œ๋กœ๋Š” ๊ณ ์œ ํ–ˆ๋˜ ๊ฐ’๋“ค(์ด๋ฉ”์ผ, ๋”œ ID)์—์„œ ์ค‘๋ณต ์ฐพ๊ธฐ
  • Airtable์—์„œ ํผ์„ ํ†ตํ•ด ํ—ˆ์šฉํ–ˆ๋˜ ํ•„์ˆ˜ ํ•„๋“œ ๋น„์–ด ์žˆ์Œ ์—ฌ๋ถ€ ์ฐพ๊ธฐ

๋‹ค์Œ์œผ๋กœ ์‚ฌ๋žŒ๋“ค์ด ์˜์กดํ•˜๋Š” ๊ณ„์‚ฐ๋“ค์„ ๊ฒ€์ฆํ•˜์„ธ์š”. ์‹ค์ œ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ณจ๋ผ ํ•ฉ๊ณ„, ์ƒํƒœ, ๋กค์—…์„ ์•Œ๋ ค์ง„ ์˜ˆ์ œ์™€ ๋น„๊ตํ•˜์„ธ์š”. ์ˆ˜์‹ ๋Œ€์ฒด๊ฐ€ ํ”ํžˆ ์–ด๊ธ‹๋‚˜๋Š” ์ง€์ ์€ ๋นˆ๊ฐ’, 0, ๋ˆ„๋ฝ๋œ ๋งํฌ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ผ๋ถ€ ์—์ง€ ์ผ€์ด์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋„์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜์„ธ์š”: ๋นˆ๊ฐ’, ์‚ญ์ œ๋œ ๋งํฌ, ๊ธด ํ…์ŠคํŠธ, ํŠน์ˆ˜๋ฌธ์ž, ์ค„๋ฐ”๊ฟˆ ๋“ฑ. "O'Neil" ๊ฐ™์€ ์ด๋ฆ„๊ณผ ์—ฌ๋Ÿฌ ์ค„ ๋ฉ”๋ชจ๋Š” ์ž„ํฌํŠธยทํ‘œ์‹œ ์ด์Šˆ์˜ ํ”ํ•œ ์›์ธ์ž…๋‹ˆ๋‹ค.

Airtable์„ PostgreSQL๋กœ ๋ฒˆ์—ญํ•  ๋•Œ ํ”ํ•œ ํ•จ์ •

์Šน์ธ๊ณผ ์—…๋ฐ์ดํŠธ ์ž๋™ํ™”
Airtable ์ž๋™ํ™”๋ฅผ ์‹œ๊ฐ์  ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค ํŽธ์ง‘๊ธฐ๋กœ ๋ช…ํ™•ํ•œ ํ”„๋กœ์„ธ์Šค๋กœ ๋Œ€์ฒดํ•˜์„ธ์š”.
์ž๋™ํ™”

๊ฐ€์žฅ ํฐ ํ•จ์ •์€ Airtable ๋ฒ ์ด์Šค๋ฅผ ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด๋ณด๋‚ด๊ธฐ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Airtable์€ ์ €์žฅ, ๋ทฐ ๋กœ์ง, ์ˆ˜์‹, ๊ณต์œ  ๊ทœ์น™์„ ์„ž์–ด ๋†“์Šต๋‹ˆ๋‹ค. PostgreSQL์€ ์ด๋“ค ์ฑ…์ž„์„ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ๋•์…˜์—์„œ๋Š” ๊ฑด์ „ํ•˜์ง€๋งŒ ๊ฐ ๋™์ž‘์„ ์–ด๋””์— ๋‘˜์ง€ ์„ ํƒํ•˜๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.

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

๋กค์—…์€ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๋กค์—… ์ˆซ์ž๋ฅผ ์ตœ์ข… ์‚ฌ์‹ค๋กœ ์ž„ํฌํŠธํ•˜๋ฉด ๊ทธ ์ˆซ์ž๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐ๋๋Š”์ง€ ์บก์ฒ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ฐ’์ด ๋‚˜์ค‘์— ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ ์„ค๋ช…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์žฌ๊ณ„์‚ฐ ๊ฐ€๋Šฅํ•œ ์ง‘๊ณ„(SUM/COUNT)๋ฅผ ์„ ํ˜ธํ•˜๊ณ  ์ •์˜๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๋ฉฐ ์บ์‹ฑ์ด ํ•„์š”ํ•˜๋ฉด ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜์„ธ์š”.

๋ทฐ๋„ ์˜ค๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ€์€ ์ข…์ข… Airtable ๋ทฐ๋ฅผ ์ƒˆ ์•ฑ์—์„œ ๊ณ ์ • ํ•„ํ„ฐ๋กœ ์žฌ๊ตฌ์„ฑํ•œ ๋’ค, ๊ทธ ๋ทฐ๊ฐ€ ๊ฐœ์ธ ์›Œํฌํ”Œ๋กœ์˜€์ง€ ๊ณต์œ ๋œ ์š”๊ตฌ์‚ฌํ•ญ์ด ์•„๋‹˜์„ ๋ฐœ๊ฒฌํ•ฉ๋‹ˆ๋‹ค. ํ•„ํ„ฐ๋ฅผ ๊ณ ์ •ํ•˜๊ธฐ ์ „์— ๋ˆ„๊ฐ€ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”์ง€, ๋‹ค์Œ์œผ๋กœ ์–ด๋–ค ํ–‰๋™์„ ์ทจํ–ˆ๋Š”์ง€, ์ €์žฅ๋œ ํ•„ํ„ฐ๋‚˜ ์„ธ๊ทธ๋จผํŠธ ๋˜๋Š” ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ํ•„์š”ํ•œ์ง€ ๋ฌผ์–ด๋ณด์„ธ์š”.

๋น ๋ฅธ ํ•จ์ • ์ฒดํฌ๋ฆฌ์ŠคํŠธ:

  • ์ •๋ฆฌ๋˜์ง€ ์•Š์€ ์ž์œ  ํ…์ŠคํŠธ ์ƒํƒœ(โ€œIn progressโ€, โ€œin-progressโ€, โ€œIPโ€)
  • ์ •์˜๋‚˜ ์žฌ๊ณ„์‚ฐ ๊ณ„ํš ์—†์ด ์ž„ํฌํŠธ๋œ ๋กค์—… ๊ฐ’
  • ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„๋ฅผ ์™ธ๋ž˜ํ‚ค ํ•˜๋‚˜๋กœ ๋ชจ๋ธ๋งํ•œ ๊ฒฝ์šฐ
  • ์‚ฌ์šฉ์ž ์˜๋„๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ๊ณ ์ •๋œ ํ™”๋ฉด์œผ๋กœ ์žฌํ˜„ํ•œ ๋ทฐ
  • ๊ถŒํ•œ์„ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ํ•ด ๊ณ ํ†ต์Šค๋Ÿฌ์šด ์žฌ์ž‘์„ฑ ๋ฐœ์ƒ

์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค: ์˜์—… ์šด์˜ ๋ฒ ์ด์Šค๋ฅผ ์‹ค์ œ ์•ฑ์œผ๋กœ ์žฌ๊ตฌ์ถ•

์˜์—… Ops Airtable ๋ฒ ์ด์Šค์— Accounts, Deals, Activities, Owners(์˜์—… ๋‹ด๋‹น์ž ๋ฐ ๋งค๋‹ˆ์ €) ๋„ค ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์„ธ์š”. Airtable์—์„œ Deal์€ ํ•˜๋‚˜์˜ Account์™€ ํ•˜๋‚˜์˜ Owner์— ๋งํฌ๋˜๊ณ , Activities๋Š” Deal์— ๋งํฌ๋ฉ๋‹ˆ๋‹ค(์ฝœ, ์ด๋ฉ”์ผ, ๋ฐ๋ชจ ๋“ฑ).

PostgreSQL์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…ํ™•ํ•œ ๊ด€๊ณ„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค: deals.account_id๋Š” accounts.id๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ , deals.owner_id๋Š” owners.id๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ, activities.deal_id๋Š” deals.id๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋”œ์— ์—ฌ๋Ÿฌ ๋‹ด๋‹น์ž(์˜์—… ๋‹ด๋‹น์ž + ์„ธ์ผ์ฆˆ ์—”์ง€๋‹ˆ์–ด)๊ฐ€ ํ•„์š”ํ•˜๋ฉด deal_owners ๊ฐ™์€ ์กฐ์ธ ํ…Œ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

Airtable์˜ ์ผ๋ฐ˜์ ์ธ ์ง€ํ‘œ๋Š” โ€œAccount๋ณ„ Deal Value ๋กค์—…โ€(์—ฐ๊ฒฐ๋œ ๋”œ ๊ฐ’์˜ ํ•ฉ)์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ฐ˜ ์•ฑ์—์„œ๋Š” ์ด ๋กค์—…์„ ํ•„์š”ํ•  ๋•Œ ์‹คํ–‰ํ•˜๋Š” ์ง‘๊ณ„ ์ฟผ๋ฆฌ๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์บ์‹œ ๋˜๋Š” ๋จธํ‹ฐ๋ฆฌ์–ผ๋ผ์ด์ฆˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

SELECT a.id, a.name,
       COALESCE(SUM(d.amount), 0) AS total_pipeline
FROM accounts a
LEFT JOIN deals d ON d.account_id = a.id
              AND d.stage NOT IN ('Closed Won', 'Closed Lost')
GROUP BY a.id, a.name;

์ด์ œ โ€œHealth scoreโ€ ์ˆ˜์‹์„ ์ƒ๊ฐํ•ด๋ณด์„ธ์š”. Airtable์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ํ•˜๋‚˜์˜ ํ•„๋“œ์— ๋„ฃ๊ณ  ์‹ถ์ง€๋งŒ, ํ”„๋กœ๋•์…˜์—์„œ๋Š” ์ž…๋ ฅ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๊ฐ์‚ฌ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”(last_activity_at, next_step_date, open_deal_count, overdue_tasks_count). ๊ทธ๋Ÿฐ ๋‹ค์Œ health_score๋Š” ๋ฐฑ์—”๋“œ ๋กœ์ง์—์„œ ๊ณ„์‚ฐํ•ด ๊ทœ์น™์„ ๋ฐ”๊ฟ€ ๋•Œ ์ด์ „ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์“ฐ์ง€ ์•Š์•„๋„ ๋˜๊ฒŒ ํ•˜์„ธ์š”. ํ•„ํ„ฐ๋ง๊ณผ ๋ฆฌํฌํŒ…์„ ์œ„ํ•ด ์ตœ์‹  ์ ์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜๋Š” ์žˆ์Šต๋‹ˆ๋‹ค.

๊ถŒํ•œ์€ ๋ณดํ†ต ๊ฐ€์žฅ ํฌ๊ฒŒ ์žฌ๊ณ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ ํ•„ํ„ฐ ๋Œ€์‹  ๋ช…์‹œ์  ์ ‘๊ทผ ๊ทœ์น™์„ ์ •์˜ํ•˜์„ธ์š”:

  • ๋‹ด๋‹น์ž๋Š” ์ž์‹ ์˜ ๋”œ๊ณผ ํ™œ๋™๋งŒ ๋ณด๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋งค๋‹ˆ์ €๋Š” ํŒ€์˜ ๋”œ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ์žฌ๋ฌด๋Š” Closed-won ์ˆ˜์ต์„ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋น„๊ณต๊ฐœ ๋…ธํŠธ๋Š” ๋ณผ ์ˆ˜ ์—†์Œ.
  • Sales Ops๋Š” ๋‹จ๊ณ„์™€ ์ ์ˆ˜ ๊ทœ์น™์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ.

์ถœ์‹œ ์ „ ๋น ๋ฅธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๋ฒ ์ด์Šค๋ฅผ ์•ฑ์œผ๋กœ ์ „ํ™˜
๊ทœ์น™์ด ๊ฐ•์ œ๋˜๊ณ  ์‹ค์ œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์ ์šฉ๋œ PostgreSQL ๊ธฐ๋ฐ˜ ๋Œ€์ฒด ์•ฑ์„ ๊ตฌ์ถ•ํ•˜์„ธ์š”.
AppMaster ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

๋ผ์ด๋ธŒ ์ „์— 'Airtable ๋А๋‚Œ'์ด ์•ˆ์ •์ ์ด๊ณ  ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์•ˆ์ „ํ•œ ๊ฒƒ์œผ๋กœ ๋ฒˆ์—ญ๋˜์—ˆ๋Š”์ง€ ์ตœ์ข… ์ ๊ฒ€์„ ํ•˜์„ธ์š”. ์ž‘์€ ๊ฐญ์ด ์‹ค์ œ ์‚ฌ๊ฑด์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์‹œ ์ „ ์ ๊ฒ€ ํ•ญ๋ชฉ:

  • ๊ด€๊ณ„: ์ด์ „ ๋งํฌ๋œ ๋ ˆ์ฝ”๋“œ๋งˆ๋‹ค ๋ช…์‹œ์  ๊ด€๊ณ„ ํƒ€์ž…(์ผ๋Œ€๋‹ค, ๋‹ค๋Œ€๋‹ค)๊ณผ ๋ช…ํ™•ํ•œ ํ‚ค ์ „๋žต(์•ˆ์ •์  ID, ์œ ๋‹ˆํฌ ์ œ์•ฝ, ์‚ญ์ œ ๊ทœ์น™)์ด ์žˆ๋Š”๊ฐ€?
  • ์ง‘๊ณ„: ํ•ญ์ƒ ์ •ํ™•ํ•ด์•ผ ํ•˜๋Š” ํ•ฉ๊ณ„(์ธ๋ณด์ด์Šค, ์ฟผํ„ฐ, ์ž๊ฒฉ ๊ธฐ์ค€)์™€ ์•ฝ๊ฐ„ ์ง€์—ฐ๋˜์–ด๋„ ๊ดœ์ฐฎ์€ ๊ฒƒ(๋Œ€์‹œ๋ณด๋“œ)์„ ๊ตฌ๋ถ„ํ–ˆ๋Š”๊ฐ€?
  • ์˜์‚ฌ๊ฒฐ์ • ๋กœ์ง: ์Šน์ธ, ๊ฐ€๊ฒฉ, ์ปค๋ฏธ์…˜, ์ž๊ฒฉ์ฒ˜๋Ÿผ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๊พธ๋Š” ์ˆ˜์‹์„ ์ ์ ˆํ•œ ๊ณณ(SQL vs ๋ฐฑ์—”๋“œ)์— ๊ตฌํ˜„ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ–ˆ๋Š”๊ฐ€?
  • ๊ถŒํ•œ: ๊ฐ ์—ญํ• ์— ๋Œ€ํ•ด ์‹ค์ œ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋ฅผ ๋๊นŒ์ง€(์ƒ์„ฑ, ํŽธ์ง‘, ์ˆ˜์ถœ, ์‚ญ์ œ, ์Šน์ธ) ์‹คํ–‰ํ•ด ๋ ˆ์ฝ”๋“œ ์ˆ˜์ค€ ์ ‘๊ทผ์„ ํ™•์ธํ–ˆ๋Š”๊ฐ€?
  • ์†Œ์œ ๊ถŒ ๋ฐ ๋ฐฐํฌ: ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์„ ๋ˆ„๊ฐ€ ์†Œ์œ ํ•˜๋Š”์ง€, ๋กœ์ง ๋ณ€๊ฒฝ์„ ๋ˆ„๊ฐ€ ๊ฒ€ํ† ํ•˜๋Š”์ง€, ๋กค๋ฐฑ์€ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€, ์•ฑ์€ ์–ด๋””์„œ ์šด์˜๋˜๋Š”์ง€ ๊ฒฐ์ •ํ–ˆ๋Š”๊ฐ€?

ํ˜„์‹ค ๊ฒ€์ฆ: ๋งŒ์•ฝ ์˜์—… ๋‹ด๋‹น์ž๊ฐ€ Airtable์—์„œ "Account Tier"๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๊ณ  ๊ทธ ํ‹ฐ์–ด๊ฐ€ ํ• ์ธ์— ์˜ํ–ฅ์„ ์ค€๋‹ค๋ฉด, ์•„๋งˆ๋„ ํŽธ์ง‘ ๊ถŒํ•œ์„ ๊ด€๋ฆฌ์ž๋งŒ์œผ๋กœ ์ œํ•œํ•˜๋Š” ๊ถŒํ•œ ๋ณ€๊ฒฝ๊ณผ ๋ˆ„๊ฐ€ ์–ธ์ œ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€ ๊ธฐ๋กํ•˜๋Š” ๊ฐ์‚ฌ ๋กœ๊ทธ๊ฐ€ ๋ชจ๋‘ ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„: ๊ตฌ์ถ•, ์ถœ์‹œ, ์ง€์† ๊ฐœ์„ 

Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•œ ํ›„ ๊ฐ€์žฅ ํฐ ์œ„ํ—˜์€ ๋ชจ๋“  ๊ฒƒ์„ ํ•œ๊บผ๋ฒˆ์— ๋‹ค์‹œ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์‚ฌ์šฉ์ž์™€ ํ•จ๊ป˜ ํ•˜๋‚˜์˜ ์›Œํฌํ”Œ๋กœ๋ฅผ ๋๊นŒ์ง€ ์‹คํ–‰ํ•˜๋Š” ํŒŒ์ผ๋Ÿฟ์œผ๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. "๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ - ์Šน์ธ - ์•Œ๋ฆผ - ๋ฆฌํฌํŠธ" ๊ฐ™์€ ์ธก์ • ๊ฐ€๋Šฅํ•œ ์ž‘์—…์„ ์„ ํƒํ•˜๊ณ  ๋ฒ”์œ„๋ฅผ ์ž‘๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”.

ํŒŒ์ผ๋Ÿฟ์„ ์ œํ’ˆ์ฒ˜๋Ÿผ ๋‹ค๋ฃจ์„ธ์š”. ๋น„๊ธฐ์ˆ  ๋‹ด๋‹น์ž๋„ ๋‘ ๊ฐ€์ง€ ์งˆ๋ฌธ์— ๋น ๋ฅด๊ฒŒ ๋‹ตํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒˆ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ๊ถŒํ•œ ๊ทœ์น™์„ ํ‰์ดํ•œ ์–ธ์–ด๋กœ ๋ฌธ์„œํ™”ํ•˜์„ธ์š”: โ€œ์ด ๊ฐ’์€ ์–ด๋””์—์„œ ์˜ค๋‚˜?โ€์™€ โ€œ๋ˆ„๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‚˜?โ€

๋ฌธ์„œ๋ฅผ ๊ฐ€๋ณ๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”. ๋Œ€๋ถ€๋ถ„์˜ ํŒ€์€ ๋‹ค์Œ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค:

  • ์ฃผ์š” ํ…Œ์ด๋ธ”๊ณผ ๊ฐ ํ…Œ์ด๋ธ”์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”
  • ์ค‘์š”ํ•œ ๊ด€๊ณ„(์‚ญ์ œ/๋ณด๊ด€ ์‹œ ์–ด๋–ค ๋™์ž‘์„ ํ•ด์•ผ ํ•˜๋Š”์ง€)
  • ์–ด๋–ค ํ•„๋“œ๊ฐ€ ๊ณ„์‚ฐ๋˜๋Š”์ง€(SQL vs ์•ฑ ๋กœ์ง)์™€ ๊ทธ ์ด์œ 
  • ์—ญํ• , ๋ ˆ์ฝ”๋“œ ์ˆ˜์ค€ ์ ‘๊ทผ ๊ทœ์น™, ๊ถŒํ•œ ๋ถ€์—ฌ์ž
  • ๊ฐ์‚ฌ ๊ธฐ๋Œ€์น˜(๋ฌด์—‡์„ ๊ธฐ๋กํ•ด์•ผ ํ•˜๋Š”์ง€)

๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ง์ ‘ ๋งŒ๋“ค๊ธฐ ์–ด๋ ค์šฐ๋ฉด, ์‹ค์ œ ๋ฐฑ์—”๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๊ทœ์น™์„ ์ผ๊ด€๋˜๊ฒŒ ์ ์šฉํ•˜๋Š” ๋…ธ์ฝ”๋“œ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•ด ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด AppMaster (appmaster.io)๋Š” PostgreSQL ๊ธฐ๋ฐ˜ ์•ฑ์„ ๋นŒ๋“œํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ์„ ์ง€์›ํ•˜๋ฉด์„œ๋„ ํ”„๋กœ๋•์…˜์šฉ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋ณ„๋กœ ๋กค์•„์›ƒํ•˜์„ธ์š”: ํ•œ ํŒ€๊ณผ ํŒŒ์ผ๋Ÿฟ, ์งง์€ ๋ณ‘ํ–‰ ์šด์˜, ๊ณ„ํš๋œ ์ปคํŠธ์˜ค๋ฒ„์™€ ๋กค๋ฐฑ ๊ณ„ํš, ๊ทธ๋‹ค์Œ ์›Œํฌํ”Œ๋กœ ๋‹จ์œ„๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์ „์— ๋ฌด์—‡์„ ๋จผ์ € ํ•ด์•ผ ํ•˜๋‚˜์š”?

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

Airtable์—์„œ PostgreSQL๋กœ ์˜ฎ๊ธธ ๋•Œ ๊ฐ€์žฅ ํฐ ์‚ฌ๊ณ ๋ฐฉ์‹์˜ ๋ณ€ํ™”๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

ํ…Œ์ด๋ธ”์„ ์•ˆ์ •์ ์ธ ์—”ํ‹ฐํ‹ฐ๋กœ, ๊ด€๊ณ„๋ฅผ ๋ชจ๋“  ๊ณณ์—์„œ ์œ ํšจํ•ด์•ผ ํ•˜๋Š” ๋ช…์‹œ์  ์ œ์•ฝ์œผ๋กœ ๋Œ€ํ•˜๋Š” ์‚ฌ๊ณ ๋ฐฉ์‹์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Airtable์˜ โ€˜์…€์— ์žˆ๋Š” ๋ฌด์—‡์ด๋“ โ€™ ๋ฐฉ์‹ ๋Œ€์‹  ๋ช…ํ™•ํ•œ ํƒ€์ž…, ๊ธฐ๋ณธ๊ฐ’, ๊ฒ€์‚ฌ ๊ทœ์น™์„ ์ ์šฉํ•ด ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž„ํฌํŠธ๋‚˜ ์ดํ›„ ํŽธ์ง‘์—์„œ ์กฐ์šฉํžˆ ํ˜๋Ÿฌ๋“ค์–ด๊ฐ€์ง€ ์•Š๋„๋ก ํ•˜์„ธ์š”.

Airtable์˜ ๊ธฐ๋ณธ ํ•„๋“œ๋ฅผ PostgreSQL์˜ ID๋กœ ์จ๋„ ๋˜๋‚˜์š”?

์ด๋ฆ„์€ ์‹๋ณ„์ž๋กœ ์“ฐ์ง€ ๋งˆ์„ธ์š”. ์ด๋ฆ„์€ ๋ฐ”๋€Œ๊ณ , ์ฒ ์ž๊ฐ€ ํ‹€๋ฆฌ๊ฑฐ๋‚˜ ์ค‘๋ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ID(๋ณดํ†ต UUID๋‚˜ ์ˆซ์ž ID)๋ฅผ ๊ธฐ๋ณธ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฆ„์€ ํ‘œ์‹œ์™€ ๊ฒ€์ƒ‰์šฉ์œผ๋กœ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ์†์„ฑ์œผ๋กœ ๋‘์„ธ์š”.

Airtable์˜ 'linked records'๋ฅผ PostgreSQL ํ…Œ์ด๋ธ”๋กœ ์–ด๋–ป๊ฒŒ ๋ฒˆ์—ญํ•˜๋‚˜์š”?

๊ฐ ๋งํฌ๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ๋ณด๊ณ  ์ผ๋Œ€๋‹ค์ธ์ง€ ๋‹ค๋Œ€๋‹ค์ธ์ง€ ๊ฒฐ์ •ํ•˜์„ธ์š”. ์ผ๋Œ€๋‹ค๋Š” ๋ณดํ†ต โ€˜๋งŽ์€โ€™ ์ชฝ์— ์™ธ๋ž˜ํ‚ค ์ปฌ๋Ÿผ์œผ๋กœ ๋ชจ๋ธ๋งํ•˜๊ณ , ๋‹ค๋Œ€๋‹ค๋Š” ๊ด€๊ณ„ ์„ธ๋ถ€์‚ฌํ•ญ(์˜ˆ: ์—ญํ• , ์ถ”๊ฐ€๋œ ๋‚ ์งœ ๋“ฑ)์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ์กฐ์ธ ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“œ์„ธ์š”.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ›„ ๊นจ์ง„ ๋งํฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐฉ์ง€ํ•˜๋‚˜์š”?

์™ธ๋ž˜ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊นจ์ง„ ๋งํฌ๋ฅผ ์ฐจ๋‹จํ•˜๊ฒŒ ํ•˜์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ์‚ญ์ œ ๋™์ž‘์„ ์‹ ์ค‘ํžˆ ์ •ํ•˜์„ธ์š”. ๋ถ€๋ชจ ๋ ˆ์ฝ”๋“œ ์‚ญ์ œ ์‹œ ์ž์‹์„ ํ•จ๊ป˜ ์‚ญ์ œํ• ์ง€, ์‚ญ์ œ๋ฅผ ์ œํ•œํ• ์ง€, ์ฐธ์กฐ๋ฅผ NULL๋กœ ๋งŒ๋“ค์ง€๋ฅผ ์›Œํฌํ”Œ๋กœ์šฐ์— ๋งž์ถฐ ๊ฒฐ์ •ํ•˜์„ธ์š”.

Airtable์˜ ๋กค์—…์€ PostgreSQL์—์„œ ๋ฌด์—‡์— ํ•ด๋‹นํ•˜๋‚˜์š”?

๋กค์—…์€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์‹์œผ๋กœ ์ €์žฅ๋œ ํ•„๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ง‘๊ณ„ ์ฟผ๋ฆฌ๋กœ ๋‹ตํ•˜๋Š” ์งˆ๋ฌธ์œผ๋กœ ๋ณด์„ธ์š”. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ •ํ™•์„ฑ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๋•Œ๋งˆ๋‹ค ๊ณ„์‚ฐํ•˜๊ณ , ์„ฑ๋Šฅ์ƒ ๋ช…ํ™•ํ•œ ์ด์œ ๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์บ์‹œํ•˜์„ธ์š”.

Airtable ์ˆ˜์‹์„ SQL๋กœ ์˜ฎ๊ธธ์ง€ ๋ฐฑ์—”๋“œ ๋กœ์ง์œผ๋กœ ์˜ฎ๊ธธ์ง€ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •ํ•˜๋‚˜์š”?

์ˆ˜์‹์„ ์šฉ๋„๋ณ„๋กœ ๋ถ„๋ฅ˜ํ•˜์„ธ์š”: ํ‘œ์‹œ ํ˜•์‹, ๋‹จ์ˆœ ๊ณ„์‚ฐ, ํ”Œ๋ž˜๊ทธ, ๋ฃฉ์—…, ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ํ‘œ์‹œ ํ˜•์‹์€ UI์— ๋‘๊ณ , ์ผ๊ด€์„ฑ์ด ํ•„์š”ํ•˜๋ฉด ๋‹จ์ˆœ ๊ณ„์‚ฐ์€ SQL์— ๋‘๋ฉฐ, ์šฐํšŒ๋  ์ˆ˜ ์—†๋Š” ๊ทœ์น™์„ฑ์€ ๋ฐฑ์—”๋“œ ๋กœ์ง์œผ๋กœ ์˜ฎ๊ธฐ์„ธ์š”.

๊ทธ๋ƒฅ Airtable ๋ทฐ๋ฅผ ์ƒˆ ์•ฑ์˜ ๊ถŒํ•œ์œผ๋กœ ์žฌํ˜„ํ•˜๋ฉด ์•ˆ ๋˜๋‚˜์š”?

๋ทฐ๋Š” ์›Œํฌํ”Œ๋กœ์— ์œ ์šฉํ•˜์ง€๋งŒ ๋ณด์•ˆ ๊ฒฝ๊ณ„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์—ญํ• ๊ณผ ๋ ˆ์ฝ”๋“œ ์ˆ˜์ค€ ์ ‘๊ทผ ๊ทœ์น™์„ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•˜๊ณ  API, UI, ์ˆ˜์ถœ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ๋“ฑ ๋ชจ๋“  ๊ณณ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์ ์šฉํ•˜์„ธ์š”. ๋˜ํ•œ ๋ˆ„๊ฐ€ ์–ธ์ œ ๋ฌด์—‡์„ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ์‚ฌ ๋กœ๊น…์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

๋†€๋ผ์›€์„ ํ”ผํ•˜๋Š” ์•ˆ์ „ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ณ„ํš์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

์ปคํŠธ์˜ค๋ฒ„ ์ „ ์Šคํ‚ค๋งˆ๋ฅผ ๊ณ ์ •ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด ์ •๋ฆฌํ•œ ๋’ค ๊ฒ€์ฆ๊ณผ ํ•จ๊ป˜ ์ž„ํฌํŠธํ•˜์„ธ์š”. ๋‘ ์‹œ์Šคํ…œ์„ ์ž ์‹œ ๋ณ‘ํ–‰ ์šด์˜ํ•˜๋ฉฐ ํ•ต์‹ฌ ์ˆซ์ž๋ฅผ ๋น„๊ตํ•˜๊ณ , ๋กค๋ฐฑ ๊ณ„ํš(์ฝ๊ธฐ ์ „์šฉ Airtable, PostgreSQL ์Šค๋ƒ…์ƒท ๋“ฑ)์„ ์ค€๋น„ํ•ด ๋‘์„ธ์š”.

๋…ธ์ฝ”๋“œ ๋„๊ตฌ๊ฐ€ PostgreSQL ๊ธฐ๋ฐ˜ ์ƒˆ ์•ฑ์„ ๋” ๋นจ๋ฆฌ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋ ๊นŒ์š”?

ํ•ธ๋“œ์ฝ”๋”ฉ ์ „๋ถ€๋ฅผ ํ”ผํ•˜๋ฉด์„œ ์†๋„๋ฅผ ์›ํ•˜๋ฉด ์‹ค์ œ ๋ฐฑ์—”๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๊ทœ์น™์„ ๊ฐ•์ œํ•˜๋Š” ํ”Œ๋žซํผ์„ ์„ ํƒํ•˜์„ธ์š”. AppMaster๋Š” ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ฐ€์ง„ PostgreSQL ๊ธฐ๋ฐ˜ ์•ฑ์„ ์ƒ์„ฑํ•˜๊ณ  ํ”„๋กœ๋•์…˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ํ•œ ๊ฐ€์ง€ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
Airtable์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜: ์‹ค์šฉ์ ์ธ ๋ณ€ํ™˜ ํŒจํ„ด | AppMaster